)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"80b44c6de47426314815e7c1b2b5f5f742c9a6ea","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The response Min / Max headers are removed from earlier versions of"},{"line_number":18,"context_line":"the recommendation. These were originally in the Nova microversion"},{"line_number":19,"context_line":"spec, however of the 3 implementations of microversions out there,"},{"line_number":20,"context_line":"only Ironic actually implemented them. Neither Nova nor Manilla did,"},{"line_number":21,"context_line":"and they have not been missed. There is no reason to have people add"},{"line_number":22,"context_line":"them."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dae33548_f19f4601","line":20,"range":{"start_line":20,"start_character":56,"end_line":20,"end_character":63},"updated":"2016-02-15 17:25:54.000000000","message":"s/Manilla/Manila","commit_id":"5090b99ad25d57301e67642610537a72f648d3e9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d6ac0aa31888fe2e47e62ece9e96e4637cdc0c2e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The response Min / Max headers are removed from earlier versions of"},{"line_number":18,"context_line":"the recommendation. These were originally in the Nova microversion"},{"line_number":19,"context_line":"spec, however of the 3 implementations of microversions out there,"},{"line_number":20,"context_line":"only Ironic actually implemented them. Neither Nova nor Manilla did,"},{"line_number":21,"context_line":"and they have not been missed. There is no reason to have people add"},{"line_number":22,"context_line":"them."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5aef4532_3fe7d1e5","line":20,"range":{"start_line":20,"start_character":56,"end_line":20,"end_character":63},"updated":"2016-03-07 13:50:46.000000000","message":"Manila","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"}],"guidelines/microversion_specification.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d58248642008bacc0a70af68539161ea8c30e290","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Although the minimum version can be raised in the future, in the beginning"},{"line_number":56,"context_line":"of microversions support can be used to be compatible with old clients. The"},{"line_number":57,"context_line":"user or SDK should ask for something different in order to get new features."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Four extra headers are always returned in the response:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a68dd71_8717c7ec","line":57,"updated":"2016-01-20 20:18:23.000000000","message":"The first sentence of this paragraph has something wrong with it, but I\u0027m not sure what to suggest as I\u0027m not sue what the intent is.","commit_id":"839111930a91419ec7d2c5aa2dc132bc036ba18b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1e3ab8adf580ef37168671e8b099975b783f0908","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Although the minimum version can be raised in the future, in the beginning"},{"line_number":56,"context_line":"of microversions support can be used to be compatible with old clients. The"},{"line_number":57,"context_line":"user or SDK should ask for something different in order to get new features."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Four extra headers are always returned in the response:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a5de9d1_896847bc","line":57,"in_reply_to":"9a68dd71_8717c7ec","updated":"2016-01-27 16:10:26.000000000","message":"I think I can remove this paragraph, as this totally project specific policy. As in nova, we won\u0027t raise minimum version easily, as it will break the a lot of old user.","commit_id":"839111930a91419ec7d2c5aa2dc132bc036ba18b"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d58248642008bacc0a70af68539161ea8c30e290","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The second header is used as a hint to caching proxies that the response"},{"line_number":70,"context_line":"is also dependent on the OpenStack-[SERVICE_TYPE]-API-Version and not just"},{"line_number":71,"context_line":"the body and query parameters. See :rfc:`2616` section 14.44 for details."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The last two headers return the server supported minimum and maximum versions."},{"line_number":74,"context_line":"Those two headers are used by version negotiation of the client and server."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a68dd71_27d37b3a","line":71,"updated":"2016-01-20 20:18:23.000000000","message":"reference https://tools.ietf.org/html/rfc7231#section-7.1.4 instead, 2616 is obsoleted","commit_id":"839111930a91419ec7d2c5aa2dc132bc036ba18b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1e3ab8adf580ef37168671e8b099975b783f0908","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The second header is used as a hint to caching proxies that the response"},{"line_number":70,"context_line":"is also dependent on the OpenStack-[SERVICE_TYPE]-API-Version and not just"},{"line_number":71,"context_line":"the body and query parameters. See :rfc:`2616` section 14.44 for details."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The last two headers return the server supported minimum and maximum versions."},{"line_number":74,"context_line":"Those two headers are used by version negotiation of the client and server."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a5de9d1_695f0b0f","line":71,"in_reply_to":"9a68dd71_27d37b3a","updated":"2016-01-27 16:10:26.000000000","message":"Done","commit_id":"839111930a91419ec7d2c5aa2dc132bc036ba18b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eb4eb0cbba828003dd249654c5047c21dfa4a0f5","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  OpenStack-Identity-API-Version: 2.114"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This conceptually acts like the accept header. This is a global API"},{"line_number":31,"context_line":"version."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_aae72b3f","line":30,"range":{"start_line":30,"start_character":57,"end_line":30,"end_character":67},"updated":"2016-01-27 19:19:34.000000000","message":"could you elaborate?\n\nDo you mean that client applications may not specify a different micro version for every API call that they are making.. \n\nLike, /create with micro version 2.114 and /list with micro version 2.100 in the same program. \n\nI assume this is what you mean because this could lead to all kinds of inconsistencies..","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e34dc1e82e3ddc245c0cda4bbbdaa6ba1798155a","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  OpenStack-Identity-API-Version: 2.114"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This conceptually acts like the accept header. This is a global API"},{"line_number":31,"context_line":"version."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_f43e7ad9","line":30,"range":{"start_line":30,"start_character":57,"end_line":30,"end_character":67},"in_reply_to":"7a5de9d1_02671426","updated":"2016-02-02 13:54:41.000000000","message":"It would be nice to describe that behavior here as well, Alex. Thanks for the clarification.","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8e9a34db3b377038b86bbd04653839cc8f234ace","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  OpenStack-Identity-API-Version: 2.114"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This conceptually acts like the accept header. This is a global API"},{"line_number":31,"context_line":"version."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_02671426","line":30,"range":{"start_line":30,"start_character":57,"end_line":30,"end_character":67},"in_reply_to":"7a5de9d1_aae72b3f","updated":"2016-01-28 16:22:19.000000000","message":"no, the client can request different version on different API. The global API version means each version is a snapshot of the whole API. We can\u0027t say the max version of \u0027/create\u0027 is 2.114, \u0027the max version of \u0027/list\u0027 is 2.100. We only say the current API max version is \u00272.114\u0027, then both \u0027/create\u0027 and \u0027/list\u0027 support the max version \u00272.114\u0027\n\nIf this is really confused, I can try to another way to describe this. But I\u0027m thinking the meaning of version should be in the \u0027versioning\u0027 section.","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62af2e3786cc12d4bec287354e1172a098f642c8","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  OpenStack-Identity-API-Version: 2.114"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This conceptually acts like the accept header. This is a global API"},{"line_number":31,"context_line":"version."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a5ae5dd_59547353","line":30,"range":{"start_line":30,"start_character":57,"end_line":30,"end_character":67},"in_reply_to":"7a5de9d1_f43e7ad9","updated":"2016-02-03 01:46:24.000000000","message":"yes, I should describe this to clarify. But I think this really should be in the section versioning, let me ask Ken\u0027ichi help if he can add those description in the versioning section.","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"eb4eb0cbba828003dd249654c5047c21dfa4a0f5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"This conceptually acts like the accept header. This is a global API"},{"line_number":31,"context_line":"version."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is not provided, act as if minimum"},{"line_number":36,"context_line":"  supported version was specified."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_aa4bab58","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":24},"updated":"2016-01-27 19:19:34.000000000","message":"would make sense to say:\n\n\"Semantically, this means, for the server:\"\n\nor\n\nrestructure this to say:\n\n\"Clients should expect the following behavior from the server\":","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8e9a34db3b377038b86bbd04653839cc8f234ace","unresolved":false,"context_lines":[{"line_number":30,"context_line":"This conceptually acts like the accept header. This is a global API"},{"line_number":31,"context_line":"version."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is not provided, act as if minimum"},{"line_number":36,"context_line":"  supported version was specified."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_e54d2273","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":24},"in_reply_to":"7a5de9d1_aa4bab58","updated":"2016-01-28 16:22:19.000000000","message":"yea, thanks for your suggestion, that is more readable. And it is more clear to say this is server\u0027s behaviour","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e34dc1e82e3ddc245c0cda4bbbdaa6ba1798155a","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is not provided, act as if minimum"},{"line_number":36,"context_line":"  supported version was specified."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is sent, respond with the API at"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_f723dca5","line":35,"range":{"start_line":35,"start_character":30,"end_line":35,"end_character":34},"updated":"2016-02-02 13:54:41.000000000","message":"Could you please remove \"-API\" from these headers.. from the ML discussions and the api-wg meeting, the general consensus was that this was redundant..","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62af2e3786cc12d4bec287354e1172a098f642c8","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Semantically this means:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is not provided, act as if minimum"},{"line_number":36,"context_line":"  supported version was specified."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is sent, respond with the API at"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a5ae5dd_d98e2327","line":35,"range":{"start_line":35,"start_character":30,"end_line":35,"end_character":34},"in_reply_to":"7a5de9d1_f723dca5","updated":"2016-02-03 01:46:24.000000000","message":"yea, I will update","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"b559a3bb310d39cc60cf9b868a4374c7b733340d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is sent, respond with the API at"},{"line_number":39,"context_line":"  that version. If that\u0027s outside of the range of versions supported, return"},{"line_number":40,"context_line":"  406 Not Acceptable, and response body includes the server supported minimum"},{"line_number":41,"context_line":"  and maximum version."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version: latest (special keyword), act as"},{"line_number":44,"context_line":"  if maximum was specified."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a5de9d1_e923fba5","line":41,"updated":"2016-02-02 15:22:33.000000000","message":"i think we should demonstrate an example of this response","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"62af2e3786cc12d4bec287354e1172a098f642c8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version is sent, respond with the API at"},{"line_number":39,"context_line":"  that version. If that\u0027s outside of the range of versions supported, return"},{"line_number":40,"context_line":"  406 Not Acceptable, and response body includes the server supported minimum"},{"line_number":41,"context_line":"  and maximum version."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* If OpenStack-[SERVICE_TYPE]-API-Version: latest (special keyword), act as"},{"line_number":44,"context_line":"  if maximum was specified."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a5ae5dd_f993df4d","line":41,"in_reply_to":"7a5de9d1_e923fba5","updated":"2016-02-03 01:46:24.000000000","message":"There is example in the bottom of https://review.openstack.org/#/c/243429/3/guidelines/microversion_specification.rst\n\nIs that ok?","commit_id":"70776888ab57530236e6e62bec899b3bbaf5e9b5"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"b1f70fff9f3a3a86993e7fcd5404563af274f77b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3a57f1b5_91444db7","updated":"2016-02-12 15:33:42.000000000","message":"I\u0027d like to see a followup patch that describes microversion deprecation. Example case: Ironic realizes that the released microversion 2.3.22 is horrendously broken, and want to prevent clients from using it. 2.3.21 and 2.3.23 are, however, fine. How would this be expressed here (and in the discovery spec)?","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"4ddbc32206098b1cfbf3ae528670b78d98665310","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bae84128_d950de34","in_reply_to":"3a57f1b5_51256606","updated":"2016-02-23 19:13:46.000000000","message":"To quote myself: \"I\u0027d like to see a followup\". Which means, we agree.","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"30e84100ab114f12b9c59e85cc381d0cb7920e1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3a57f1b5_51256606","in_reply_to":"3a57f1b5_91444db7","updated":"2016-02-12 20:27:29.000000000","message":"There is no current mechanism for that. That\u0027s a whole additional bit of discovery that goes far beyond the current spec. \n\nI\u0027d suggest starting up that from scratch.","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"874a6df09022b3a1c702b655d4249d8f61a4890a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"A client specifies the version of the API they want via the following"},{"line_number":22,"context_line":"approach, a new header::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  OpenStack-[SERVICE_TYPE]-Version: 2.114"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"For example, Keystone will use header::"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_0ae026f9","line":24,"updated":"2016-02-12 16:20:34.000000000","message":"Note that in the api-wg meetings we discussed putting API back in so as to minimize the amount of change for existing deployments.\n\nHowever, most of that was based on the state of Nova, and at the moment Nova seems to use x-openstack-nova-api-version which is wrong in three ways (use of x, use of project name instead of service type, use of -api) so it seems to me that change in two ways or three ways is much the same cost.\n\nSo we\u0027ll continue to need hash this out.","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"874a6df09022b3a1c702b655d4249d8f61a4890a","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* If OpenStack-[SERVICE_TYPE]-Version is sent, respond with the API at"},{"line_number":38,"context_line":"  that version. If that\u0027s outside of the range of versions supported, return"},{"line_number":39,"context_line":"  406 Not Acceptable, and response body includes the server supported minimum"},{"line_number":40,"context_line":"  and maximum version."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* If OpenStack-[SERVICE_TYPE]-Version: latest (special keyword), act as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_0a9ca65b","line":39,"updated":"2016-02-12 16:20:34.000000000","message":"s/and/and a/","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"874a6df09022b3a1c702b655d4249d8f61a4890a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* OpenStack-[SERVICE_TYPE]-Version: version_number"},{"line_number":54,"context_line":"* Vary: OpenStack-[SERVICE_TYPE]-Version"},{"line_number":55,"context_line":"* OpenStack-[SERVICE_TYPE]-Minimum-Version: min_version_number"},{"line_number":56,"context_line":"* OpenStack-[SERVICE_TYPE]-Maximum-Version: max_version_number"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The first header specifies the version number of the API which was"},{"line_number":59,"context_line":"executed."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_6af0ba91","line":56,"updated":"2016-02-12 16:20:34.000000000","message":"We also discussed that these two headers aren\u0027t particular use when sent on _every_ response. Instead this information should available in the version discovery information that is described in the version discovery guideline.\n\nPart of the reason for not including it, other than noise, is that the information isn\u0027t particularly actionable. At the time you get the information you are already using a client that has a paritcular set of capabilities and is sending a particular microversion.","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"874a6df09022b3a1c702b655d4249d8f61a4890a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"the body and query parameters. See :rfc:`2616` section 14.44 for details."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The last two headers return the server supported minimum and maximum versions."},{"line_number":66,"context_line":"Those two headers are used by version negotiation of the client and server."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Version Discovery"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_6a475abc","line":66,"updated":"2016-02-12 16:20:34.000000000","message":"That should happen via version discovery, not these headers.","commit_id":"955f4eec1f36a48a6e0aca2c5b85b7771e6b874c"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"8ab2880e7fc613c1ec5bffbbd2b80d32f233055f","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. warning:: The ``latest`` value is mostly meant for integration testing and"},{"line_number":46,"context_line":"  would be dangerous to rely on in client code since microversions are not"},{"line_number":47,"context_line":"  following semver and therefore backward compability is not guaranteed."},{"line_number":48,"context_line":"  Clients should always require a specific microversions but limit what is"},{"line_number":49,"context_line":"  acceptable to the version range that it understands at the time."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a57f1b5_d9665c50","line":47,"updated":"2016-02-12 21:25:10.000000000","message":"do we need a reference on semver?","commit_id":"1c77dc1127a4071bdcc86f47d323e0837228095b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4b47ead917d81f8fb67a2905b6621872eac4b6ae","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. warning:: The ``latest`` value is mostly meant for integration testing and"},{"line_number":46,"context_line":"  would be dangerous to rely on in client code since microversions are not"},{"line_number":47,"context_line":"  following semver and therefore backward compability is not guaranteed."},{"line_number":48,"context_line":"  Clients should always require a specific microversions but limit what is"},{"line_number":49,"context_line":"  acceptable to the version range that it understands at the time."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"dae33548_7e3affce","line":47,"in_reply_to":"3a57f1b5_d9665c50","updated":"2016-02-15 06:48:03.000000000","message":"Done","commit_id":"1c77dc1127a4071bdcc86f47d323e0837228095b"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"4b9f307d72371214735f720b50dc5194052c9a53","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  Clients should always require a specific microversions but limit what is"},{"line_number":49,"context_line":"  acceptable to the version range that it understands at the time."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Four extra headers are always returned in the response:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Version: version_number"},{"line_number":54,"context_line":"* Vary: OpenStack-[SERVICE_TYPE]-API-Version"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a57f1b5_869e4305","line":51,"updated":"2016-02-12 21:07:56.000000000","message":"Two","commit_id":"1c77dc1127a4071bdcc86f47d323e0837228095b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4b47ead917d81f8fb67a2905b6621872eac4b6ae","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  Clients should always require a specific microversions but limit what is"},{"line_number":49,"context_line":"  acceptable to the version range that it understands at the time."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Four extra headers are always returned in the response:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Version: version_number"},{"line_number":54,"context_line":"* Vary: OpenStack-[SERVICE_TYPE]-API-Version"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dae33548_1e25b3aa","line":51,"in_reply_to":"3a57f1b5_869e4305","updated":"2016-02-15 06:48:03.000000000","message":"Done","commit_id":"1c77dc1127a4071bdcc86f47d323e0837228095b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"34bc8cc2e3ec1d79cd21c7b897368b1de5b4f48b","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Two extra headers are always returned in the response::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    OpenStack-API-Version: [SERVICE_TYPE]_version_number"},{"line_number":62,"context_line":"    Vary: OpenStack-API-Version"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The first header specifies the version number of the API which was"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_f656b25a","line":61,"range":{"start_line":61,"start_character":41,"end_line":61,"end_character":42},"updated":"2016-03-03 07:20:52.000000000","message":"Is this \u0027_\u0027 expected?","commit_id":"a612d8a05f9c353d1e29423884e024c80e1f6ff3"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"307ebd4682f481b75b8f3f5ceeabc38cfeef7ef6","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* If the OpenStack-API-Version header is sent, but the value does"},{"line_number":38,"context_line":"  not match the current service, act as if the minimum supported"},{"line_number":39,"context_line":"  version was specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* If the OpenStack-API-Version header is sent, the service type"},{"line_number":42,"context_line":"  matches, and the version takes the form of a version string respond"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_b535b447","line":39,"updated":"2016-03-07 18:13:35.000000000","message":"This paragraph\u0027s wording can probably be improved...\nWhat is \"the current service\"? I think you mean the OpenStack service being implemented by the server, but \"current\" does not seem to be the best adjective to use.\n\nAlso, If I understand correctly this is just a subcase of the previous bullet, which might be rephrased as:\n\n* If the OpenStack-API-Version header is not provided or it is provided but no version is specified for this specific service, act as if the minimum supported version was specified","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"b2140af0820ef9a9f7fea01d90ade204590e468e","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* If the OpenStack-API-Version header is sent, but the value does"},{"line_number":38,"context_line":"  not match the current service, act as if the minimum supported"},{"line_number":39,"context_line":"  version was specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* If the OpenStack-API-Version header is sent, the service type"},{"line_number":42,"context_line":"  matches, and the version takes the form of a version string respond"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_a13ea8d7","line":39,"in_reply_to":"5aef4532_b535b447","updated":"2016-03-09 13:57:47.000000000","message":"yeah, the service match can be a precondition \nfor most guideline here","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  not match the current service, act as if the minimum supported"},{"line_number":39,"context_line":"  version was specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* If the OpenStack-API-Version header is sent, the service type"},{"line_number":42,"context_line":"  matches, and the version takes the form of a version string respond"},{"line_number":43,"context_line":"  with the API at the indicated version. If the version is outside the"},{"line_number":44,"context_line":"  range of versions supported and is not the string ``latest`` (as"},{"line_number":45,"context_line":"  described below), return 406 Not Acceptable, and a response body"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_8917afa2","line":42,"range":{"start_line":41,"start_character":47,"end_line":42,"end_character":10},"updated":"2016-03-08 01:51:58.000000000","message":"This seems off topic in this context. Maybe we should assume the service type is always a match in these interactions and focus on the version thing.","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  version was specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* If the OpenStack-API-Version header is sent, the service type"},{"line_number":42,"context_line":"  matches, and the version takes the form of a version string respond"},{"line_number":43,"context_line":"  with the API at the indicated version. If the version is outside the"},{"line_number":44,"context_line":"  range of versions supported and is not the string ``latest`` (as"},{"line_number":45,"context_line":"  described below), return 406 Not Acceptable, and a response body"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_c97257e5","line":42,"range":{"start_line":42,"start_character":27,"end_line":42,"end_character":69},"updated":"2016-03-08 01:51:58.000000000","message":"rephrase this? not sure what this \u0027form\u0027 means...","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  matches, and the version takes the form of a version string respond"},{"line_number":43,"context_line":"  with the API at the indicated version. If the version is outside the"},{"line_number":44,"context_line":"  range of versions supported and is not the string ``latest`` (as"},{"line_number":45,"context_line":"  described below), return 406 Not Acceptable, and a response body"},{"line_number":46,"context_line":"  including the supported minimum and maximum versions."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* If OpenStack-API-Version header is sent, the service type matches, and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_a42612b8","line":45,"range":{"start_line":45,"start_character":62,"end_line":45,"end_character":66},"updated":"2016-03-08 01:51:58.000000000","message":"this should be header?","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  described below), return 406 Not Acceptable, and a response body"},{"line_number":46,"context_line":"  including the supported minimum and maximum versions."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* If OpenStack-API-Version header is sent, the service type matches, and"},{"line_number":49,"context_line":"  the version is set to the special keyword ``latest`` behave as if"},{"line_number":50,"context_line":"  maximum version was specified."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_04db867d","line":48,"range":{"start_line":48,"start_character":43,"end_line":48,"end_character":69},"updated":"2016-03-08 01:51:58.000000000","message":"IMO, this should be assumed as a prerequisite for this discussion","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"b2140af0820ef9a9f7fea01d90ade204590e468e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  described below), return 406 Not Acceptable, and a response body"},{"line_number":46,"context_line":"  including the supported minimum and maximum versions."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* If OpenStack-API-Version header is sent, the service type matches, and"},{"line_number":49,"context_line":"  the version is set to the special keyword ``latest`` behave as if"},{"line_number":50,"context_line":"  maximum version was specified."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_c155b4fa","line":48,"range":{"start_line":48,"start_character":43,"end_line":48,"end_character":69},"in_reply_to":"5aef4532_04db867d","updated":"2016-03-09 13:57:47.000000000","message":"+1","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"861c9c452d449268847a5d7c5ffd6c9cb315947c","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* If OpenStack-API-Version header is sent, the service type matches, and"},{"line_number":49,"context_line":"  the version is set to the special keyword ``latest`` behave as if"},{"line_number":50,"context_line":"  maximum version was specified."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. warning:: The ``latest`` value is mostly meant for integration testing and"},{"line_number":53,"context_line":"  would be dangerous to rely on in client code since microversions are not"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3afc51ec_f38ecfce","line":50,"updated":"2016-03-15 10:17:54.000000000","message":"I\u0027d move this point up, before we refer to the use of \u0027latest\u0027 in any part of this document.","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  the version is set to the special keyword ``latest`` behave as if"},{"line_number":50,"context_line":"  maximum version was specified."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. warning:: The ``latest`` value is mostly meant for integration testing and"},{"line_number":53,"context_line":"  would be dangerous to rely on in client code since microversions are not"},{"line_number":54,"context_line":"  following `semver \u003chttp://semver.org/\u003e`_ and therefore backward compability"},{"line_number":55,"context_line":"  is not guaranteed. Clients should always require a specific microversions but"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_e482daff","line":52,"range":{"start_line":52,"start_character":19,"end_line":52,"end_character":25},"updated":"2016-03-08 01:51:58.000000000","message":"do we require this to be case sensitive?","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"fa9169547bc56103db0bc385834c712fa19c9ef1","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  the version is set to the special keyword ``latest`` behave as if"},{"line_number":50,"context_line":"  maximum version was specified."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. warning:: The ``latest`` value is mostly meant for integration testing and"},{"line_number":53,"context_line":"  would be dangerous to rely on in client code since microversions are not"},{"line_number":54,"context_line":"  following `semver \u003chttp://semver.org/\u003e`_ and therefore backward compability"},{"line_number":55,"context_line":"  is not guaranteed. Clients should always require a specific microversions but"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3afc51ec_692f8ef6","line":52,"range":{"start_line":52,"start_character":19,"end_line":52,"end_character":25},"in_reply_to":"5aef4532_e1aef0e4","updated":"2016-03-14 18:46:12.000000000","message":"RFC 2616 and RFC 7230 do not specify constraints on the header values, only the header names are specified to be case-insensitive. That means it\u0027s our decision.\n\nPersonally, I\u0027m in favor of being case insensitive. I remember once encountering a framework that automatically uppercased everything, but I don\u0027t remember which that was, so I don\u0027t have a good example and/or use case, just an anecdote.","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"b2140af0820ef9a9f7fea01d90ade204590e468e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  the version is set to the special keyword ``latest`` behave as if"},{"line_number":50,"context_line":"  maximum version was specified."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. warning:: The ``latest`` value is mostly meant for integration testing and"},{"line_number":53,"context_line":"  would be dangerous to rely on in client code since microversions are not"},{"line_number":54,"context_line":"  following `semver \u003chttp://semver.org/\u003e`_ and therefore backward compability"},{"line_number":55,"context_line":"  is not guaranteed. Clients should always require a specific microversions but"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_e1aef0e4","line":52,"range":{"start_line":52,"start_character":19,"end_line":52,"end_character":25},"in_reply_to":"5aef4532_e482daff","updated":"2016-03-09 13:57:47.000000000","message":"seems nova use only lowercase now","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  would be dangerous to rely on in client code since microversions are not"},{"line_number":54,"context_line":"  following `semver \u003chttp://semver.org/\u003e`_ and therefore backward compability"},{"line_number":55,"context_line":"  is not guaranteed. Clients should always require a specific microversions but"},{"line_number":56,"context_line":"  limit what is acceptable to the version range that it understands at the"},{"line_number":57,"context_line":"  time."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Two extra headers are always returned in the response::"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_84a676bf","line":56,"range":{"start_line":56,"start_character":33,"end_line":56,"end_character":47},"updated":"2016-03-08 01:51:58.000000000","message":"if we are talking about a range instead of a specific version, should the client send two headers? or an alternative for consideration? For example:\n\n  OpenStack-API-Version: compute/2.1\n\nThis means the client requires at least 2.1 version.\n\n  OpenStack-API-Version: compute/2.1-2.15\n\nThis means the client can only understand the specified range.\n\nJust some random thoughts ...","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  limit what is acceptable to the version range that it understands at the"},{"line_number":57,"context_line":"  time."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Two extra headers are always returned in the response::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    OpenStack-API-Version: [SERVICE_TYPE] version_number"},{"line_number":62,"context_line":"    Vary: OpenStack-API-Version"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_e4abfa87","line":59,"range":{"start_line":59,"start_character":45,"end_line":59,"end_character":53},"updated":"2016-03-08 01:51:58.000000000","message":"this means \u0027response header\u0027?","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"c6810db7bcc4c55020bed994987b88cd548655f0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  designed to address multiple services always sends the headers it"},{"line_number":77,"context_line":"  thinks it needs. Most Python frameworks will handle this by setting"},{"line_number":78,"context_line":"  the value of the header to the values of all matching headers,"},{"line_number":79,"context_line":"  joined by a \u0027,\u0027 (comma). For example ``compute 2.11,identity"},{"line_number":80,"context_line":"  2.114``."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Version Discovery"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_84e2f6d3","line":80,"range":{"start_line":79,"start_character":41,"end_line":80,"end_character":7},"updated":"2016-03-08 01:51:58.000000000","message":"don\u0027t quite understand the use case here ... does it mean a request that has a version requirement for more than one service?","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"fa9169547bc56103db0bc385834c712fa19c9ef1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  designed to address multiple services always sends the headers it"},{"line_number":77,"context_line":"  thinks it needs. Most Python frameworks will handle this by setting"},{"line_number":78,"context_line":"  the value of the header to the values of all matching headers,"},{"line_number":79,"context_line":"  joined by a \u0027,\u0027 (comma). For example ``compute 2.11,identity"},{"line_number":80,"context_line":"  2.114``."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Version Discovery"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3afc51ec_a9a3564e","line":80,"range":{"start_line":79,"start_character":41,"end_line":80,"end_character":7},"in_reply_to":"5aef4532_01167c4b","updated":"2016-03-14 18:46:12.000000000","message":"I think they\u0027re talking about the lazy app developer, who just appends the header values for all the services s/he needs to every request. The end result is that you have one OpenStack-API-Version: header, but 5-22 different comma-separated values in that header.","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"b2140af0820ef9a9f7fea01d90ade204590e468e","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  designed to address multiple services always sends the headers it"},{"line_number":77,"context_line":"  thinks it needs. Most Python frameworks will handle this by setting"},{"line_number":78,"context_line":"  the value of the header to the values of all matching headers,"},{"line_number":79,"context_line":"  joined by a \u0027,\u0027 (comma). For example ``compute 2.11,identity"},{"line_number":80,"context_line":"  2.114``."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Version Discovery"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5aef4532_01167c4b","line":80,"range":{"start_line":79,"start_character":41,"end_line":80,"end_character":7},"in_reply_to":"5aef4532_84e2f6d3","updated":"2016-03-09 13:57:47.000000000","message":"guess it\u0027s different service might have different microversion number?","commit_id":"7f7bae732c165ddf799bc8000964612810e30a18"}]}
