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 be the new value to-be-updated.
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();
} |
...