THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
// ---- START: Proposed Admin API definitions ---- /** * Return the following: * 1. List of cluster-wide finalized feature versions. * 2. List of supported feature versions specific to the broker. * * You may anticipate certain exceptions when calling get() on the * futures obtained from the returned DescribeFeaturesResult. */ DescribeFeaturesResult describeFeatures(); /** * Update the feature versions supported cluster-wide. You may * anticipate certain exceptions when calling get() on the futures * obtained from the returned UpdateFeaturesResult. For example, * if a feature update was in progress already, the controller * could return a suitable error. * * @param updates set of feature updates, keyed by the * name of the feature * @return the result of the updateFeatures request */ UpdateFeaturesResult updateFeatures(Set<FeatureUpdate> updates); // ---- END: Proposed Admin API definitions ---- // Represents a cluster-wide finalized feature, with a feature version. class FinalizedFeature { // The name of the feature. String name(); // The cluster-wide finalized value of the feature max version. long versionLevel(); } // Represents a feature that is supported by a broker, with a specific // feature version range [minVersion, maxVersion]. class SupportedFeature { // The name of the feature. String name(); // The minimum version (value >= 0) of the supported feature. long getMinVersionminVersion(); // The maximum version (value >=0 and value >= minVersion) of the supported feature. long getMaxVersionmaxVersion(); } enum FeatureUpdateType { // Either add the feature (if not present), or update it (if present). ADD_OR_UPDATE, // Same as ADD_OR_UPDATE, but with downgrade allowed. ADD_OR_UPDATE_ALLOW_DOWNGRADE // Delete the feature. DELETE } class FeatureUpdate { // Return the feature to be updated. // The version returned via 'getFeature().getVersionLevel()', is the new value to-be-updated. // For deletions, the provided version level is ignored. FinalizedFeature getFeaturefeature(); // Return the type of update to be made. FeatureUpdateType getUpdateTypeupdateType(); } class FeatureMetadata { // The set of cluster-wide finalized features, keyed by feature name. Set<FinalizedFeature> finalizedFeatures(); // The monotonically increasing epoch for the finalized features. long getEpochepoch(); // The set of features supported by a broker, keyed by feature name. Set<SupportedFeature> supportedFeatures(); // The hostname of the broker. String host(); // The port of the broker. int32 port(); } class DescribeFeaturesResult { /** * The data returned in the future contains the latest entire set of * finalized cluster-wide features, as well as the entire set of * features supported by the broker serving this read request. */ KafkaFuture<FeatureMetadata> all(); } class UpdateFeaturesResult { /** * Returns a future which indicates success/failure. * 1. If the future has succeeded (i.e. no exceptions), * then the request was 100% successful, and no top level or * individual FeatureUpdate errors were seen. The data * returned in the future contains the latest entire set of * finalized cluster-wide features (after all updates were applied), * as well as the entire set of features supported by the controller *. serving this write request. * 2. If the future has failed, the top level error (if any) * or the error from the FeatureUpdate(s) that failed * (if any) is raised to the caller. */ KafkaFuture<FeatureMetadata> all(); } |
...