)]}'
{"doc/source/using-sessions.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3f1d235d_9534a594","updated":"2017-07-05 22:01:43.000000000","message":"[unrelated] Consistency of capitalization of \"Session\" throughout.  Benefit of the doubt: we\u0027re using \"Session\" to refer to a specific instance of the Session class, and \"session\" to refer to the general concept of a session.  Except we\u0027re not.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3f1d235d_c7408938","in_reply_to":"3f1d235d_9534a594","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Sharing Authentication Plugins"},{"line_number":81,"context_line":"------------------------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A session can only contain one authentication plugin however there is nothing"},{"line_number":84,"context_line":"that specifically binds the authentication plugin to that session, a new"},{"line_number":85,"context_line":"Session can be created that reuses the existing authentication plugin::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    \u003e\u003e\u003e new_sess \u003d session.Session(auth\u003dsess.auth,"},{"line_number":88,"context_line":"                                   verify\u003d\u0027/path/to/different-cas.cert\u0027)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_f56ab97e","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":69},"updated":"2017-07-05 22:01:43.000000000","message":"[unrelated] Punctuation here is a mess.  Also consistency of capitalization of \"Session\".  Perhaps:\n\nA Session can only contain one authentication plugin.  However, there is nothing that specifically binds the authentication plugin to that Session - a new Session can be created that reuses the existing authentication plugin::","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Sharing Authentication Plugins"},{"line_number":81,"context_line":"------------------------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A session can only contain one authentication plugin however there is nothing"},{"line_number":84,"context_line":"that specifically binds the authentication plugin to that session, a new"},{"line_number":85,"context_line":"Session can be created that reuses the existing authentication plugin::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    \u003e\u003e\u003e new_sess \u003d session.Session(auth\u003dsess.auth,"},{"line_number":88,"context_line":"                                   verify\u003d\u0027/path/to/different-cas.cert\u0027)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_675e5513","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":69},"in_reply_to":"3f1d235d_f56ab97e","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":125,"context_line":"-----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"In OpenStack the URLs of available services are distributed to the user as a"},{"line_number":128,"context_line":"part of the token they receive called the Service Catalog. Clients are expected"},{"line_number":129,"context_line":"to use the URLs from the Service Catalog rather than have them provided."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In general a client does not need to know the full URL for the server that they"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_b538c19f","line":128,"range":{"start_line":128,"start_character":31,"end_line":128,"end_character":57},"updated":"2017-07-05 22:01:43.000000000","message":"[unrelated] Vague antecedent. What\u0027s called the Service Catalog?  Perhaps: \"...the URLs of available services are distributed to the user in an object called the Service Catalog, which is part of the token they receive.\"","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":125,"context_line":"-----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"In OpenStack the URLs of available services are distributed to the user as a"},{"line_number":128,"context_line":"part of the token they receive called the Service Catalog. Clients are expected"},{"line_number":129,"context_line":"to use the URLs from the Service Catalog rather than have them provided."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In general a client does not need to know the full URL for the server that they"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_27873d64","line":128,"range":{"start_line":128,"start_character":31,"end_line":128,"end_character":57},"in_reply_to":"3f1d235d_b538c19f","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"ae13de522c681d826de98228463661a7302458bc","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    \u003e\u003e\u003e resp \u003d session.get(\u0027/users\u0027,"},{"line_number":141,"context_line":"                           endpoint_filter\u003d{\u0027service_type\u0027: \u0027identity\u0027,"},{"line_number":142,"context_line":"                                            \u0027interface\u0027: \u0027admin\u0027,"},{"line_number":143,"context_line":"                                            \u0027region_name\u0027: \u0027myregion\u0027})"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"`endpoint_filter` accepts a number of arguments with which it can determine an"},{"line_number":146,"context_line":"endpoint url:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_3fb2cb95","line":143,"updated":"2017-06-30 19:42:38.000000000","message":"would be great to add the new params here in this example call too, as the description below seem to be detailing this example","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    \u003e\u003e\u003e resp \u003d session.get(\u0027/users\u0027,"},{"line_number":141,"context_line":"                           endpoint_filter\u003d{\u0027service_type\u0027: \u0027identity\u0027,"},{"line_number":142,"context_line":"                                            \u0027interface\u0027: \u0027admin\u0027,"},{"line_number":143,"context_line":"                                            \u0027region_name\u0027: \u0027myregion\u0027})"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"`endpoint_filter` accepts a number of arguments with which it can determine an"},{"line_number":146,"context_line":"endpoint url:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_874851cc","line":143,"in_reply_to":"3f1d235d_3fb2cb95","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"version"},{"line_number":165,"context_line":"  the minimum major version of a given major API. For instance, a `version` of"},{"line_number":166,"context_line":"  ``2.0`` will match ``2.0`` and ``2.1`` but not ``3.0``. Can be given as a"},{"line_number":167,"context_line":"  string: ``\u00272.0\u0027``, an int: ``2``, a float: ``2.0`` or a tuple of ints:"},{"line_number":168,"context_line":"  ``(2, 0)``.  Mutually exclusive with `min_version` and `max_version`."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"min_version"},{"line_number":171,"context_line":"  the minimum major version of a given API, intended to be used as part of a"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_b59c41c0","line":168,"range":{"start_line":166,"start_character":58,"end_line":168,"end_character":13},"updated":"2017-07-05 22:01:43.000000000","message":"Strike; redundant with L185-191.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"version"},{"line_number":165,"context_line":"  the minimum major version of a given major API. For instance, a `version` of"},{"line_number":166,"context_line":"  ``2.0`` will match ``2.0`` and ``2.1`` but not ``3.0``. Can be given as a"},{"line_number":167,"context_line":"  string: ``\u00272.0\u0027``, an int: ``2``, a float: ``2.0`` or a tuple of ints:"},{"line_number":168,"context_line":"  ``(2, 0)``.  Mutually exclusive with `min_version` and `max_version`."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"min_version"},{"line_number":171,"context_line":"  the minimum major version of a given API, intended to be used as part of a"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_e71025ab","line":168,"range":{"start_line":166,"start_character":58,"end_line":168,"end_character":13},"in_reply_to":"3f1d235d_b59c41c0","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6a9fa141966ceb02a738c963cc5c2f76eb6f97a7","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  ``(2, 0)``.  Mutually exclusive with `min_version` and `max_version`."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"min_version"},{"line_number":171,"context_line":"  the minimum major version of a given API, intended to be used as part of a"},{"line_number":172,"context_line":"  range with `max_version`. Mutually exclusive with `version`."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"max_version"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_6ea409ba","line":171,"range":{"start_line":171,"start_character":2,"end_line":171,"end_character":42},"updated":"2017-07-02 13:19:47.000000000","message":"I think this could be written to more clearly distinguish itself from version - \"the minimum major version of a given major API\" and \"the minimum major version of a given API\" seem like the same thing.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  ``(2, 0)``.  Mutually exclusive with `min_version` and `max_version`."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"min_version"},{"line_number":171,"context_line":"  the minimum major version of a given API, intended to be used as part of a"},{"line_number":172,"context_line":"  range with `max_version`. Mutually exclusive with `version`."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"max_version"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_2a2ee4f9","line":171,"range":{"start_line":171,"start_character":2,"end_line":171,"end_character":42},"in_reply_to":"3f1d235d_6ea409ba","updated":"2017-07-11 20:34:00.000000000","message":"Done, I hope.  See whatcha think.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6a9fa141966ceb02a738c963cc5c2f76eb6f97a7","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"max_version"},{"line_number":175,"context_line":"  the maximum major version of a given API, intended to be used as part of a"},{"line_number":176,"context_line":"  range with `min_version`. Mutually exclusive with `version`."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"discover_versions"},{"line_number":179,"context_line":"  whether or not version discovery should be run, even if not strictly"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_4eab8d88","line":176,"updated":"2017-07-02 13:19:47.000000000","message":"min_version and max_version could use examples similar to version showing what it will match, e.g. unlike version, min_version of ``2.0`` will also match ``3.0``.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"max_version"},{"line_number":175,"context_line":"  the maximum major version of a given API, intended to be used as part of a"},{"line_number":176,"context_line":"  range with `min_version`. Mutually exclusive with `version`."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"discover_versions"},{"line_number":179,"context_line":"  whether or not version discovery should be run, even if not strictly"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_6a43bcb0","line":176,"in_reply_to":"3f1d235d_4eab8d88","updated":"2017-07-11 20:34:00.000000000","message":"Ditto","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6a9fa141966ceb02a738c963cc5c2f76eb6f97a7","unresolved":false,"context_lines":[{"line_number":175,"context_line":"  the maximum major version of a given API, intended to be used as part of a"},{"line_number":176,"context_line":"  range with `min_version`. Mutually exclusive with `version`."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"discover_versions"},{"line_number":179,"context_line":"  whether or not version discovery should be run, even if not strictly"},{"line_number":180,"context_line":"  necessary. It is often possible to fulfill an endpoint request purely"},{"line_number":181,"context_line":"  from the catalog, meaning the version discovery API is a potentially"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_6e8d2930","line":178,"range":{"start_line":178,"start_character":0,"end_line":178,"end_character":17},"updated":"2017-07-02 13:19:47.000000000","message":"Might be good to mention that this one has a default.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":175,"context_line":"  the maximum major version of a given API, intended to be used as part of a"},{"line_number":176,"context_line":"  range with `min_version`. Mutually exclusive with `version`."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"discover_versions"},{"line_number":179,"context_line":"  whether or not version discovery should be run, even if not strictly"},{"line_number":180,"context_line":"  necessary. It is often possible to fulfill an endpoint request purely"},{"line_number":181,"context_line":"  from the catalog, meaning the version discovery API is a potentially"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_477919fa","line":178,"range":{"start_line":178,"start_character":0,"end_line":178,"end_character":17},"in_reply_to":"3f1d235d_6e8d2930","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6a9fa141966ceb02a738c963cc5c2f76eb6f97a7","unresolved":false,"context_lines":[{"line_number":180,"context_line":"  necessary. It is often possible to fulfill an endpoint request purely"},{"line_number":181,"context_line":"  from the catalog, meaning the version discovery API is a potentially"},{"line_number":182,"context_line":"  wasted additional call. However, it\u0027s possible that running discovery"},{"line_number":183,"context_line":"  instead of inferrence is desired."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"All version arguments (`version`, `min_version` and `max_version`) can"},{"line_number":186,"context_line":"be given as:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_8e8ac518","line":183,"range":{"start_line":183,"start_character":13,"end_line":183,"end_character":23},"updated":"2017-07-02 13:19:47.000000000","message":"inference","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":180,"context_line":"  necessary. It is often possible to fulfill an endpoint request purely"},{"line_number":181,"context_line":"  from the catalog, meaning the version discovery API is a potentially"},{"line_number":182,"context_line":"  wasted additional call. However, it\u0027s possible that running discovery"},{"line_number":183,"context_line":"  instead of inferrence is desired."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"All version arguments (`version`, `min_version` and `max_version`) can"},{"line_number":186,"context_line":"be given as:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_67d535e5","line":183,"range":{"start_line":183,"start_character":13,"end_line":183,"end_character":23},"in_reply_to":"3f1d235d_8e8ac518","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"- `allow_unknown`: Allow endpoints with an unrecognised status."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"The session object determines the URL matching the filters and append to it the"},{"line_number":218,"context_line":"provided path and so create a valid request. If multiple URL matches are found"},{"line_number":219,"context_line":"then any one may be chosen."},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_f5b51933","line":217,"range":{"start_line":217,"start_character":63,"end_line":217,"end_character":69},"updated":"2017-07-05 22:01:43.000000000","message":"[unrelated] appends","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"- `allow_unknown`: Allow endpoints with an unrecognised status."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"The session object determines the URL matching the filters and append to it the"},{"line_number":218,"context_line":"provided path and so create a valid request. If multiple URL matches are found"},{"line_number":219,"context_line":"then any one may be chosen."},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_ca277012","line":217,"range":{"start_line":217,"start_character":63,"end_line":217,"end_character":69},"in_reply_to":"3f1d235d_f5b51933","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":215,"context_line":"- `allow_unknown`: Allow endpoints with an unrecognised status."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"The session object determines the URL matching the filters and append to it the"},{"line_number":218,"context_line":"provided path and so create a valid request. If multiple URL matches are found"},{"line_number":219,"context_line":"then any one may be chosen."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"While authentication plugins will endeavour to maintain a consistent set of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_35e831e0","line":218,"range":{"start_line":218,"start_character":21,"end_line":218,"end_character":27},"updated":"2017-07-05 22:01:43.000000000","message":"[unrelated] creates\n\nThat said, this whole sentence is kinda inside out.  Might read better as:\n\nThe Session object creates a valid request by determining the URL matching the filters and appending it to the provided path.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":215,"context_line":"- `allow_unknown`: Allow endpoints with an unrecognised status."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"The session object determines the URL matching the filters and append to it the"},{"line_number":218,"context_line":"provided path and so create a valid request. If multiple URL matches are found"},{"line_number":219,"context_line":"then any one may be chosen."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"While authentication plugins will endeavour to maintain a consistent set of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_ea858cd0","line":218,"range":{"start_line":218,"start_character":21,"end_line":218,"end_character":27},"in_reply_to":"3f1d235d_35e831e0","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":221,"context_line":"While authentication plugins will endeavour to maintain a consistent set of"},{"line_number":222,"context_line":"arguments for an ``endpoint_filter`` the concept of an authentication plugin is"},{"line_number":223,"context_line":"purposefully generic and a specific mechanism may not know how to interpret"},{"line_number":224,"context_line":"certain arguments and ignore them. For example the"},{"line_number":225,"context_line":":class:`keystoneauth1.token_endpoint.Token` plugin (which is used when you want"},{"line_number":226,"context_line":"to always use a specific endpoint and token combination) will always return the"},{"line_number":227,"context_line":"same endpoint regardless of the parameters to ``endpoint_filter`` or a custom"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_35d15124","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":33},"updated":"2017-07-05 22:01:43.000000000","message":"[unrelated] \"...arguments, and may ignore them\".  Else it sounds like the specific mechanism may not know how to ignore certain arguments.","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":221,"context_line":"While authentication plugins will endeavour to maintain a consistent set of"},{"line_number":222,"context_line":"arguments for an ``endpoint_filter`` the concept of an authentication plugin is"},{"line_number":223,"context_line":"purposefully generic and a specific mechanism may not know how to interpret"},{"line_number":224,"context_line":"certain arguments and ignore them. For example the"},{"line_number":225,"context_line":":class:`keystoneauth1.token_endpoint.Token` plugin (which is used when you want"},{"line_number":226,"context_line":"to always use a specific endpoint and token combination) will always return the"},{"line_number":227,"context_line":"same endpoint regardless of the parameters to ``endpoint_filter`` or a custom"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_4a624040","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":33},"in_reply_to":"3f1d235d_35d15124","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":235,"context_line":"--------------"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"If the developer would prefer to not provide `endpoint_filter` with every API"},{"line_number":238,"context_line":"call, an :class:`keystoneauth1.adapter.Adapter` can be created. The `Adapter`"},{"line_number":239,"context_line":"constructor takes the same arguments as `endpoint_filter`, as well as a"},{"line_number":240,"context_line":"`Session`. An `Adapter` behaves much like a `Session`, with the same REST"},{"line_number":241,"context_line":"methods, but is \"mounted\" on the endpoint that would be found by"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_75a8e98a","line":238,"range":{"start_line":238,"start_character":6,"end_line":238,"end_character":8},"updated":"2017-07-05 22:01:43.000000000","message":"arguably \"a\"","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":235,"context_line":"--------------"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"If the developer would prefer to not provide `endpoint_filter` with every API"},{"line_number":238,"context_line":"call, an :class:`keystoneauth1.adapter.Adapter` can be created. The `Adapter`"},{"line_number":239,"context_line":"constructor takes the same arguments as `endpoint_filter`, as well as a"},{"line_number":240,"context_line":"`Session`. An `Adapter` behaves much like a `Session`, with the same REST"},{"line_number":241,"context_line":"methods, but is \"mounted\" on the endpoint that would be found by"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_8a4f38bc","line":238,"range":{"start_line":238,"start_character":6,"end_line":238,"end_character":8},"in_reply_to":"3f1d235d_75a8e98a","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6a9fa141966ceb02a738c963cc5c2f76eb6f97a7","unresolved":false,"context_lines":[{"line_number":258,"context_line":"the endpoint found for a given service: ``get_endpoint_data``. It takes the"},{"line_number":259,"context_line":"same arguments as the `Adapter` constructor and `endpoint_filter`, and returns"},{"line_number":260,"context_line":"a :class:`keystoneauth1.discovery.EndpointData` object. This object can be used"},{"line_number":261,"context_line":"to determin which major `api_version` was found, or which `interface` in case"},{"line_number":262,"context_line":"of ranges, lists of input values or ``latest`` version. It can also be used to"},{"line_number":263,"context_line":"determine the `min_microversion` and `max_microversion` supported by the API."},{"line_number":264,"context_line":"If an API does not support microversions, the values will be ``None``."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_2e9cd15b","line":261,"range":{"start_line":261,"start_character":3,"end_line":261,"end_character":11},"updated":"2017-07-02 13:19:47.000000000","message":"determine","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":258,"context_line":"the endpoint found for a given service: ``get_endpoint_data``. It takes the"},{"line_number":259,"context_line":"same arguments as the `Adapter` constructor and `endpoint_filter`, and returns"},{"line_number":260,"context_line":"a :class:`keystoneauth1.discovery.EndpointData` object. This object can be used"},{"line_number":261,"context_line":"to determin which major `api_version` was found, or which `interface` in case"},{"line_number":262,"context_line":"of ranges, lists of input values or ``latest`` version. It can also be used to"},{"line_number":263,"context_line":"determine the `min_microversion` and `max_microversion` supported by the API."},{"line_number":264,"context_line":"If an API does not support microversions, the values will be ``None``."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_aa50b45f","line":261,"range":{"start_line":261,"start_character":3,"end_line":261,"end_character":11},"in_reply_to":"3f1d235d_2e9cd15b","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6a9fa141966ceb02a738c963cc5c2f76eb6f97a7","unresolved":false,"context_lines":[{"line_number":264,"context_line":"If an API does not support microversions, the values will be ``None``."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"``get_endpoint_data`` makes use of the same cache as the rest of the discovery"},{"line_number":267,"context_line":"process, so calling it should encure no undue expense. It will make at least"},{"line_number":268,"context_line":"one version discovery call so that it can fetch microversion metadata. If the"},{"line_number":269,"context_line":"user knows a service does not support microversions and is merely curious as"},{"line_number":270,"context_line":"to which major version was discovered, `discover_versions` can be set to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_ceac3d8e","line":267,"range":{"start_line":267,"start_character":30,"end_line":267,"end_character":36},"updated":"2017-07-02 13:19:47.000000000","message":"incur","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":264,"context_line":"If an API does not support microversions, the values will be ``None``."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"``get_endpoint_data`` makes use of the same cache as the rest of the discovery"},{"line_number":267,"context_line":"process, so calling it should encure no undue expense. It will make at least"},{"line_number":268,"context_line":"one version discovery call so that it can fetch microversion metadata. If the"},{"line_number":269,"context_line":"user knows a service does not support microversions and is merely curious as"},{"line_number":270,"context_line":"to which major version was discovered, `discover_versions` can be set to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f1d235d_aad554b9","line":267,"range":{"start_line":267,"start_character":30,"end_line":267,"end_character":36},"in_reply_to":"3f1d235d_ceac3d8e","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"2951206f99f66c94d1ff887e7d548e51026d8d55","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  Clients are not expected to have any knowledge of an identity token or any"},{"line_number":37,"context_line":"  other form of identification credential. Service, endpoint and version"},{"line_number":38,"context_line":"  discovery are handled by the Session and plugins. Discovery information is"},{"line_number":39,"context_line":"  automatically cached, so the user need not worry about excessive use of"},{"line_number":40,"context_line":"  discovery metadata."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f1d235d_aa1f946e","line":39,"updated":"2017-07-11 20:41:41.000000000","message":"Follow-up- may want to add \"in memory\" since we don\u0027t persist that cache anywhere. It\u0027s a nit- and an improvement we can make later.","commit_id":"a5cd61399f596917f99107ae70ee305763d47a38"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4e993b506da06015c2c5ce34290d002f07e273da","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  Clients are not expected to have any knowledge of an identity token or any"},{"line_number":37,"context_line":"  other form of identification credential. Service, endpoint and version"},{"line_number":38,"context_line":"  discovery are handled by the Session and plugins. Discovery information is"},{"line_number":39,"context_line":"  automatically cached, so the user need not worry about excessive use of"},{"line_number":40,"context_line":"  discovery metadata."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f1d235d_40621f40","line":39,"in_reply_to":"3f1d235d_aa1f946e","updated":"2017-07-11 22:03:05.000000000","message":"Will leave this for a followup so as not to cause rebase headaches with https://review.openstack.org/#/c/482710","commit_id":"a5cd61399f596917f99107ae70ee305763d47a38"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"2951206f99f66c94d1ff887e7d548e51026d8d55","unresolved":false,"context_lines":[{"line_number":165,"context_line":"region_name"},{"line_number":166,"context_line":"  the name of the region where the endpoint resides."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"version"},{"line_number":169,"context_line":"  the minimum version, restricted to a given major API. For instance, a"},{"line_number":170,"context_line":"  `version` of ``2.2`` will match ``2.2`` and ``2.3`` but not ``2.1`` or"},{"line_number":171,"context_line":"  ``3.0``. Mutually exclusive with `min_version` and `max_version`."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f1d235d_dd7298ad","line":168,"updated":"2017-07-11 20:41:41.000000000","message":"Do you think we should add a prominent note that version, min_version and max_version are only about selecting major version and not about selecting microversions?","commit_id":"a5cd61399f596917f99107ae70ee305763d47a38"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4e993b506da06015c2c5ce34290d002f07e273da","unresolved":false,"context_lines":[{"line_number":165,"context_line":"region_name"},{"line_number":166,"context_line":"  the name of the region where the endpoint resides."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"version"},{"line_number":169,"context_line":"  the minimum version, restricted to a given major API. For instance, a"},{"line_number":170,"context_line":"  `version` of ``2.2`` will match ``2.2`` and ``2.3`` but not ``2.1`` or"},{"line_number":171,"context_line":"  ``3.0``. Mutually exclusive with `min_version` and `max_version`."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f1d235d_804f17bc","line":168,"in_reply_to":"3f1d235d_dd7298ad","updated":"2017-07-11 22:03:05.000000000","message":"https://review.openstack.org/#/c/482710/","commit_id":"a5cd61399f596917f99107ae70ee305763d47a38"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"2951206f99f66c94d1ff887e7d548e51026d8d55","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Both :class:`keystoneauth1.adapter.Adapter` and"},{"line_number":267,"context_line":":class:`keystoneauth1.session.Session` have a method for getting metadata about"},{"line_number":268,"context_line":"the endpoint found for a given service: ``get_endpoint_data``. It takes the"},{"line_number":269,"context_line":"same arguments as the `Adapter` constructor and `endpoint_filter`, and returns"},{"line_number":270,"context_line":"a :class:`keystoneauth1.discovery.EndpointData` object. This object can be used"},{"line_number":271,"context_line":"to determine which major `api_version` was found, or which `interface` in case"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f1d235d_5d456842","line":268,"updated":"2017-07-11 20:41:41.000000000","message":"Reading this I wonder if we should split this out a little.\n\nSession.get_endpoint_data takes the same arguments as endpoint_filter.\n\nAdapter.get_endpoint_data CAN take the same arguments - but also can be used without arguments to get the endpoint_data associated with the endpoint the Adapter is mounted on.","commit_id":"a5cd61399f596917f99107ae70ee305763d47a38"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4e993b506da06015c2c5ce34290d002f07e273da","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"Both :class:`keystoneauth1.adapter.Adapter` and"},{"line_number":267,"context_line":":class:`keystoneauth1.session.Session` have a method for getting metadata about"},{"line_number":268,"context_line":"the endpoint found for a given service: ``get_endpoint_data``. It takes the"},{"line_number":269,"context_line":"same arguments as the `Adapter` constructor and `endpoint_filter`, and returns"},{"line_number":270,"context_line":"a :class:`keystoneauth1.discovery.EndpointData` object. This object can be used"},{"line_number":271,"context_line":"to determine which major `api_version` was found, or which `interface` in case"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f1d235d_bb45a417","line":268,"in_reply_to":"3f1d235d_5d456842","updated":"2017-07-11 22:03:05.000000000","message":"Done, I think.\n\nAlthough it made me realize that saying Adapter.get_endpoint_data(..., min/max_version\u003dwhatever, ...) will actually puke if you had initialized your Adapter with a `version`.  Not sure if that\u0027s the right behavior; let\u0027s talk.","commit_id":"a5cd61399f596917f99107ae70ee305763d47a38"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"ef5f92d731c3a080229e9e3485b8f02e0d63adf3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Sharing Authentication Plugins"},{"line_number":81,"context_line":"------------------------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A Session can only contain one authentication plugin.  However, there is"},{"line_number":84,"context_line":"nothing that specifically binds the authentication plugin to that Session - a"},{"line_number":85,"context_line":"new Session can be created that reuses the existing authentication plugin::"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f1d235d_7b294c99","line":83,"range":{"start_line":83,"start_character":53,"end_line":83,"end_character":55},"updated":"2017-07-11 22:25:11.000000000","message":"we\u0027ve got a single space between sentences elsewhere throughout the file.","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a1a6a9a98f615eaa49fc6b2ae8b1d605f7626663","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Sharing Authentication Plugins"},{"line_number":81,"context_line":"------------------------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"A Session can only contain one authentication plugin.  However, there is"},{"line_number":84,"context_line":"nothing that specifically binds the authentication plugin to that Session - a"},{"line_number":85,"context_line":"new Session can be created that reuses the existing authentication plugin::"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f1a1f67_5993a350","line":83,"range":{"start_line":83,"start_character":53,"end_line":83,"end_character":55},"in_reply_to":"3f1d235d_7b294c99","updated":"2017-07-12 09:02:16.000000000","message":"Done","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"ef5f92d731c3a080229e9e3485b8f02e0d63adf3","unresolved":false,"context_lines":[{"line_number":231,"context_line":"While authentication plugins will endeavour to maintain a consistent set of"},{"line_number":232,"context_line":"arguments for an ``endpoint_filter`` the concept of an authentication plugin is"},{"line_number":233,"context_line":"purposefully generic and a specific mechanism may not know how to interpret"},{"line_number":234,"context_line":"certain arguments, and may and ignore them. For example the"},{"line_number":235,"context_line":":class:`keystoneauth1.token_endpoint.Token` plugin (which is used when you want"},{"line_number":236,"context_line":"to always use a specific endpoint and token combination) will always return the"},{"line_number":237,"context_line":"same endpoint regardless of the parameters to ``endpoint_filter`` or a custom"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f1d235d_bb1fe46e","line":234,"updated":"2017-07-11 22:25:11.000000000","message":"this sentence still doesn\u0027t read very well... I suggest s/and may and/in which case it may/","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a1a6a9a98f615eaa49fc6b2ae8b1d605f7626663","unresolved":false,"context_lines":[{"line_number":231,"context_line":"While authentication plugins will endeavour to maintain a consistent set of"},{"line_number":232,"context_line":"arguments for an ``endpoint_filter`` the concept of an authentication plugin is"},{"line_number":233,"context_line":"purposefully generic and a specific mechanism may not know how to interpret"},{"line_number":234,"context_line":"certain arguments, and may and ignore them. For example the"},{"line_number":235,"context_line":":class:`keystoneauth1.token_endpoint.Token` plugin (which is used when you want"},{"line_number":236,"context_line":"to always use a specific endpoint and token combination) will always return the"},{"line_number":237,"context_line":"same endpoint regardless of the parameters to ``endpoint_filter`` or a custom"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f1a1f67_d979f32f","line":234,"in_reply_to":"3f1d235d_bb1fe46e","updated":"2017-07-12 09:02:16.000000000","message":"Done","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"ef5f92d731c3a080229e9e3485b8f02e0d63adf3","unresolved":false,"context_lines":[{"line_number":244,"context_line":"Using Adapters"},{"line_number":245,"context_line":"--------------"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"If the developer would prefer to not provide `endpoint_filter` with every API"},{"line_number":248,"context_line":"call, a :class:`keystoneauth1.adapter.Adapter` can be created. The `Adapter`"},{"line_number":249,"context_line":"constructor takes the same arguments as `endpoint_filter`, as well as a"},{"line_number":250,"context_line":"`Session`. An `Adapter` behaves much like a `Session`, with the same REST"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f1d235d_1b14984d","line":247,"range":{"start_line":247,"start_character":30,"end_line":247,"end_character":36},"updated":"2017-07-11 22:25:11.000000000","message":"s/to not/not to/","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a1a6a9a98f615eaa49fc6b2ae8b1d605f7626663","unresolved":false,"context_lines":[{"line_number":244,"context_line":"Using Adapters"},{"line_number":245,"context_line":"--------------"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"If the developer would prefer to not provide `endpoint_filter` with every API"},{"line_number":248,"context_line":"call, a :class:`keystoneauth1.adapter.Adapter` can be created. The `Adapter`"},{"line_number":249,"context_line":"constructor takes the same arguments as `endpoint_filter`, as well as a"},{"line_number":250,"context_line":"`Session`. An `Adapter` behaves much like a `Session`, with the same REST"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f1a1f67_d99e9353","line":247,"range":{"start_line":247,"start_character":30,"end_line":247,"end_character":36},"in_reply_to":"3f1d235d_1b14984d","updated":"2017-07-12 09:02:16.000000000","message":"Done","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"ef5f92d731c3a080229e9e3485b8f02e0d63adf3","unresolved":false,"context_lines":[{"line_number":249,"context_line":"constructor takes the same arguments as `endpoint_filter`, as well as a"},{"line_number":250,"context_line":"`Session`. An `Adapter` behaves much like a `Session`, with the same REST"},{"line_number":251,"context_line":"methods, but is \"mounted\" on the endpoint that would be found by"},{"line_number":252,"context_line":"`endpoint_filter`"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":".. code-block:: python"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f1d235d_7b026c0d","line":252,"updated":"2017-07-11 22:25:11.000000000","message":"end sentence in a period or : or something","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a1a6a9a98f615eaa49fc6b2ae8b1d605f7626663","unresolved":false,"context_lines":[{"line_number":249,"context_line":"constructor takes the same arguments as `endpoint_filter`, as well as a"},{"line_number":250,"context_line":"`Session`. An `Adapter` behaves much like a `Session`, with the same REST"},{"line_number":251,"context_line":"methods, but is \"mounted\" on the endpoint that would be found by"},{"line_number":252,"context_line":"`endpoint_filter`"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":".. code-block:: python"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f1a1f67_b9abd773","line":252,"in_reply_to":"3f1d235d_7b026c0d","updated":"2017-07-12 09:02:16.000000000","message":"Done","commit_id":"06d4fc369060f17bbd70716af8bb7eab54715d8c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7f130383a592b64f21bc0d080987991c684ad94d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"- Standard service and version discovery"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  Clients are not expected to have any knowledge of an identity token or any"},{"line_number":37,"context_line":"  other form of identification credential. Service, endpoint and version"},{"line_number":38,"context_line":"  discovery are handled by the Session and plugins. Discovery information is"},{"line_number":39,"context_line":"  automatically cached in memory, so the user need not worry about excessive"},{"line_number":40,"context_line":"  use of discovery metadata."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1f1a1f67_5cd32861","line":37,"updated":"2017-07-14 18:59:02.000000000","message":"oxford comma?","commit_id":"416675f619b6bb4db9ba8272558eadb19b6712ed"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7f130383a592b64f21bc0d080987991c684ad94d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Service Discovery"},{"line_number":125,"context_line":"-----------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"In OpenStack the URLs of available services are distributed to the user in an"},{"line_number":128,"context_line":"object called the Service Catalog, which is part of the token they receive."},{"line_number":129,"context_line":"Clients are expected to use the URLs from the Service Catalog rather than have"},{"line_number":130,"context_line":"them provided."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1f1a1f67_fc44341d","line":127,"updated":"2017-07-14 18:59:02.000000000","message":"comma after OpenStack\n\n  In OpenStack, the URLs ...","commit_id":"416675f619b6bb4db9ba8272558eadb19b6712ed"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7f130383a592b64f21bc0d080987991c684ad94d","unresolved":false,"context_lines":[{"line_number":281,"context_line":"process, so calling it should incur no undue expense. It will make at least one"},{"line_number":282,"context_line":"version discovery call so that it can fetch microversion metadata. If the user"},{"line_number":283,"context_line":"knows a service does not support microversions and is merely curious as to"},{"line_number":284,"context_line":"which major version was discovered, `discover_versions` can be set to `False`"},{"line_number":285,"context_line":"to prevent fetching microversion metadata."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1f1a1f67_5cbd68d6","line":284,"updated":"2017-07-14 18:59:02.000000000","message":"wrap with `` to be consistent with the rest of literal in this section:\n\n  ``discover_versions``\n  ``False``","commit_id":"416675f619b6bb4db9ba8272558eadb19b6712ed"}],"releasenotes/notes/support-api-wg-discovery-2cb4b0186619e124.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"786e18bac8fab3d86c8506fd50e44c2cc9ad9a55","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added support for the API Working Group recommendations"},{"line_number":4,"context_line":"    on service and version discovery. New methods on"},{"line_number":5,"context_line":"    Session and Adapater, \"get_endpoint_data\" will return"},{"line_number":6,"context_line":"    endpoint metadata including microversion information."},{"line_number":7,"context_line":"    Additionally, versions can be requested with a range"},{"line_number":8,"context_line":"    and with the string \"latest\", and interface values"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3f1d235d_7a321860","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":24},"updated":"2017-07-05 22:01:43.000000000","message":"Adapter","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7c7fa125f905dae09f8ee970ecd2c3260c1d6380","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added support for the API Working Group recommendations"},{"line_number":4,"context_line":"    on service and version discovery. New methods on"},{"line_number":5,"context_line":"    Session and Adapater, \"get_endpoint_data\" will return"},{"line_number":6,"context_line":"    endpoint metadata including microversion information."},{"line_number":7,"context_line":"    Additionally, versions can be requested with a range"},{"line_number":8,"context_line":"    and with the string \"latest\", and interface values"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3f1d235d_4af00068","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":24},"in_reply_to":"3f1d235d_7a321860","updated":"2017-07-11 20:34:00.000000000","message":"Done","commit_id":"8fb84c4200bc2e105ef61d7f04534a77a1eff591"}]}
