)]}'
{"specs/rocky/approved/report-client-placement-version-discovery.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2db2f2e3945d8a3b7021e41745911a18a22ab83a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  mismatch, selecting a different code path using an earlier microversion."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Whereas the former makes sense to avoid the profusion of dead code associated"},{"line_number":28,"context_line":"with \"obsolete\" behavior, the latter is awkward and inefficient."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The placement service supports `API version discovery`_.  This spec proposes to"},{"line_number":31,"context_line":"exploit it from the Nova scheduler report client when the placement adapter is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_f2cb771b","line":28,"updated":"2018-03-06 11:09:37.000000000","message":"The latter is the very definition of content negotiation and a thing you\u0027re supposed to accept as a normal part of HTTP and really not that big of a deal.\n\nBut since we know versions anyway, may as well make use of them. It is better. But casting aspersions on HTTP remarkable capability to make this stuff work is sad-facing making.","commit_id":"33032b8c2f5a91948272debec2f66e9c779440c1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce916885c46df3a731c514423c26cb32d575a0f9","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  mismatch, selecting a different code path using an earlier microversion."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Whereas the former makes sense to avoid the profusion of dead code associated"},{"line_number":28,"context_line":"with \"obsolete\" behavior, the latter is awkward and inefficient."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The placement service supports `API version discovery`_.  This spec proposes to"},{"line_number":31,"context_line":"exploit it from the Nova scheduler report client when the placement adapter is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_54fcea3c","line":28,"in_reply_to":"ff6b8bd7_f2cb771b","updated":"2018-03-14 21:57:23.000000000","message":"Touchy touchy :P\n\nI am duly impressed with HTTP and meant no disrespect.  The intent was, \"more awkward and less efficient than it needs to be.\"","commit_id":"33032b8c2f5a91948272debec2f66e9c779440c1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dfebb9af26bc62ae3e7a5025cc492066e3ae8aad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"#. In the SchedulerReportClient (in ``_create_client()``), once the"},{"line_number":44,"context_line":"   keystoneauth Adapter is successfully created, use ``get_endpoint_data()``"},{"line_number":45,"context_line":"   thereon.  Save the ``max_microversion`` of the resulting ``EndpointData``"},{"line_number":46,"context_line":"   into an instance attribute."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Implement a ``_supports_version()`` instance method which accepts a version"},{"line_number":49,"context_line":"   designation and returns a boolean indicating whether the client supports"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_8614c245","line":46,"updated":"2018-03-13 13:21:32.000000000","message":"Will we know when to invalidate the cached max_microversion and redo the negotiation?\n\nDo we need to handle the situation when placement is upgraded independently from nova and therefore the cached max_microversion in nova needs to be invalidated runtime?","commit_id":"33032b8c2f5a91948272debec2f66e9c779440c1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce916885c46df3a731c514423c26cb32d575a0f9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"#. In the SchedulerReportClient (in ``_create_client()``), once the"},{"line_number":44,"context_line":"   keystoneauth Adapter is successfully created, use ``get_endpoint_data()``"},{"line_number":45,"context_line":"   thereon.  Save the ``max_microversion`` of the resulting ``EndpointData``"},{"line_number":46,"context_line":"   into an instance attribute."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Implement a ``_supports_version()`` instance method which accepts a version"},{"line_number":49,"context_line":"   designation and returns a boolean indicating whether the client supports"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_14c192e5","line":46,"in_reply_to":"df7087c5_8614c245","updated":"2018-03-14 21:57:23.000000000","message":"The @safe_connect decorator gives us this for free.","commit_id":"33032b8c2f5a91948272debec2f66e9c779440c1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2db2f2e3945d8a3b7021e41745911a18a22ab83a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   or maybe sometimes even like this::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"      thing \u003d new_thing if self._supports_version(HIGH_VERSION) else old_thing"},{"line_number":68,"context_line":"      resp \u003d self.post(url, thing, version\u003d\u0027latest\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. note:: The minimum supported placement API version should always be 1.0, but"},{"line_number":71,"context_line":"          the minimum version required by Nova should be known and greater.  So"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_1292abf7","line":68,"updated":"2018-03-06 11:09:37.000000000","message":"Ew, please no, this is hard to read. The previous is nice and explicit.","commit_id":"33032b8c2f5a91948272debec2f66e9c779440c1"}]}
