)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9b5898f018967cf1f2fe25fe9374e803b333668c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add version discover guideline for API microversions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This guideline describe all the client discover the microversions"},{"line_number":10,"context_line":"from the server side."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I96a5084e5c44f030c19ed31f123b90cd184174b7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a68dd71_67065322","line":10,"updated":"2016-01-20 20:31:19.000000000","message":"Do you mean \"This guidelines describes how the client can request the available microversions from the server.\"","commit_id":"237db74b91c0f1971d30b619818fb84656f25d88"}],"guidelines/microversion_specification.rst":[{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"4146dc3cf526a275d4cc62f28aefd0d5b6d3a6a8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"version."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows (This is example from Nova Version"},{"line_number":31,"context_line":"API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"::"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_7f3be89c","line":31,"updated":"2015-11-10 16:06:49.000000000","message":"i think we can drop the parenthesis comment here","commit_id":"2096479015c4857a52309c8549d9e394599d19fd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"905ffa07b3cd3343f8fcb20bb752e7f11d971936","unresolved":false,"context_lines":[{"line_number":28,"context_line":"version."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows (This is example from Nova Version"},{"line_number":31,"context_line":"API):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"::"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_9bf1e003","line":31,"in_reply_to":"da85f559_7f3be89c","updated":"2015-11-11 07:38:15.000000000","message":"Done","commit_id":"2096479015c4857a52309c8549d9e394599d19fd"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"4146dc3cf526a275d4cc62f28aefd0d5b6d3a6a8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"versions are returned in the headers of every response."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* X-OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":59,"context_line":"* X-OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":62,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_fff598ca","line":59,"updated":"2015-11-10 16:06:49.000000000","message":"we should not be advising continued use of X- in headers. i think it\u0027s fine for APIs that already use this to continue, but for new APIs we should not be recommending this.","commit_id":"2096479015c4857a52309c8549d9e394599d19fd"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"e60b0e2326f211d98a9f865c2273011f3d53769e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"versions are returned in the headers of every response."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* X-OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":59,"context_line":"* X-OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":62,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_95eba3db","line":59,"in_reply_to":"da85f559_5be05829","updated":"2016-01-15 14:17:48.000000000","message":"For reference, X-* headers are deprecated in this RFC https://tools.ietf.org/html/rfc6648","commit_id":"2096479015c4857a52309c8549d9e394599d19fd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"905ffa07b3cd3343f8fcb20bb752e7f11d971936","unresolved":false,"context_lines":[{"line_number":56,"context_line":"versions are returned in the headers of every response."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* X-OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":59,"context_line":"* X-OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":62,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da85f559_5be05829","line":59,"in_reply_to":"da85f559_fff598ca","updated":"2015-11-11 07:38:15.000000000","message":"yea, I forget that.","commit_id":"2096479015c4857a52309c8549d9e394599d19fd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9b5898f018967cf1f2fe25fe9374e803b333668c","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The Version API for each service should return the minimum and maximum"},{"line_number":27,"context_line":"versions. These values are used by the client to discovery the API supported"},{"line_number":28,"context_line":"version."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows. This is example from Nova Version"},{"line_number":31,"context_line":"API::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_8703470f","line":28,"updated":"2016-01-20 20:31:19.000000000","message":"\"These values are used by the client to discover the supported API versions.\" Maybe that?","commit_id":"237db74b91c0f1971d30b619818fb84656f25d88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c988a4ac246844a9e691874f81e25e30f5275923","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The Version API for each service should return the minimum and maximum"},{"line_number":27,"context_line":"versions. These values are used by the client to discovery the API supported"},{"line_number":28,"context_line":"version."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows. This is example from Nova Version"},{"line_number":31,"context_line":"API::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_296353b3","line":28,"in_reply_to":"9a68dd71_8703470f","updated":"2016-01-27 16:11:22.000000000","message":"Done","commit_id":"237db74b91c0f1971d30b619818fb84656f25d88"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9b5898f018967cf1f2fe25fe9374e803b333668c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"version."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows. This is example from Nova Version"},{"line_number":31,"context_line":"API::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    GET /"},{"line_number":34,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_63ff2602","line":31,"updated":"2016-01-20 20:31:19.000000000","message":"\"This example is from the Nova API::\" ?","commit_id":"237db74b91c0f1971d30b619818fb84656f25d88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c988a4ac246844a9e691874f81e25e30f5275923","unresolved":false,"context_lines":[{"line_number":28,"context_line":"version."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows. This is example from Nova Version"},{"line_number":31,"context_line":"API::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    GET /"},{"line_number":34,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_e95c5bef","line":31,"in_reply_to":"9a68dd71_63ff2602","updated":"2016-01-27 16:11:22.000000000","message":"yes, \u0027Version\u0027 looks like useless.","commit_id":"237db74b91c0f1971d30b619818fb84656f25d88"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9b5898f018967cf1f2fe25fe9374e803b333668c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":60,"context_line":"status code **406 Not Acceptable** along with a response body."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The JSON-Schema of response is:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"::"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a68dd71_83049a15","line":62,"updated":"2016-01-20 20:31:19.000000000","message":"the response","commit_id":"237db74b91c0f1971d30b619818fb84656f25d88"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"c9f447141370b92ea1cca8b70f3c16d4978c8b16","unresolved":false,"context_lines":[{"line_number":53,"context_line":"versions are returned in the headers of every response."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":56,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":59,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a5de9d1_b65be2f5","line":56,"updated":"2016-01-28 16:56:03.000000000","message":"Please remove API from the header. It\u0027s totally redundant.","commit_id":"4733b9fbc0a80fd252ba2b1d30017687b33fdf2f"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"4d898e5d4c1465339f05362541b57107a0c3057c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"versions are returned in the headers of every response."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":56,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":59,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a5de9d1_f6a4fab9","line":56,"updated":"2016-01-28 16:57:05.000000000","message":"given the discussion in the api-wg meeting from 1-28, we should drop the \"-API\" in these headers","commit_id":"4733b9fbc0a80fd252ba2b1d30017687b33fdf2f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d962788bba8519c1a0033a1d22153ac414b8c14b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"versions are returned in the headers of every response."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":56,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":59,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_79f5af81","line":56,"in_reply_to":"7a5de9d1_282deafd","updated":"2016-02-03 01:33:33.000000000","message":"that makes sense, will update","commit_id":"4733b9fbc0a80fd252ba2b1d30017687b33fdf2f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"08d4a62e805b543f40157ebec297bfb0338938aa","unresolved":false,"context_lines":[{"line_number":53,"context_line":"versions are returned in the headers of every response."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Minimum-Version: min_version_number"},{"line_number":56,"context_line":"* OpenStack-[SERVICE_TYPE]-API-Maximum-Version: max_version_number"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":59,"context_line":"status code **406 Not Acceptable** along with a response body."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a5de9d1_282deafd","line":56,"in_reply_to":"7a5de9d1_f6a4fab9","updated":"2016-02-01 02:18:29.000000000","message":"+1 for removing redundant one :)","commit_id":"4733b9fbc0a80fd252ba2b1d30017687b33fdf2f"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"a9daade57b117638ac26d91a7c52b7a642c75bf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3a57f1b5_ffe46de0","updated":"2016-02-12 15:29:39.000000000","message":"I don\u0027t actually see any reference to microversions at all - is it assumed that in this section the terms \u0027version\u0027 and \u0027microversion\u0027 are synonymous? That\u0027s a bit confusing, no?","commit_id":"6bc084879e6a2848b1e6ad109f7b109badfbe664"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cf29ac3b1b241674d03f0884dfc1d7c6d6e60c0e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"versions. These values are used by the client to discover the supported API"},{"line_number":28,"context_line":"versions."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"A version response would look as follows. This is example from Nova API::"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    GET /"},{"line_number":33,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_3401c705","line":30,"updated":"2016-02-12 15:39:38.000000000","message":"There\u0027s some potnetial opportunities for confusion here with the duplicated use of the terms \"versions\" and \"version\". Michael gets into this a bit in his comments, but to be a bit more explicit:\n\nWe have a list of a versions, where the value appears to be @id, when in fact that\u0027s just a name. Then we have a version and min_version which presumably refer to the microversion? In this example using \"5.2\" seems confusing.\n\nWould it be possible to make an example that didn\u0027t use v* in the example?","commit_id":"6bc084879e6a2848b1e6ad109f7b109badfbe664"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"a9daade57b117638ac26d91a7c52b7a642c75bf8","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ],"},{"line_number":43,"context_line":"                \"status\": \"CURRENT\","},{"line_number":44,"context_line":"                \"version\": \"5.2\","},{"line_number":45,"context_line":"                \"min_version\": \"2.1\""},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"       ]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_1fb94979","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":33},"updated":"2016-02-12 15:29:39.000000000","message":"If I pass the Openstack-[SERVICE]-version header requesting a specific microversion, should this change?\n\nI see that these values are all included in the headers - if they\u0027re included in the headers, does it make sense to even include min and max here?","commit_id":"6bc084879e6a2848b1e6ad109f7b109badfbe664"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"a9daade57b117638ac26d91a7c52b7a642c75bf8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                ],"},{"line_number":43,"context_line":"                \"status\": \"CURRENT\","},{"line_number":44,"context_line":"                \"version\": \"5.2\","},{"line_number":45,"context_line":"                \"min_version\": \"2.1\""},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"       ]"},{"line_number":48,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_d112c556","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":36},"updated":"2016-02-12 15:29:39.000000000","message":"I think I understand why this information is kept at this level of the data object - if I GET /v2/, it may be useful to know that the current version is X, and the min version is Y, and the max version is Z. \n\nHowever, I think there\u0027s two distinct requests here. The first is \"What is the entire range of supported versions of this API\", while the second is \"What is the entire range of supported microversions of 2.X\".\n\nThe former is for all versions, and is implied in the [versions] array, and is also returned in the HTTP response headers. The latter is for each microversion, and should be scoped to that particular version object. i.e. if the ID of the version object is \"v2.1\", then \"version\", \"min_version\", and (potentially) max_version should never be outside of the range of 2.1.x, as it is here.","commit_id":"6bc084879e6a2848b1e6ad109f7b109badfbe664"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"a9daade57b117638ac26d91a7c52b7a642c75bf8","unresolved":false,"context_lines":[{"line_number":47,"context_line":"       ]"},{"line_number":48,"context_line":"    }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"version\" is maximum version, \"min_version\" is minimum version."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"As mentioned in the previous section, the maximum and minimum supported"},{"line_number":53,"context_line":"versions are returned in the headers of every response."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_31d5591b","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":63},"updated":"2016-02-12 15:29:39.000000000","message":"You include max_version below, include it here (and add to example).","commit_id":"6bc084879e6a2848b1e6ad109f7b109badfbe664"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cf29ac3b1b241674d03f0884dfc1d7c6d6e60c0e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"\"version\" is maximum version, \"min_version\" is minimum version."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"As mentioned in the previous section, the maximum and minimum supported"},{"line_number":53,"context_line":"versions are returned in the headers of every response."},{"line_number":54,"context_line":""},{"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"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_d16c0537","line":53,"updated":"2016-02-12 15:39:38.000000000","message":"We decided in discussions surrounding yesterday\u0027s api-wg meeting that this was probably redundant noise that doesn\u0027t actually help anyone when they are using a service. The information should be available for discovery (as described above) but these headesrs are not needed.","commit_id":"6bc084879e6a2848b1e6ad109f7b109badfbe664"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dbff19bc6acb6b79b17c2e129f727825339a114e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ],"},{"line_number":43,"context_line":"                \"status\": \"CURRENT\","},{"line_number":44,"context_line":"                \"version\": \"5.2\","},{"line_number":45,"context_line":"                \"min_version\": \"2.1\""},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"       ]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_a7f2ce6d","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":24},"updated":"2016-02-14 04:40:25.000000000","message":"This \"version\" is just a sample from Nova, but I feel \"max_version\" is better instead as the guideline because the following failure response contains this as \"max_version\" and that is clear meaning.\n\nI just have a concern many projects use \"version\" of nova sample based on this guideline.","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"cbe37ba53d706c18b50c7d7d02ce8a8d4135b233","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ],"},{"line_number":43,"context_line":"                \"status\": \"CURRENT\","},{"line_number":44,"context_line":"                \"version\": \"5.2\","},{"line_number":45,"context_line":"                \"min_version\": \"2.1\""},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"       ]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_9d012409","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":24},"in_reply_to":"dae33548_83b04c8d","updated":"2016-02-17 22:13:59.000000000","message":"i think in this case though, changing this to max_version actually adds to the information conveyed. in the -API case it was more a cosmetic thing.\n\ni agree we should have parity between the request and response.","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8259f7250bf9b5079e19c0e659a8b7da664f4b42","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ],"},{"line_number":43,"context_line":"                \"status\": \"CURRENT\","},{"line_number":44,"context_line":"                \"version\": \"5.2\","},{"line_number":45,"context_line":"                \"min_version\": \"2.1\""},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"       ]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_45503f0b","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":24},"in_reply_to":"dae33548_9d012409","updated":"2016-02-19 02:14:52.000000000","message":"ok, that sounds make sense. I clear our strategy now.","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e0cb3b80e10b62adebe864b08f7781e9e1497d71","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    }"},{"line_number":42,"context_line":"                ],"},{"line_number":43,"context_line":"                \"status\": \"CURRENT\","},{"line_number":44,"context_line":"                \"version\": \"5.2\","},{"line_number":45,"context_line":"                \"min_version\": \"2.1\""},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"       ]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_83b04c8d","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":24},"in_reply_to":"dae33548_a7f2ce6d","updated":"2016-02-15 06:38:40.000000000","message":"yea, \u0027max_version\u0027 sounds better. But from the discussion about \u0027-API\u0027, there is agreement on respecting existed implementation.","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dbff19bc6acb6b79b17c2e129f727825339a114e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  HTTP/1.1 406 Not Acceptable"},{"line_number":88,"context_line":"  Openstack-Compute-API-Version: 5.3"},{"line_number":89,"context_line":"  Vary: OpenStack-Compute-API-Version"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_c7c6f215","line":88,"range":{"start_line":88,"start_character":19,"end_line":88,"end_character":23},"updated":"2016-02-14 04:40:25.000000000","message":"As PS3 discussion, this \"-API\" seems redundant.\nCan we remove this from this header also?","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e0cb3b80e10b62adebe864b08f7781e9e1497d71","unresolved":false,"context_lines":[{"line_number":85,"context_line":"::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  HTTP/1.1 406 Not Acceptable"},{"line_number":88,"context_line":"  Openstack-Compute-API-Version: 5.3"},{"line_number":89,"context_line":"  Vary: OpenStack-Compute-API-Version"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_83896ccd","line":88,"range":{"start_line":88,"start_character":19,"end_line":88,"end_character":23},"in_reply_to":"dae33548_c7c6f215","updated":"2016-02-15 06:38:40.000000000","message":"There is another discussion agreement on bring that back again. http://eavesdrop.openstack.org/meetings/api_wg/2016/api_wg.2016-02-11-16.00.log.html","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dbff19bc6acb6b79b17c2e129f727825339a114e","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  HTTP/1.1 406 Not Acceptable"},{"line_number":88,"context_line":"  Openstack-Compute-API-Version: 5.3"},{"line_number":89,"context_line":"  Vary: OpenStack-Compute-API-Version"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  {"},{"line_number":92,"context_line":"    \"versionFault\": {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_a7cbee1d","line":89,"range":{"start_line":89,"start_character":25,"end_line":89,"end_character":29},"updated":"2016-02-14 04:40:25.000000000","message":"ditto","commit_id":"ddd3b387c2fc911af0fdbae3da331f544ba76fa5"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"6dfa619a878afa139379fb641be1e192a37d4c04","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"max_version\" is maximum version, \"min_version\" is minimum version."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":53,"context_line":"status code **406 Not Acceptable** along with a response body."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9aed3d3a_af8b771d","line":51,"updated":"2016-02-26 19:06:30.000000000","message":"The following section seems out of place or perhaps needs a new heading. This seems relevant to version negotiation, not version discovery. That could lead to possible confusion about what the following response schema and response are for.\n\nIn particular this content seems like it should follow a description of how to issue a request with a specific version.","commit_id":"3ff9708d8ece532938622e8bbe08387d6fe5a831"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"942be31825177c87c7fbb82180a027b13abf6e16","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    }"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"max_version\" is maximum version, \"min_version\" is minimum version."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"When the requested version is out of range for the server, the server returns"},{"line_number":53,"context_line":"status code **406 Not Acceptable** along with a response body."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9aed3d3a_2ab39099","line":51,"in_reply_to":"9aed3d3a_af8b771d","updated":"2016-02-29 13:16:48.000000000","message":"Actually we will read https://review.openstack.org/#/c/243414/8 first. That is for client interaction. The following section is for showing the fault response also show the max_version and min_version, people can get discover the supported version from the fault response also.","commit_id":"3ff9708d8ece532938622e8bbe08387d6fe5a831"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"5132c18363563309be1dd239a7e424647df4bb1b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  }"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"An example response:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"::"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bae84128_bd6dfbcd","line":83,"updated":"2016-02-23 22:55:12.000000000","message":"What is the request that led to this response?","commit_id":"3ff9708d8ece532938622e8bbe08387d6fe5a831"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"da41b6eb60c781bd3ec8897fd755a75913ebeec0","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  }"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"An example response:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"::"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bae84128_eb45e842","line":83,"in_reply_to":"bae84128_bd6dfbcd","updated":"2016-02-24 09:46:03.000000000","message":"When you request a version the server didn\u0027t supported, just like line 52 said.","commit_id":"3ff9708d8ece532938622e8bbe08387d6fe5a831"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5e7ab45f3853980bec6c6a1b8afa286b5a9251d9","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  HTTP/1.1 406 Not Acceptable"},{"line_number":89,"context_line":"  Openstack-API-Version: compute 5.3"},{"line_number":90,"context_line":"  Vary: OpenStack-API-Version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  {"},{"line_number":93,"context_line":"    \"versionFault\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_3ec89754","line":90,"updated":"2016-03-04 13:53:41.000000000","message":"It occurs to me that this format does not align with the format in http://specs.openstack.org/openstack/api-wg/guidelines/errors.html\n\ndoes that matter?","commit_id":"03ad5ec93801fba8a5ebb3d2a551e275642123bd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0110c3b1fbcdc3da437d9db7b7e0274e5ffc89a6","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  HTTP/1.1 406 Not Acceptable"},{"line_number":89,"context_line":"  Openstack-API-Version: compute 5.3"},{"line_number":90,"context_line":"  Vary: OpenStack-API-Version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  {"},{"line_number":93,"context_line":"    \"versionFault\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5aef4532_65c39f38","line":90,"in_reply_to":"5aef4532_37943e89","updated":"2016-03-11 03:34:51.000000000","message":"agree, when I wrote this, we didn\u0027t have errors guide yet. It\u0027s great to define the error response with new guideline.\n\nI changed the code to \"compute.microverion-unsupported\".  The errors guideline said the code includes server name generally. And I use \"microverion-unsupported\" instead of \"negotiation\". I think this request just part of \"negotiation\", the full \"negotiation\" is more complex and implement at client side.\n\nAlso change the help ref link to nova api concept doc.","commit_id":"03ad5ec93801fba8a5ebb3d2a551e275642123bd"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"8bb95540e2f1bdc472674ff653925aba38acab53","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  HTTP/1.1 406 Not Acceptable"},{"line_number":89,"context_line":"  Openstack-API-Version: compute 5.3"},{"line_number":90,"context_line":"  Vary: OpenStack-API-Version"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  {"},{"line_number":93,"context_line":"    \"versionFault\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5aef4532_37943e89","line":90,"in_reply_to":"7af24918_3ec89754","updated":"2016-03-10 19:57:24.000000000","message":"It does matter. This response should conform to the errors guideline. Here\u0027s an example.\n\n{\n  \"errors\": [\n    {\n      \"request_id\": \"2ee92f06-8ede-4fb4-8921-b507601fb59d\",\n      \"code\": \"microverion-negotiation-failed\",\n      \"status\": 406,\n      \"title\": \"Microversion negotiation failed\",\n      \"detail\": \"Version 5.3 is not supported by the API. Minimum is 2.1 and maximum is 5.2.\",\n      \"max_version\": \"5.2\",\n      \"min_version\": \"2.1\",\n      \"links\": [\n        {\n          \"rel\": \"help\",\n          \"href\": \"http://specs.openstack.org/openstack/api-wg/guidelines/microversion_specification.html\"\n        }\n      ]\n    }\n  ]\n}\n\nIf you use that example and the errors JSON Schema [1] in a validator like JSON Schema Lint [2], it passes.\n\n[1] http://git.openstack.org/cgit/openstack/api-wg/plain/guidelines/errors-schema.json\n[2] http://jsonschemalint.com/draft4/","commit_id":"03ad5ec93801fba8a5ebb3d2a551e275642123bd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"b987daf19c4bfce815d8bd09ef2e23f22afaf67e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"status code **406 Not Acceptable** along with a response body."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The error response body confrom the errors guideline :ref:`errors`, and with"},{"line_number":57,"context_line":"two additional properties, the additional properties\u0027 json-schema as below:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"::"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3afc51ec_48230c06","line":57,"updated":"2016-03-11 15:23:35.000000000","message":"\"The error response body conforms to the errors guideline :ref:`errors` with two additional properties as described in the json-schema below:\"\n\nOr something like that.","commit_id":"9c94dfd7dde62a8b30a3ab82e37916f8430d056d"}]}
