)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Propose resource federation for block devices"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Enables use of block device resources across Openstakc installations linked"},{"line_number":10,"context_line":"with K2K authentication.  In particular, it enables the following use cases:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"* Attaching and detaching remote volumes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dada55a8_30c0722a","line":9,"updated":"2016-07-25 14:33:13.000000000","message":"s/Openstakc/OpenStack/","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"}],"specs/ocata/approved/mix-and-match-resource-federation.rst":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"a0e7da6bb18ee7fb096110b0f73df4602415aa3c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"The Nova client library and Openstack CLI will be changed to enable use of"},{"line_number":67,"context_line":"these APIs."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"There will be a new nova configuration parameter enabling these features,"},{"line_number":70,"context_line":"defaulting to off."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_8209472f","line":69,"updated":"2016-07-18 16:50:01.000000000","message":"Can you please enumerate the option key and values please?","commit_id":"f7139da230f640e536708707e2fc37d715304d9e"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"c3db8b481a89996ffd75f6a68c1f8b37b41d78d4","unresolved":false,"context_lines":[{"line_number":235,"context_line":"Developer impact"},{"line_number":236,"context_line":"----------------"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"None"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Other end user impact"},{"line_number":241,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_a2e44b0d","line":238,"updated":"2016-07-18 16:52:45.000000000","message":"How does the developer figure out if this functionality is enabled in a specific nova server?\nHow does the developer figure out which remote cinder instance(s) are available for use when they call Nova API?","commit_id":"f7139da230f640e536708707e2fc37d715304d9e"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b5557acd3ac416f1c90f1d3454e8adfaadee05d1","unresolved":false,"context_lines":[{"line_number":235,"context_line":"Developer impact"},{"line_number":236,"context_line":"----------------"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"None"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Other end user impact"},{"line_number":241,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_f3aa9718","line":238,"in_reply_to":"dada55a8_93cebb58","updated":"2016-07-18 18:05:34.000000000","message":"What\u0027s the usual procedure in Nova for discovering what functionality is enabled?","commit_id":"f7139da230f640e536708707e2fc37d715304d9e"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"6d8154d4766e6abcb9fd04919ba2a3aa310bab22","unresolved":false,"context_lines":[{"line_number":235,"context_line":"Developer impact"},{"line_number":236,"context_line":"----------------"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"None"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Other end user impact"},{"line_number":241,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_d81df0be","line":238,"in_reply_to":"dada55a8_a2e44b0d","updated":"2016-07-18 17:41:04.000000000","message":"If I understand you right, you\u0027re talking about end users, trying to figure out if a Nova server has these API calls enabled, and trying to figure out which Cinders they can use with it.  Is this right?","commit_id":"f7139da230f640e536708707e2fc37d715304d9e"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"5527eb2706a0ba975453e9fe1a3dc0b7ae2fd828","unresolved":false,"context_lines":[{"line_number":235,"context_line":"Developer impact"},{"line_number":236,"context_line":"----------------"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"None"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Other end user impact"},{"line_number":241,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dada55a8_93cebb58","line":238,"in_reply_to":"dada55a8_d81df0be","updated":"2016-07-18 17:57:05.000000000","message":"Yes, thats right. someone who will want to use Nova API with the new functionality","commit_id":"f7139da230f640e536708707e2fc37d715304d9e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"With Keystone to Keystone (K2K) federation, users can access resources spread"},{"line_number":11,"context_line":"across multiple Openstack deployments. But, these resources can currently only"},{"line_number":12,"context_line":"interact at the application layer, and not at the infrastructure (Openstack)"},{"line_number":13,"context_line":"layer. One instance cannot have access to multiple block storage devices in"},{"line_number":14,"context_line":"separate Openstack deployments, for instance. We propose an extension of the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_90ddde16","line":11,"updated":"2016-07-25 14:33:13.000000000","message":"here and throughout... s/Openstack/OpenStack/","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"With Keystone to Keystone (K2K) federation, users can access resources spread"},{"line_number":11,"context_line":"across multiple Openstack deployments. But, these resources can currently only"},{"line_number":12,"context_line":"interact at the application layer, and not at the infrastructure (Openstack)"},{"line_number":13,"context_line":"layer. One instance cannot have access to multiple block storage devices in"},{"line_number":14,"context_line":"separate Openstack deployments, for instance. We propose an extension of the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_aa84d9b0","line":11,"in_reply_to":"dada55a8_90ddde16","updated":"2016-07-25 21:02:36.000000000","message":"Oops.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Collaborations between people in different Openstack deployments"},{"line_number":23,"context_line":"  (e.g. groups within a company, private clouds in a colocated facility,"},{"line_number":24,"context_line":"  clouds with different data security regulation)"},{"line_number":25,"context_line":"* Standing up experimental Openstack services while using resources from an"},{"line_number":26,"context_line":"  existing deployment (e.g. new Nova release, testing an experimental backend)"},{"line_number":27,"context_line":"* Enabling defense-in-depth by keeping separate services in separate"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_70e02acd","line":24,"updated":"2016-07-25 14:33:13.000000000","message":"Yeah, I see the use cases for private cloud, not for public cloud, though. It just exposes them to too many liabilities with regards to resources actually being provided by another cloud. It would, for example, make it impossible for a public cloud provider to contractually state that a particular region of their deployment is an availability zone or failure domain since the failure domain would be extended out to include clouds not in their sphere of control...","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  (e.g. groups within a company, private clouds in a colocated facility,"},{"line_number":24,"context_line":"  clouds with different data security regulation)"},{"line_number":25,"context_line":"* Standing up experimental Openstack services while using resources from an"},{"line_number":26,"context_line":"  existing deployment (e.g. new Nova release, testing an experimental backend)"},{"line_number":27,"context_line":"* Enabling defense-in-depth by keeping separate services in separate"},{"line_number":28,"context_line":"  authentication domains"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_d0e756e2","line":26,"updated":"2016-07-25 14:33:13.000000000","message":"Hmm, maybe.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"* Standing up experimental Openstack services while using resources from an"},{"line_number":26,"context_line":"  existing deployment (e.g. new Nova release, testing an experimental backend)"},{"line_number":27,"context_line":"* Enabling defense-in-depth by keeping separate services in separate"},{"line_number":28,"context_line":"  authentication domains"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_b0eaa2aa","line":28,"updated":"2016-07-25 14:33:13.000000000","message":"Not sure I understand why exactly this would be any *more* secure than having all services in a single non-federated domain. In fact, I think it opens up significant security issues versus a single non-federated service catalog.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For attaching volumes to an already booted instance, a \u0027service-provider\u0027 (or"},{"line_number":34,"context_line":"possibly \u0027cinder-provider\u0027 or similar) optional parameter will be added to the"},{"line_number":35,"context_line":"nova volume-attach REST API call. If the parameter is present, Nova will look"},{"line_number":36,"context_line":"up the service provider by name in the Keystone catalog and use"},{"line_number":37,"context_line":"Keystone-to-Keystone (K2K) federation to obtain a token for the remote"},{"line_number":38,"context_line":"Openstack deployment. (This takes place inside the keystoneauth1 library.)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_10d28e00","line":35,"updated":"2016-07-25 14:33:13.000000000","message":"for clarity, \"nova volume-attach\" isn\u0027t a REST API call. It\u0027s a novaclient CLI command. The REST API call is GET|POST|PUT|DELETE /servers/{server_id}/os-volume_attachments:\n\nhttp://developer.openstack.org/api-ref/compute/#servers-with-volume-attachments-servers-os-volume-attachments","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"For attaching volumes to an already booted instance, a \u0027service-provider\u0027 (or"},{"line_number":34,"context_line":"possibly \u0027cinder-provider\u0027 or similar) optional parameter will be added to the"},{"line_number":35,"context_line":"nova volume-attach REST API call. If the parameter is present, Nova will look"},{"line_number":36,"context_line":"up the service provider by name in the Keystone catalog and use"},{"line_number":37,"context_line":"Keystone-to-Keystone (K2K) federation to obtain a token for the remote"},{"line_number":38,"context_line":"Openstack deployment. (This takes place inside the keystoneauth1 library.)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_ca894dcc","line":35,"in_reply_to":"dada55a8_10d28e00","updated":"2016-07-25 21:02:36.000000000","message":"What is the usual method of referring to API calls in a spec?","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"up the service provider by name in the Keystone catalog and use"},{"line_number":37,"context_line":"Keystone-to-Keystone (K2K) federation to obtain a token for the remote"},{"line_number":38,"context_line":"Openstack deployment. (This takes place inside the keystoneauth1 library.)"},{"line_number":39,"context_line":"From there, Nova will query the remote Cinder for the volume details."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Two parameters will be added to entries in the block-device-mapping-v2"},{"line_number":42,"context_line":"parameter in \u0027nova boot\u0027: \u0027source-sp\u0027 and \u0027dest-sp\u0027, describing the location"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_f0cc1a63","line":39,"updated":"2016-07-25 14:33:13.000000000","message":"Let\u0027s not use the term \"provider\" for this. The term \"resource provider\" refers to a very specific thing, which is not this :) I think just referring to this as \"service_uri\" would be good.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"up the service provider by name in the Keystone catalog and use"},{"line_number":37,"context_line":"Keystone-to-Keystone (K2K) federation to obtain a token for the remote"},{"line_number":38,"context_line":"Openstack deployment. (This takes place inside the keystoneauth1 library.)"},{"line_number":39,"context_line":"From there, Nova will query the remote Cinder for the volume details."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Two parameters will be added to entries in the block-device-mapping-v2"},{"line_number":42,"context_line":"parameter in \u0027nova boot\u0027: \u0027source-sp\u0027 and \u0027dest-sp\u0027, describing the location"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_4a88bd22","line":39,"in_reply_to":"dada55a8_f0cc1a63","updated":"2016-07-25 21:02:36.000000000","message":"Keystone actually uses the term \"service provider\" to refer to a remote Keystone that you can auth to with K2K.  Would saying \"Keystone service provider\" or something like that be clear enough?","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"From there, Nova will query the remote Cinder for the volume details."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Two parameters will be added to entries in the block-device-mapping-v2"},{"line_number":42,"context_line":"parameter in \u0027nova boot\u0027: \u0027source-sp\u0027 and \u0027dest-sp\u0027, describing the location"},{"line_number":43,"context_line":"of the source image, snapshot or volume, and the location of the destination"},{"line_number":44,"context_line":"volume respectively. The following constraints apply:"},{"line_number":45,"context_line":"If \u0027source_type\u0027 is \u0027blank\u0027, then no \u0027source-sp\u0027 can be specified."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_50dc0612","line":42,"updated":"2016-07-25 14:33:13.000000000","message":"Why is a dest-sp parameter needed? Wouldn\u0027t the default service URI corresponding to the service catalog\u0027s \"volume\" service type be used as the destination/target?","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Two parameters will be added to entries in the block-device-mapping-v2"},{"line_number":42,"context_line":"parameter in \u0027nova boot\u0027: \u0027source-sp\u0027 and \u0027dest-sp\u0027, describing the location"},{"line_number":43,"context_line":"of the source image, snapshot or volume, and the location of the destination"},{"line_number":44,"context_line":"volume respectively. The following constraints apply:"},{"line_number":45,"context_line":"If \u0027source_type\u0027 is \u0027blank\u0027, then no \u0027source-sp\u0027 can be specified."},{"line_number":46,"context_line":"If \u0027dest_type\u0027 is \u0027local\u0027, then no \u0027dest-sp\u0027 can be specified."},{"line_number":47,"context_line":"Currently, if they are both specified, \u0027source-sp\u0027 and \u0027dest-sp\u0027 cannot be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_30d7d2ee","line":44,"updated":"2016-07-25 14:33:13.000000000","message":"You are not specifying the *location* of the source or destination. You are specifying the URI of the service that will understand a particular volume UUID that you request. The location would be the address in backend storage (NFS, RBD, etc). I think it\u0027s important to be specific and explicit here and avoid the term \"location\". What you are describing is a method of doing remote service routing/discovery.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"parameter in \u0027nova boot\u0027: \u0027source-sp\u0027 and \u0027dest-sp\u0027, describing the location"},{"line_number":43,"context_line":"of the source image, snapshot or volume, and the location of the destination"},{"line_number":44,"context_line":"volume respectively. The following constraints apply:"},{"line_number":45,"context_line":"If \u0027source_type\u0027 is \u0027blank\u0027, then no \u0027source-sp\u0027 can be specified."},{"line_number":46,"context_line":"If \u0027dest_type\u0027 is \u0027local\u0027, then no \u0027dest-sp\u0027 can be specified."},{"line_number":47,"context_line":"Currently, if they are both specified, \u0027source-sp\u0027 and \u0027dest-sp\u0027 cannot be"},{"line_number":48,"context_line":"different. This could be supported in the future with additional changes to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_9004be7e","line":45,"updated":"2016-07-25 14:33:13.000000000","message":"You haven\u0027t yet described what \"source_type\" is. But, honestly, I don\u0027t believe you need this parameter at all. I think the only parameter you need is --service-uri or possibly just --source-service-uri if you want to be super-explicit. If --source-service-uri is not specified, then the endpoint URI for the volume service type of the Keystone authentication catalog will be used.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"parameter in \u0027nova boot\u0027: \u0027source-sp\u0027 and \u0027dest-sp\u0027, describing the location"},{"line_number":43,"context_line":"of the source image, snapshot or volume, and the location of the destination"},{"line_number":44,"context_line":"volume respectively. The following constraints apply:"},{"line_number":45,"context_line":"If \u0027source_type\u0027 is \u0027blank\u0027, then no \u0027source-sp\u0027 can be specified."},{"line_number":46,"context_line":"If \u0027dest_type\u0027 is \u0027local\u0027, then no \u0027dest-sp\u0027 can be specified."},{"line_number":47,"context_line":"Currently, if they are both specified, \u0027source-sp\u0027 and \u0027dest-sp\u0027 cannot be"},{"line_number":48,"context_line":"different. This could be supported in the future with additional changes to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_2a98e91a","line":45,"in_reply_to":"dada55a8_9004be7e","updated":"2016-07-25 21:02:36.000000000","message":"\"source_type\" already exists in the BDM API, and its usage is unchanged.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"An \u0027image-sp\u0027 optional parameter will be added to the server schema in \u0027nova"},{"line_number":52,"context_line":"boot\u0027.  Since the Openstack client makes a Nova API call to fetch the image"},{"line_number":53,"context_line":"details, we also modify that call to support fetching image details from a"},{"line_number":54,"context_line":"remote Glance.  Since this is a GET call, the only place to put this extra"},{"line_number":55,"context_line":"informaion is the URL, so we propose using a qualified UUID format there:"},{"line_number":56,"context_line":"perhaps \u0027image-uuid@remote-sp\u0027"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_70078a81","line":54,"updated":"2016-07-25 14:33:13.000000000","message":"So you would fetch image metadata from a different service than the volume service you use for the --source-service-uri? That doesn\u0027t make a whole lot of sense to me. Why not just use the single --source-service-uri to indicate that any image or volume metadata should be retrieved from the service with service type of \"image\" in the catalog exposed by the Keystone catalog at --source-service-uri?","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"An \u0027image-sp\u0027 optional parameter will be added to the server schema in \u0027nova"},{"line_number":52,"context_line":"boot\u0027.  Since the Openstack client makes a Nova API call to fetch the image"},{"line_number":53,"context_line":"details, we also modify that call to support fetching image details from a"},{"line_number":54,"context_line":"remote Glance.  Since this is a GET call, the only place to put this extra"},{"line_number":55,"context_line":"informaion is the URL, so we propose using a qualified UUID format there:"},{"line_number":56,"context_line":"perhaps \u0027image-uuid@remote-sp\u0027"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_35020e0a","line":54,"in_reply_to":"dada55a8_70078a81","updated":"2016-07-25 21:02:36.000000000","message":"There\u0027s a use case in using a volumes and images that are in different places.  (One simple one that we\u0027ve had brought up a few times:  Boot from a remote image, but use local volumes.)","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"details, we also modify that call to support fetching image details from a"},{"line_number":54,"context_line":"remote Glance.  Since this is a GET call, the only place to put this extra"},{"line_number":55,"context_line":"informaion is the URL, so we propose using a qualified UUID format there:"},{"line_number":56,"context_line":"perhaps \u0027image-uuid@remote-sp\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"A \u0027service_provider\u0027 column will be added to the \u0027block_device_mapping\u0027 table"},{"line_number":59,"context_line":"in Nova, so that Nova can find volumes when detaching or deleting them. (There"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_d0fe366a","line":56,"updated":"2016-07-25 14:33:13.000000000","message":"-1. We have gone away from using an imageRef and towards using just a UUID for image identifier.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"details, we also modify that call to support fetching image details from a"},{"line_number":54,"context_line":"remote Glance.  Since this is a GET call, the only place to put this extra"},{"line_number":55,"context_line":"informaion is the URL, so we propose using a qualified UUID format there:"},{"line_number":56,"context_line":"perhaps \u0027image-uuid@remote-sp\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"A \u0027service_provider\u0027 column will be added to the \u0027block_device_mapping\u0027 table"},{"line_number":59,"context_line":"in Nova, so that Nova can find volumes when detaching or deleting them. (There"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_6a9ca15d","line":56,"in_reply_to":"dada55a8_d0fe366a","updated":"2016-07-25 21:02:36.000000000","message":"Hm, then this solution won\u0027t work.\n\nI recall that Nova is moving away from using these proxied calls anyways---so maybe we should just direct it at the appropriate Glance server in the client.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"A \u0027service_provider\u0027 column will be added to the \u0027block_device_mapping\u0027 table"},{"line_number":59,"context_line":"in Nova, so that Nova can find volumes when detaching or deleting them. (There"},{"line_number":60,"context_line":"is a potential issue in using remote UUIDs here---see Alternative 3 for one"},{"line_number":61,"context_line":"solution to this.)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The nova volume-attachment API call will return the service-provider parameter"},{"line_number":64,"context_line":"if present."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_b001026d","line":61,"updated":"2016-07-25 14:33:13.000000000","message":"What about the credentials needed to access the remote service? Would these be stored in plain text in the block_device_mappings table?","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"A \u0027service_provider\u0027 column will be added to the \u0027block_device_mapping\u0027 table"},{"line_number":59,"context_line":"in Nova, so that Nova can find volumes when detaching or deleting them. (There"},{"line_number":60,"context_line":"is a potential issue in using remote UUIDs here---see Alternative 3 for one"},{"line_number":61,"context_line":"solution to this.)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The nova volume-attachment API call will return the service-provider parameter"},{"line_number":64,"context_line":"if present."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_0a824594","line":61,"in_reply_to":"dada55a8_b001026d","updated":"2016-07-25 21:02:36.000000000","message":"Those are re-derived each time they are needed, using K2K authentication.  No tokens need to be stored long term.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":85,"context_line":"4. Currently, per the Openstack Compute API, \u0027volume-detach\u0027 takes an instance"},{"line_number":86,"context_line":"  UUID and an attachment UUID; but Nova currently uses the volume UUID as the"},{"line_number":87,"context_line":"  attachment UUID. However, when using volumes in remote deployments, we might"},{"line_number":88,"context_line":"  prefer not to trust the remote Cinder\u0027s UUID as globally unique. Therefore,"},{"line_number":89,"context_line":"  we have to find a way to create globally unique attachment UUIDs without"},{"line_number":90,"context_line":"  breaking the existing behavior that local volumes have attachment UUID equal"},{"line_number":91,"context_line":"  to their volume UUID. To do this, we add columns \u0027attachment_uuid\u0027 and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_10f9ee80","line":88,"updated":"2016-07-25 14:33:13.000000000","message":"UUIDs are globally unique. That\u0027s the whole point of UUIDs :)","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":16476,"name":"George Silvis, III","email":"george.iii.silvis@gmail.com","username":"gsilvis"},"change_message_id":"b7bda7f5497eaa86cf5ff2a255f968fbc91035e8","unresolved":false,"context_lines":[{"line_number":85,"context_line":"4. Currently, per the Openstack Compute API, \u0027volume-detach\u0027 takes an instance"},{"line_number":86,"context_line":"  UUID and an attachment UUID; but Nova currently uses the volume UUID as the"},{"line_number":87,"context_line":"  attachment UUID. However, when using volumes in remote deployments, we might"},{"line_number":88,"context_line":"  prefer not to trust the remote Cinder\u0027s UUID as globally unique. Therefore,"},{"line_number":89,"context_line":"  we have to find a way to create globally unique attachment UUIDs without"},{"line_number":90,"context_line":"  breaking the existing behavior that local volumes have attachment UUID equal"},{"line_number":91,"context_line":"  to their volume UUID. To do this, we add columns \u0027attachment_uuid\u0027 and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_4ac71d12","line":88,"in_reply_to":"dada55a8_10f9ee80","updated":"2016-07-25 21:02:36.000000000","message":"The worry here is that one of your remote Openstack deployments is being really nasty and generating maliciously non-unique UUIDs.\n\nWithin an Openstack deployment, this isn\u0027t a concern, as the services trust each other enough to not do that.  But you might trust the remote deployment\u0027s services less.\n\nGiven how complicated the solution is, it may not worth worrying about, though.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  deletes them if requested."},{"line_number":101,"context_line":"5. Instead of adding extra parameters to the volume-related API calls, we could"},{"line_number":102,"context_line":"  use qualified UUIDs (just like in the call to get details of an image). One"},{"line_number":103,"context_line":"  possible format is \u0027uuid@service-provider\u0027."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Data model impact"},{"line_number":106,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_f0f37a9d","line":103,"updated":"2016-07-25 14:33:13.000000000","message":"-1, see above.","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d33c0caa6fd29800d44acdbb68b04959c02c8f5","unresolved":false,"context_lines":[{"line_number":208,"context_line":"------------------"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"K2K token exchange is very slow.  With this spec as written, it will happen"},{"line_number":211,"context_line":"four or so times per relevant API call. (However, see Alternative 1)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Other deployer impact"},{"line_number":214,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_50f3669e","line":211,"updated":"2016-07-25 14:33:13.000000000","message":"What about mentioning the speed of writeable volumes when the volume is attached over a WAN link as proposed in this spec?","commit_id":"3372145013dfc1c56523bc8886ec4c2475298379"}]}
