Skip to content
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

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

jdef
Copy link
Member

@jdef jdef commented Apr 4, 2019

xref #355

James DeFelice added 7 commits April 4, 2019 14:52
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 {
Copy link
Member

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;
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants