-
Notifications
You must be signed in to change notification settings - Fork 373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[[--DO-NOT-MERGE--]] Mock ups for fake, experimental alpha APIs. #365
base: master
Are you sure you want to change the base?
[[--DO-NOT-MERGE--]] Mock ups for fake, experimental alpha APIs. #365
Conversation
Enumerations, fields, messages, methods, and services support `alpha_xxx` designations, indicating that they are part of an experimental feature that may never evolve to "stable" status.
A new AlphaFeature message type was added for each of the plugin, controller, and node services. Experimental features supported by the SP should be advertised via one or more of the following RPCs: * Identity.GetPluginCapabilities * Controller.ControllerGetCapabilities * Node.NodeGetCapabilities
Mock up of an experimental API to support tape rotation for plugin controllers. Note the RPC as well as each of the newly added request and response types has been labeled with an `alpha_xxx` marker option.
Mock up of an experimental API to advertise volume usage in units of quarks. Note the addition of the `alpha_enum_value` marker option to the newly added enum value.
Mock up of an experimental API to communicate the data lineage of a volume. Note that the newly added field has the `alpha_field` marker option set, as well as that the newly added message has a similar alpha marker. See https://en.wikipedia.org/wiki/Data_lineage
Mock up of an experimental object storage API. Note the use of the `alpha_service` marker option for the new gRPC service, as well as the additional `alpha_xxx` markers for the new RPCs and top-level request/response messages.
// releases. | ||
bool alpha_message = 1060; | ||
} | ||
extend google.protobuf.MethodOptions { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to allow this?
My understanding after the call was that we allow new fields in the main spec on existing RPCs with a experimental tag. But we force new RPCs in to a separate new experimental service (potentially in a different file).
|
||
rpc ObjectStoreRead(ObjectStoreReadRequest) | ||
returns (ObjectStoreReadResponse) { | ||
option (alpha_method) = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's arguable that marking the method as alpha is redundant because the entire service is already alpha.
xref #355