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

Replace MAY NOT in spec with clearer language #343

Open
gman0 opened this issue Dec 11, 2018 · 4 comments
Open

Replace MAY NOT in spec with clearer language #343

gman0 opened this issue Dec 11, 2018 · 4 comments

Comments

@gman0
Copy link

gman0 commented Dec 11, 2018

As discussed offline, there's an inconsistency in the spec whether name == volume_id is possible:

message CreateVolumeRequest {
  ...
  // 2) Suggested name - Some storage systems allow callers to specify
  //    an identifier by which to refer to the newly provisioned
  //    storage. If a storage system supports this, it can optionally
  //    use this name as the identifier for the new volume.
  string name = 1;
  ...

This paragraph is making it sort-of clear that the CO-chosen name may be used as the volume ID. Also, if this is true maybe it could also mention that the volume name generated by CO has to be unique as well - or perhaps that's implied by saying that it can be used as an identifier?

But then in the RPC Interactions section it says:

It is worth noting that the plugin-generated volume_id is a REQUIRED field for the DeleteVolume RPC, as opposed to the CO-generated volume name that is REQUIRED for the CreateVolume RPC: these fields MAY NOT contain the same value.

Which is inconsistent with the comment in the CreateVolumeRequest.

@gman0
Copy link
Author

gman0 commented Dec 11, 2018

cc @saad-ali

@jdef
Copy link
Member

jdef commented Dec 11, 2018 via email

@saad-ali
Copy link
Member

"MAY NOT" is RFC language that means "the plugin-generated volume_id may or may not contain the same value as the CO-generated volume name"

That might be part of the confusion. MAY NOT is not one of the keywords defined in RFC 2119:

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119 (Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997).

In this case maybe these fields may or may not contain the same value might be clearer?

We should also scrub the spec for other instances of MAY NOT and replace them with an appropriate RFC 2119 keyword or other language to ensure they are clear.

@jdef
Copy link
Member

jdef commented Dec 22, 2018 via email

@saad-ali saad-ali changed the title Inconsistency in specification of volume name == volume ID Replace MAY NOT in spec with clearer language Feb 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants