{"action":"created","issue":{"url":"https://api.github.com/repos/container-storage-interface/spec/issues/250","repository_url":"https://api.github.com/repos/container-storage-interface/spec","labels_url":"https://api.github.com/repos/container-storage-interface/spec/issues/250/labels{/name}","comments_url":"https://api.github.com/repos/container-storage-interface/spec/issues/250/comments","events_url":"https://api.github.com/repos/container-storage-interface/spec/issues/250/events","html_url":"https://github.com/container-storage-interface/spec/issues/250","id":332560843,"node_id":"MDU6SXNzdWUzMzI1NjA4NDM=","number":250,"title":"Why is `VolumeCapability` a list in `CreateVolumeRequest`?","user":{"login":"saad-ali","id":10052848,"node_id":"MDQ6VXNlcjEwMDUyODQ4","avatar_url":"https://avatars1.githubusercontent.com/u/10052848?v=4","gravatar_id":"","url":"https://api.github.com/users/saad-ali","html_url":"https://github.com/saad-ali","followers_url":"https://api.github.com/users/saad-ali/followers","following_url":"https://api.github.com/users/saad-ali/following{/other_user}","gists_url":"https://api.github.com/users/saad-ali/gists{/gist_id}","starred_url":"https://api.github.com/users/saad-ali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saad-ali/subscriptions","organizations_url":"https://api.github.com/users/saad-ali/orgs","repos_url":"https://api.github.com/users/saad-ali/repos","events_url":"https://api.github.com/users/saad-ali/events{/privacy}","received_events_url":"https://api.github.com/users/saad-ali/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-06-14T20:54:19Z","updated_at":"2018-06-14T21:47:18Z","closed_at":null,"author_association":"MEMBER","body":"@msau42 was asking me why `VolumeCapability` is a repeated field in `CreateVolumeRequest` and some other places:\r\n\r\n```protobuf\r\nrepeated VolumeCapability volume_capabilities = 3;\r\n```\r\n\r\nI couldn't remember why we did that? When creating a volume why would we want to specify more then one capability? AFAIK both `access_type` and `access_mode` can be specified in a `VolumeCapability` object.\r\n\r\nI vaguely recall a discussion about not knowing exactly how a volume will be consumed at provision time, but I can't recall if this would help that case.\r\n\r\nSo purpose of this bug is to answer the question: why is `VolumeCapability` a list in `CreateVolumeRequest`?"},"comment":{"url":"https://api.github.com/repos/container-storage-interface/spec/issues/comments/397448723","html_url":"https://github.com/container-storage-interface/spec/issues/250#issuecomment-397448723","issue_url":"https://api.github.com/repos/container-storage-interface/spec/issues/250","id":397448723,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NzQ0ODcyMw==","user":{"login":"jieyu","id":1778745,"node_id":"MDQ6VXNlcjE3Nzg3NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/1778745?v=4","gravatar_id":"","url":"https://api.github.com/users/jieyu","html_url":"https://github.com/jieyu","followers_url":"https://api.github.com/users/jieyu/followers","following_url":"https://api.github.com/users/jieyu/following{/other_user}","gists_url":"https://api.github.com/users/jieyu/gists{/gist_id}","starred_url":"https://api.github.com/users/jieyu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jieyu/subscriptions","organizations_url":"https://api.github.com/users/jieyu/orgs","repos_url":"https://api.github.com/users/jieyu/repos","events_url":"https://api.github.com/users/jieyu/events{/privacy}","received_events_url":"https://api.github.com/users/jieyu/received_events","type":"User","site_admin":false},"created_at":"2018-06-14T21:47:18Z","updated_at":"2018-06-14T21:47:18Z","author_association":"MEMBER","body":"@msau42 I think the wording in the spec is pretty clear. If the SP cannot support ANY of the capability requested by the CO, an error should be returned.\r\n\r\n```// The capabilities that the provisioned volume MUST have: the Plugin\r\n  // MUST provision a volume that could satisfy ALL of the\r\n  // capabilities specified in this list. The Plugin MUST assume that\r\n  // the CO MAY use the  provisioned volume later with ANY of the\r\n  // capabilities specified in this list. This also enables the CO to do\r\n  // early validation: if ANY of the specified volume capabilities are\r\n  // not supported by the Plugin, the call SHALL fail. This field is\r\n  // REQUIRED.\r\n  repeated VolumeCapability volume_capabilities = 3;```\r\n"}}
{"actor":{"display_login":"jieyu"}}