)]}'
{"api/v3/identity-api-v3.rst":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"51cc73a48cbaf868dab6ee335a14a4cd24fe595b","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"*New in version 3.7*"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"- ``X-OpenStack-Keystone-API-Version``"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"  This header is used to convey the microversion with which the client is"},{"line_number":229,"context_line":"  communicating - and the server should respond as appropriate for that"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9abb7d3a_a660d236","line":226,"range":{"start_line":226,"start_character":2,"end_line":226,"end_character":38},"updated":"2016-05-28 10:28:06.000000000","message":"This is an incorrect header choice see: https://specs.openstack.org/openstack/api-wg/guidelines/microversion_specification.html\n\nspecifically the format should be: \n\n  OpenStack-API-Version: identity 2.114\n\n\n(Note the Non-X prefixed header as per RFC 6648)","commit_id":"b57ffdd0e5ad7baf8e975e19f9b84ec7af0fbceb"}],"specs/keystone/backlog/microversions.rst":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"cd14d977a79cda167f24498e9e7175e4163b3af6","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"(Cloned from Nova)"},{"line_number":22,"context_line":"Nova uses a framework we call ‘API Microversions’ for allowing changes"},{"line_number":23,"context_line":"to the API while preserving backward compatibility. The basic idea is"},{"line_number":24,"context_line":"that a user has to explicitly ask for their request to be treated with"},{"line_number":25,"context_line":"a particular version of the API. So breaking changes can be added to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_591b971b","line":22,"updated":"2016-05-13 19:38:01.000000000","message":"Great Description!!! Very helpful to have this background context!","commit_id":"575ca34bb1516cb22e05f229a3f075f5423331dc"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"01ea6f3fb8416e49344085d41d8a7093143b3408","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Alternatives"},{"line_number":49,"context_line":"------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There are many ways to do this.  This happens to be consistent with"},{"line_number":52,"context_line":"other projects, but we don\u0027t need to be consistent."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"We could break API and always force an update of the API version,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_f90ecb30","line":51,"range":{"start_line":51,"start_character":10,"end_line":51,"end_character":20},"updated":"2016-05-13 19:18:24.000000000","message":"Bring on oslo.microversion! :-)","commit_id":"575ca34bb1516cb22e05f229a3f075f5423331dc"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"cd14d977a79cda167f24498e9e7175e4163b3af6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There are many ways to do this.  This happens to be consistent with"},{"line_number":52,"context_line":"other projects, but we don\u0027t need to be consistent."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"We could break API and always force an update of the API version,"},{"line_number":55,"context_line":"making sure all changes are backwards compatible."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_197d8f1c","line":52,"updated":"2016-05-13 19:38:01.000000000","message":"I think consistency is a good thing.  So you can mention there are other alternatives but I would reiterate that reusing what Nova does as opposed to reinveinting the wheel is preferred.","commit_id":"575ca34bb1516cb22e05f229a3f075f5423331dc"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"00e15748e8b9bcdf15dc15b28912e6011ecede6b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There are many ways to do this.  This happens to be consistent with"},{"line_number":52,"context_line":"other projects, but we don\u0027t need to be consistent."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"We could break API and always force an update of the API version,"},{"line_number":55,"context_line":"making sure all changes are backwards compatible."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_84d46fbd","line":52,"in_reply_to":"dab17558_197d8f1c","updated":"2016-05-13 22:30:47.000000000","message":"From the perspective of managing keystoneauth - they MUST be consistent","commit_id":"575ca34bb1516cb22e05f229a3f075f5423331dc"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"cd14d977a79cda167f24498e9e7175e4163b3af6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Security Impact"},{"line_number":59,"context_line":"---------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"See Nova Spec"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Notifications Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dab17558_d9fe676a","line":61,"updated":"2016-05-13 19:38:01.000000000","message":"You should mention that the reference URL for the Nova spec is included below. Even better in my opinion for efficiency would be to copy paste in the relevant sections from the Nova spec.  You could mention that these were copied in as a convenience to the reader. But as long as you mention the URL is attached below that works.","commit_id":"575ca34bb1516cb22e05f229a3f075f5423331dc"}],"specs/keystone/newton/microversions.rst":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"61c9d3b2d146ca7a313f76ca32acb1e0ad895a3c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"had a form of microversions since the introduction of 3.0. At each release, the"},{"line_number":48,"context_line":"microversion of the API is defined in the Identity Specification (Mitaka was"},{"line_number":49,"context_line":"version 3.6). This microversion is also returned as part of the versions"},{"line_number":50,"context_line":"response from the /v3 API call. What keystone does not currently allow is for"},{"line_number":51,"context_line":"a client to request a particular microversion - you always get the latest one."},{"line_number":52,"context_line":"Hence the change proposed here is to support this client-server interrogation,"},{"line_number":53,"context_line":"as well as the server to support more than version at a time."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_16f2b56f","line":50,"range":{"start_line":50,"start_character":9,"end_line":50,"end_character":29},"updated":"2016-05-24 13:20:56.000000000","message":"not just from the /v3 API call","commit_id":"7bc964a6dd3adac15e2fcd73f167cea568a127bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e40ac5d99dbc41fcf09052d6b811223276aff142","unresolved":false,"context_lines":[{"line_number":47,"context_line":"had a form of microversions since the introduction of 3.0. At each release, the"},{"line_number":48,"context_line":"microversion of the API is defined in the Identity Specification (Mitaka was"},{"line_number":49,"context_line":"version 3.6). This microversion is also returned as part of the versions"},{"line_number":50,"context_line":"response from the /v3 API call. What keystone does not currently allow is for"},{"line_number":51,"context_line":"a client to request a particular microversion - you always get the latest one."},{"line_number":52,"context_line":"Hence the change proposed here is to support this client-server interrogation,"},{"line_number":53,"context_line":"as well as the server to support more than version at a time."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_0c646847","line":50,"range":{"start_line":50,"start_character":9,"end_line":50,"end_character":29},"in_reply_to":"bab6814e_16f2b56f","updated":"2016-05-24 13:39:49.000000000","message":"Done","commit_id":"7bc964a6dd3adac15e2fcd73f167cea568a127bb"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"5e8f297fd629125c92cf0759087a0d8271444c44","unresolved":false,"context_lines":[{"line_number":49,"context_line":"version 3.6). This microversion is also returned as part of the versions"},{"line_number":50,"context_line":"response from the / and /v3 API calls. What keystone does not currently allow"},{"line_number":51,"context_line":"is for a client to request a particular microversion - you always get the"},{"line_number":52,"context_line":"latest one. Hence the change proposed here is to support this client-server"},{"line_number":53,"context_line":"interrogation, as well as the server to support more than version at a time."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Microversions are implemented in the API through the addition of a new HTTP"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_aa252a5d","line":52,"updated":"2016-05-24 20:04:19.000000000","message":"Very nice how you point out the limitations with Keystone\u0027s current microversion approach!","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"5e8f297fd629125c92cf0759087a0d8271444c44","unresolved":false,"context_lines":[{"line_number":53,"context_line":"interrogation, as well as the server to support more than version at a time."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Microversions are implemented in the API through the addition of a new HTTP"},{"line_number":56,"context_line":"header - specifically \u0027X-OpenStack-Keystone-API-Version\u0027.  This header is"},{"line_number":57,"context_line":"accepted by keystone so a client can indicate which version of the API it wants"},{"line_number":58,"context_line":"to use for communication, and likewise for keystone to indicate which version"},{"line_number":59,"context_line":"it is using for communication."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_4abe3ed5","line":56,"updated":"2016-05-24 20:04:19.000000000","message":"I\u0027m glad you didnt suggest reusing Nova\u0027s header for this :-)","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"5e8f297fd629125c92cf0759087a0d8271444c44","unresolved":false,"context_lines":[{"line_number":66,"context_line":"specific microversion before 3.7 will not be supported (and any such request"},{"line_number":67,"context_line":"will be treated as an invalid version)."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Use Cases"},{"line_number":70,"context_line":"---------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"The following represents the keystone equivalent set of the user cases that are"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_085a7f2a","line":69,"updated":"2016-05-24 20:04:19.000000000","message":"I very much appreciate how you provided meticulous detail on all of the possible use cases!","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"5e8f297fd629125c92cf0759087a0d8271444c44","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For the purposes of definition, we will use the term \"KeystoneV3\" to refer to"},{"line_number":77,"context_line":"a version of keystone that predates microversions and has no knowledge of them."},{"line_number":78,"context_line":"Likewise, we will use the term \"KeystoneV3Newton+\" to refer to a version of"},{"line_number":79,"context_line":"keystone that includes support for microversions. Microversioning is not"},{"line_number":80,"context_line":"supported on the keystone v2.0 API, only the v3 API can have its version"},{"line_number":81,"context_line":"negotiated."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_6ab502cf","line":78,"updated":"2016-05-24 20:04:19.000000000","message":"Perhap KeystoneV3MicroVersion is a more self-descriptive name than KeystoneV3Newton+ over the long haul? In 6 months only Keystone insiders would appreciate/recognize KesytoneV3Newton+","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"723833a98e04d69052c00c3b66ceef669740943a","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For the purposes of definition, we will use the term \"KeystoneV3\" to refer to"},{"line_number":77,"context_line":"a version of keystone that predates microversions and has no knowledge of them."},{"line_number":78,"context_line":"Likewise, we will use the term \"KeystoneV3Newton+\" to refer to a version of"},{"line_number":79,"context_line":"keystone that includes support for microversions. Microversioning is not"},{"line_number":80,"context_line":"supported on the keystone v2.0 API, only the v3 API can have its version"},{"line_number":81,"context_line":"negotiated."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_abdb6d1a","line":78,"in_reply_to":"bab6814e_6ab502cf","updated":"2016-05-24 20:20:11.000000000","message":"Nice, idea - I\u0027ll change this throughout","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"75e98a5286d3ed3ee0c2941de9b95eb8daff7d3c","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For the purposes of definition, we will use the term \"KeystoneV3\" to refer to"},{"line_number":77,"context_line":"a version of keystone that predates microversions and has no knowledge of them."},{"line_number":78,"context_line":"Likewise, we will use the term \"KeystoneV3Newton+\" to refer to a version of"},{"line_number":79,"context_line":"keystone that includes support for microversions. Microversioning is not"},{"line_number":80,"context_line":"supported on the keystone v2.0 API, only the v3 API can have its version"},{"line_number":81,"context_line":"negotiated."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_dd0e658b","line":78,"in_reply_to":"bab6814e_abdb6d1a","updated":"2016-05-25 06:49:52.000000000","message":"++","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"75e98a5286d3ed3ee0c2941de9b95eb8daff7d3c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"to a version of python-keystoneclient which doesn\u0027t support microversions and"},{"line_number":85,"context_line":"\"new client\" to version of python-keystoneclient which does supports it."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Use Case 1: Old Client communicating with KeystoneV3"},{"line_number":88,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":89,"context_line":"This is exactly the same behaviour that was seen prior to the introduction"},{"line_number":90,"context_line":"of microversions - no change to either the client or server is required"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_dd6f85fa","line":87,"updated":"2016-05-25 06:49:52.000000000","message":"Suggest taking out this use case. We are not retrofitting so this use case is not new.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bca18ec4e70e50862a1f05e937b238b654347cbf","unresolved":false,"context_lines":[{"line_number":84,"context_line":"to a version of python-keystoneclient which doesn\u0027t support microversions and"},{"line_number":85,"context_line":"\"new client\" to version of python-keystoneclient which does supports it."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Use Case 1: Old Client communicating with KeystoneV3"},{"line_number":88,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":89,"context_line":"This is exactly the same behaviour that was seen prior to the introduction"},{"line_number":90,"context_line":"of microversions - no change to either the client or server is required"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_17572103","line":87,"in_reply_to":"bab6814e_dd6f85fa","updated":"2016-05-25 09:08:48.000000000","message":"I\u0027ll leave it in (since these use cases match Nova\u0027s spec), but will just say that no changes are being made here.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"75e98a5286d3ed3ee0c2941de9b95eb8daff7d3c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"* The client checks versions info, informs the user that it cannot"},{"line_number":124,"context_line":"  communicate to keystone using microversion and exits. One might think that"},{"line_number":125,"context_line":"  we should allow the stable/mitaka version to be used here - but the idea"},{"line_number":126,"context_line":"  (and nova set this approach) is to avoid confusion, a version must be"},{"line_number":127,"context_line":"  specified if you are using a new client."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Use Case 3B: New Client communicating with KeystoneV3 (user-specified)"},{"line_number":130,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_0341ae0b","line":127,"range":{"start_line":126,"start_character":54,"end_line":127,"end_character":41},"updated":"2016-05-25 06:49:52.000000000","message":"That would surely break backward compatibility. Imagine I just upgraded to the latest client and my old scripts no longer works because new client MANDATES a version to be specified.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bca18ec4e70e50862a1f05e937b238b654347cbf","unresolved":false,"context_lines":[{"line_number":123,"context_line":"* The client checks versions info, informs the user that it cannot"},{"line_number":124,"context_line":"  communicate to keystone using microversion and exits. One might think that"},{"line_number":125,"context_line":"  we should allow the stable/mitaka version to be used here - but the idea"},{"line_number":126,"context_line":"  (and nova set this approach) is to avoid confusion, a version must be"},{"line_number":127,"context_line":"  specified if you are using a new client."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Use Case 3B: New Client communicating with KeystoneV3 (user-specified)"},{"line_number":130,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_d7fe3904","line":127,"range":{"start_line":126,"start_character":54,"end_line":127,"end_character":41},"in_reply_to":"bab6814e_0341ae0b","updated":"2016-05-25 09:08:48.000000000","message":"I hear ya! I did ask the nova folks about this - and maybe this is where we can be different since we already had to specify the major version (i.e. 2 or 3), so by default I think becomes case 3C","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f9ec8547c2e5a77a2ca295e3975aa59d4ef0660b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"* The client checks versions info, informs the user that it cannot"},{"line_number":124,"context_line":"  communicate to keystone using microversion and exits. One might think that"},{"line_number":125,"context_line":"  we should allow the stable/mitaka version to be used here - but the idea"},{"line_number":126,"context_line":"  (and nova set this approach) is to avoid confusion, a version must be"},{"line_number":127,"context_line":"  specified if you are using a new client."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Use Case 3B: New Client communicating with KeystoneV3 (user-specified)"},{"line_number":130,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_e168cdbc","line":127,"range":{"start_line":126,"start_character":54,"end_line":127,"end_character":41},"in_reply_to":"bab6814e_84babadf","updated":"2016-05-25 13:28:05.000000000","message":"Changed this to fallback to latest non-microversioned API","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"32d07c0c3943ff191b4d3d276c6a39986eb256e2","unresolved":false,"context_lines":[{"line_number":123,"context_line":"* The client checks versions info, informs the user that it cannot"},{"line_number":124,"context_line":"  communicate to keystone using microversion and exits. One might think that"},{"line_number":125,"context_line":"  we should allow the stable/mitaka version to be used here - but the idea"},{"line_number":126,"context_line":"  (and nova set this approach) is to avoid confusion, a version must be"},{"line_number":127,"context_line":"  specified if you are using a new client."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Use Case 3B: New Client communicating with KeystoneV3 (user-specified)"},{"line_number":130,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_84babadf","line":127,"range":{"start_line":126,"start_character":54,"end_line":127,"end_character":41},"in_reply_to":"bab6814e_d7fe3904","updated":"2016-05-25 11:01:44.000000000","message":"can\u0027t this be specified in a config file that will to be used in the calls - with 3.6 as default? Think in this way it doesn\u0027t break the backwards compatibility.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"5e8f297fd629125c92cf0759087a0d8271444c44","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  microversions are not being used."},{"line_number":164,"context_line":"* The client processes received data, display it to user and exits."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Another supported way:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* The user specifies an identity api version of \"None\"."},{"line_number":169,"context_line":"* The client uses default major version(3 for now)."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_c8287788","line":166,"updated":"2016-05-24 20:04:19.000000000","message":"If you are going to provide two ways it would be best to explain why its worth showing two ways and their advantages and disadvantages","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"723833a98e04d69052c00c3b66ceef669740943a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  microversions are not being used."},{"line_number":164,"context_line":"* The client processes received data, display it to user and exits."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Another supported way:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* The user specifies an identity api version of \"None\"."},{"line_number":169,"context_line":"* The client uses default major version(3 for now)."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_6bf8657d","line":166,"in_reply_to":"bab6814e_c8287788","updated":"2016-05-24 20:20:11.000000000","message":"agreed - really just doing this to be compatible with nova - and I\u0027ll say that.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"75e98a5286d3ed3ee0c2941de9b95eb8daff7d3c","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Another supported way:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* The user specifies an identity api version of \"None\"."},{"line_number":169,"context_line":"* The client uses default major version(3 for now)."},{"line_number":170,"context_line":"* The client makes a connection to KeystoneV3, without adding a"},{"line_number":171,"context_line":"  X-OpenStack-Keystone-API-Version HTTP header"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_03dd2e42","line":168,"range":{"start_line":168,"start_character":53,"end_line":168,"end_character":55},"updated":"2016-05-25 06:49:52.000000000","message":"\"None\"? I think its better to be explicit. What if we later introduce Keystone V4? What would \"None\" represent then?","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bca18ec4e70e50862a1f05e937b238b654347cbf","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Another supported way:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* The user specifies an identity api version of \"None\"."},{"line_number":169,"context_line":"* The client uses default major version(3 for now)."},{"line_number":170,"context_line":"* The client makes a connection to KeystoneV3, without adding a"},{"line_number":171,"context_line":"  X-OpenStack-Keystone-API-Version HTTP header"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_a458a557","line":168,"range":{"start_line":168,"start_character":53,"end_line":168,"end_character":55},"in_reply_to":"bab6814e_03dd2e42","updated":"2016-05-25 09:08:48.000000000","message":"So I included this because that\u0027s what Nova uses....but I\u0027ll think on it some more...","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f9ec8547c2e5a77a2ca295e3975aa59d4ef0660b","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Another supported way:"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* The user specifies an identity api version of \"None\"."},{"line_number":169,"context_line":"* The client uses default major version(3 for now)."},{"line_number":170,"context_line":"* The client makes a connection to KeystoneV3, without adding a"},{"line_number":171,"context_line":"  X-OpenStack-Keystone-API-Version HTTP header"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_817f4165","line":168,"range":{"start_line":168,"start_character":53,"end_line":168,"end_character":55},"in_reply_to":"bab6814e_a458a557","updated":"2016-05-25 13:28:05.000000000","message":"I\u0027ve removed this, I think it creates more confusion than it helps.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"75e98a5286d3ed3ee0c2941de9b95eb8daff7d3c","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* The user specifies a microversion to the client that is invalid."},{"line_number":185,"context_line":"* The client returns an error to the user, i.e. the client should provide"},{"line_number":186,"context_line":"   some validation that a valid microversion identifier is provided."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"A valid microversion identifier must comply with the following regex:"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_c3a046a8","line":186,"range":{"start_line":186,"start_character":67,"end_line":186,"end_character":68},"updated":"2016-05-25 06:49:52.000000000","message":"client should just return the supported versions returned by the server and indicated the given version does not match any","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bca18ec4e70e50862a1f05e937b238b654347cbf","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* The user specifies a microversion to the client that is invalid."},{"line_number":185,"context_line":"* The client returns an error to the user, i.e. the client should provide"},{"line_number":186,"context_line":"   some validation that a valid microversion identifier is provided."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"A valid microversion identifier must comply with the following regex:"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_57afe9e2","line":186,"range":{"start_line":186,"start_character":67,"end_line":186,"end_character":68},"in_reply_to":"bab6814e_c3a046a8","updated":"2016-05-25 09:08:48.000000000","message":"we could....but was trying to stay compatible with what nova did....I\u0027ll check with them to see if they thought about this idea.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"5e8f297fd629125c92cf0759087a0d8271444c44","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Steps are the same as Use Case 5."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"This scenario should not occur in practice as the client should always"},{"line_number":217,"context_line":"be able to talk to any version of keystone."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Use Case 7: New Client/KeystoneV3Newton+: Compatible Version"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_e85f3b73","line":216,"updated":"2016-05-24 20:04:19.000000000","message":"I dont understand why this should not occur in practice?  Why could it not happen if the user is trying to do an operation that needs a specific microversion and your are contacting a keystone in a cloud that\u0027s back level?","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"723833a98e04d69052c00c3b66ceef669740943a","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Steps are the same as Use Case 5."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"This scenario should not occur in practice as the client should always"},{"line_number":217,"context_line":"be able to talk to any version of keystone."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Use Case 7: New Client/KeystoneV3Newton+: Compatible Version"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_6b54e553","line":216,"in_reply_to":"bab6814e_e85f3b73","updated":"2016-05-24 20:20:11.000000000","message":"so what that means is that you have a microversion enabled client from which you have removed support for earlier versions micro versions supported by servers out there. So I guess you could create the scenario if your remove such support - I\u0027ll make that clearer.","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"75e98a5286d3ed3ee0c2941de9b95eb8daff7d3c","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Use Case 8: New Client/KeystoneV3Newton+: Version request of \u0027latest\u0027"},{"line_number":231,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":232,"context_line":"This is the case where a new client requests a version of \u0027latest\u0027 from a"},{"line_number":233,"context_line":"KeystoneV3Newton+."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"* The user specifies \u0027latest\u0027 microversion is to be used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_e3b2aae4","line":232,"range":{"start_line":232,"start_character":59,"end_line":232,"end_character":65},"updated":"2016-05-25 06:49:52.000000000","message":"That\u0027s a pretty dangerous assumption would it. Latest could be different from instance to instance. How about some like greater than (\u003e), less than (\u003c), equal to (\u003d), etc?","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"32d07c0c3943ff191b4d3d276c6a39986eb256e2","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Use Case 8: New Client/KeystoneV3Newton+: Version request of \u0027latest\u0027"},{"line_number":231,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":232,"context_line":"This is the case where a new client requests a version of \u0027latest\u0027 from a"},{"line_number":233,"context_line":"KeystoneV3Newton+."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"* The user specifies \u0027latest\u0027 microversion is to be used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_c4b042e0","line":232,"range":{"start_line":232,"start_character":59,"end_line":232,"end_character":65},"in_reply_to":"bab6814e_778b0d69","updated":"2016-05-25 11:01:44.000000000","message":"+1 on following what has been working in nova","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bca18ec4e70e50862a1f05e937b238b654347cbf","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Use Case 8: New Client/KeystoneV3Newton+: Version request of \u0027latest\u0027"},{"line_number":231,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":232,"context_line":"This is the case where a new client requests a version of \u0027latest\u0027 from a"},{"line_number":233,"context_line":"KeystoneV3Newton+."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"* The user specifies \u0027latest\u0027 microversion is to be used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_778b0d69","line":232,"range":{"start_line":232,"start_character":59,"end_line":232,"end_character":65},"in_reply_to":"bab6814e_e3b2aae4","updated":"2016-05-25 09:08:48.000000000","message":"again, trying to be compatible with nova - I\u0027ll check with them if they have had issues here....","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"32d07c0c3943ff191b4d3d276c6a39986eb256e2","unresolved":false,"context_lines":[{"line_number":352,"context_line":"------------"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"There are many ways to do this.  This happens to be consistent with"},{"line_number":355,"context_line":"other projects, but we don\u0027t need to be consistent."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"We could break API and always force an update of the API version,"},{"line_number":358,"context_line":"making sure all changes are backwards compatible."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_c4120262","line":355,"range":{"start_line":355,"start_character":16,"end_line":355,"end_character":50},"updated":"2016-05-25 11:01:44.000000000","message":"I think we do, we don\u0027t want to create more confusion for operators","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f9ec8547c2e5a77a2ca295e3975aa59d4ef0660b","unresolved":false,"context_lines":[{"line_number":352,"context_line":"------------"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"There are many ways to do this.  This happens to be consistent with"},{"line_number":355,"context_line":"other projects, but we don\u0027t need to be consistent."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"We could break API and always force an update of the API version,"},{"line_number":358,"context_line":"making sure all changes are backwards compatible."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_1edc51e3","line":355,"range":{"start_line":355,"start_character":16,"end_line":355,"end_character":50},"in_reply_to":"bab6814e_c4120262","updated":"2016-05-25 13:28:05.000000000","message":"Done","commit_id":"220311d11be21a12255d2f93feb31445e307793d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"813061d141a1418be01c5399e2f72872847a9280","unresolved":false,"context_lines":[{"line_number":53,"context_line":"interrogation, as well as the server to support more than version at a time."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Microversions are implemented in the API through the addition of a new HTTP"},{"line_number":56,"context_line":"header - specifically \u0027X-OpenStack-Keystone-API-Version\u0027.  This header is"},{"line_number":57,"context_line":"accepted by keystone so a client can indicate which version of the API it wants"},{"line_number":58,"context_line":"to use for communication, and likewise for keystone to indicate which version"},{"line_number":59,"context_line":"it is using for communication."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9abb7d3a_664f0abe","line":56,"range":{"start_line":56,"start_character":22,"end_line":56,"end_character":56},"updated":"2016-05-28 10:29:34.000000000","message":"Please make sure that we are conforming to https://specs.openstack.org/openstack/api-wg/guidelines/microversion_specification.html\n thoughtout this spec. It looks, for the most part to be except for the header format/name","commit_id":"b57ffdd0e5ad7baf8e975e19f9b84ec7af0fbceb"}]}
