THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
// ---- START: Proposed Admin API definitions ---- /** * Update the feature versions supported cluster-wide. You may * anticipate certain exceptions when calling get() on the futures * obtained from the returned UpdateFeaturesResult. * * @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); /** * 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(); // ---- END: Proposed Admin API definitions ---- interface FeatureBase { // The name of the feature. String getName(); } // Represents a cluster-wide finalized feature, with a feature version. interface FinalizedFeature extends FeatureBase { // The finalized value of the feature version. long getVersion(); } enum FeatureUpdateType { // Delete the feature. Useful to eliminate accidental junk, // or rarely eliminate a deprecated feature altogether. DELETE, // Either add the feature (if not present), or update it (if present). ADD_OR_UPDATE } interface FeatureUpdate { // Return the feature to be updated. // The version returned via 'getVersion' will beis: // - the new value to-be-updated for FeatureUpdateType.ADD_OR_UPDATE. // - ignored for FeatureUpdateType.DELETE. FinalizedFeature getFeature(); // Return the type of update to be made. FeatureUpdateType getUpdateType(); } // Represents a feature that is supported by a broker, with a specific // feature version range [minVersion, maxVersion]. interface SupportedFeature extends FeatureBase { // The minimum version (value >= 0) of the supported feature. long getMinVersion(); // The maximum version (value >=0 and value >= minVersion) of the supported feature. long getMaxVersion(); } interface FeatureMetadata { // The set of cluster-wide finalized features. Set<FinalizedFeature> finalizedFeatures; // The monotonically increasing metadata version for the finalized features. long getMetadataVersion(); // The set of features supported by a broker. Set<SupportedFeature> supportedFeatures; // The hostname of the broker. String host; // The port of the broker. int32 port; } interface 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 first failed FeatureUpdate * (if any) is raised to the caller. */ KafkaFuture<FeatureMetadata> all(); } interface 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(); } |
...