)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a06e637846519ab09081cab302dd2cfd3f130f99","unresolved":false,"context_lines":[{"line_number":21,"context_line":"in keystoneauth."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I610836e5038774621690aca88b2aee25670f0262"},{"line_number":24,"context_line":"story: 2005118"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9fdfeff1_36380c3a","line":24,"updated":"2019-03-04 11:02:41.000000000","message":"please add\n\n Task: #29802","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"eddbf19ef3689a3f047581ed62afda77e753eaef","unresolved":false,"context_lines":[{"line_number":21,"context_line":"in keystoneauth."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I610836e5038774621690aca88b2aee25670f0262"},{"line_number":24,"context_line":"story: 2005118"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9fdfeff1_ef7ce2b7","line":24,"in_reply_to":"9fdfeff1_36380c3a","updated":"2019-03-04 16:45:37.000000000","message":"Done","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"}],"ironicclient/client.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a06e637846519ab09081cab302dd2cfd3f130f99","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        session \u003d session_loader.load_from_options(auth\u003dauth_plugin,"},{"line_number":101,"context_line":"                                                   **session_opts)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # Make sure we also convey the endpoint interface to the HTTP client."},{"line_number":104,"context_line":"    # NOTE(gyee): we are supposed to be using valid_interfaces as interface"},{"line_number":105,"context_line":"    # is deprecated."},{"line_number":106,"context_line":"    interface \u003d kwargs.get(\u0027valid_interfaces\u0027, kwargs.get(\u0027interface\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_163b8839","line":103,"updated":"2019-03-04 11:02:41.000000000","message":"nit: s/convey/pass/","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"eddbf19ef3689a3f047581ed62afda77e753eaef","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        session \u003d session_loader.load_from_options(auth\u003dauth_plugin,"},{"line_number":101,"context_line":"                                                   **session_opts)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # Make sure we also convey the endpoint interface to the HTTP client."},{"line_number":104,"context_line":"    # NOTE(gyee): we are supposed to be using valid_interfaces as interface"},{"line_number":105,"context_line":"    # is deprecated."},{"line_number":106,"context_line":"    interface \u003d kwargs.get(\u0027valid_interfaces\u0027, kwargs.get(\u0027interface\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_6b38e5d3","line":103,"in_reply_to":"9fdfeff1_163b8839","updated":"2019-03-04 16:45:37.000000000","message":"Done","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e48eaa269d3c5778736431885446b4b0075b3bdd","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            # explicitly."},{"line_number":116,"context_line":"            endpoint \u003d session.get_endpoint("},{"line_number":117,"context_line":"                service_type\u003dkwargs.get(\u0027service_type\u0027) or \u0027baremetal\u0027,"},{"line_number":118,"context_line":"                interface\u003dinterface,"},{"line_number":119,"context_line":"                region_name\u003dkwargs.get(\u0027region_name\u0027)"},{"line_number":120,"context_line":"            )"},{"line_number":121,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_51d57e1a","line":118,"updated":"2019-03-05 11:50:42.000000000","message":"it seems that we should pass valid_interfaces here if set, so it should probably be\n\n interface\u003dkwargs.get(\u0027interface\u0027),\n valid_interfaces\u003dkwargs.get(\u0027valid_interfaces\u0027)","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b17363177adbf473d93179b9c807f4da0eed97d3","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            # explicitly."},{"line_number":116,"context_line":"            endpoint \u003d session.get_endpoint("},{"line_number":117,"context_line":"                service_type\u003dkwargs.get(\u0027service_type\u0027) or \u0027baremetal\u0027,"},{"line_number":118,"context_line":"                interface\u003dinterface,"},{"line_number":119,"context_line":"                region_name\u003dkwargs.get(\u0027region_name\u0027)"},{"line_number":120,"context_line":"            )"},{"line_number":121,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_64701974","line":118,"in_reply_to":"5fc1f717_62c6dc19","updated":"2019-03-06 15:13:35.000000000","message":"Thanks for clarifying!","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"7f406feda6090c4e5e326397c11d825c70e451ee","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            # explicitly."},{"line_number":116,"context_line":"            endpoint \u003d session.get_endpoint("},{"line_number":117,"context_line":"                service_type\u003dkwargs.get(\u0027service_type\u0027) or \u0027baremetal\u0027,"},{"line_number":118,"context_line":"                interface\u003dinterface,"},{"line_number":119,"context_line":"                region_name\u003dkwargs.get(\u0027region_name\u0027)"},{"line_number":120,"context_line":"            )"},{"line_number":121,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_62c6dc19","line":118,"in_reply_to":"9fdfeff1_51d57e1a","updated":"2019-03-05 23:59:47.000000000","message":"Internally, KSA only understands \u0027interface\u0027. See\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L1139\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/base.py#L306","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e48eaa269d3c5778736431885446b4b0075b3bdd","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        \u0027retry_interval\u0027: retry_interval,"},{"line_number":130,"context_line":"        \u0027session\u0027: session,"},{"line_number":131,"context_line":"        \u0027endpoint_override\u0027: endpoint,"},{"line_number":132,"context_line":"        \u0027interface\u0027: interface"},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    return Client(api_version, **ironicclient_kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f1d91256","line":132,"updated":"2019-03-05 11:50:42.000000000","message":"similarly, I think https://github.com/openstack/python-ironicclient/blob/master/ironicclient/common/http.py#L718 needs updating, so that we can pass both interface and valid_interfaces.","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"7f406feda6090c4e5e326397c11d825c70e451ee","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        \u0027retry_interval\u0027: retry_interval,"},{"line_number":130,"context_line":"        \u0027session\u0027: session,"},{"line_number":131,"context_line":"        \u0027endpoint_override\u0027: endpoint,"},{"line_number":132,"context_line":"        \u0027interface\u0027: interface"},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    return Client(api_version, **ironicclient_kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_028598ad","line":132,"in_reply_to":"9fdfeff1_f1d91256","updated":"2019-03-05 23:59:47.000000000","message":"Internally, KSA only understands \u0027interface\u0027. See\n\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L1139\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/base.py#L306\n\nSessionClient is a subclass of KSA Adapter class. It\u0027s get_endpoint() method is calling session.get_endpoint(), which only understands \u0027interface\u0027. See\n\n * https://github.com/openstack/python-ironicclient/blob/master/ironicclient/common/http.py#L586\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/adapter.py#L292\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L1139\n * https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/base.py#L306","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"0127cf7744fc26f4476eb184e50d489349eb96ab","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                                                   **session_opts)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    # Make sure we also pass the endpoint interface to the HTTP client."},{"line_number":104,"context_line":"    # NOTE(gyee): we are supposed to be using valid_interfaces as interface"},{"line_number":105,"context_line":"    # is deprecated."},{"line_number":106,"context_line":"    interface \u003d kwargs.get(\u0027interface\u0027)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_f8202afa","line":104,"updated":"2019-03-06 17:11:37.000000000","message":"we might want to remove this NOTE, but I guess it is ok :)","commit_id":"e37677350726a570ccc2bad946f28ae0e78a8039"}],"ironicclient/tests/unit/test_client.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7e660f9740ac44ad788eadfc393901cdb3d212a3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                             client.http_client.os_ironic_api_version)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # make sure the interface is conveyed to the client"},{"line_number":81,"context_line":"        if \u0027interface\u0027 in kwargs and kwargs[\u0027interface\u0027]:"},{"line_number":82,"context_line":"            self.assertEqual(kwargs[\u0027interface\u0027],"},{"line_number":83,"context_line":"                             client.http_client.interface)"},{"line_number":84,"context_line":"        if \u0027os_endpoint_type\u0027 in kwargs and kwargs[\u0027os_endpoint_type\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_f2be26ff","line":81,"range":{"start_line":81,"start_character":11,"end_line":81,"end_character":56},"updated":"2019-03-01 20:43:50.000000000","message":"Couldn\u0027t you do just kwargs.get(\u0027interface\u0027) instead of checking kwargs twice here?","commit_id":"08cdfb8d1d623f270c06c6a3c6e1d5febc7265e9"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"c815985a1ea23be7cb97c7305e3756a7259c60d0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                             client.http_client.os_ironic_api_version)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # make sure the interface is conveyed to the client"},{"line_number":81,"context_line":"        if \u0027interface\u0027 in kwargs and kwargs[\u0027interface\u0027]:"},{"line_number":82,"context_line":"            self.assertEqual(kwargs[\u0027interface\u0027],"},{"line_number":83,"context_line":"                             client.http_client.interface)"},{"line_number":84,"context_line":"        if \u0027os_endpoint_type\u0027 in kwargs and kwargs[\u0027os_endpoint_type\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_32d26ed3","line":81,"range":{"start_line":81,"start_character":11,"end_line":81,"end_character":56},"in_reply_to":"9fdfeff1_f2be26ff","updated":"2019-03-01 20:56:19.000000000","message":"That was due to my old fear of distinction between an empty string and None. I guess I can just do a kwargs.get() if we don\u0027t have that distinction anymore.","commit_id":"08cdfb8d1d623f270c06c6a3c6e1d5febc7265e9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e48eaa269d3c5778736431885446b4b0075b3bdd","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            \u0027os_auth_url\u0027: \u0027http://localhost:35357/v2.0\u0027,"},{"line_number":174,"context_line":"            \u0027os_auth_token\u0027: \u0027\u0027,"},{"line_number":175,"context_line":"            \u0027os_service_type\u0027: \u0027\u0027,"},{"line_number":176,"context_line":"            \u0027valid_interfaces\u0027: \u0027internal,public\u0027"},{"line_number":177,"context_line":"        }"},{"line_number":178,"context_line":"        self._test_get_client(warn_mock_call_count\u003d4, **kwargs)"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_11dff63a","line":176,"updated":"2019-03-05 11:50:42.000000000","message":"it\u0027s a Python list, not a string","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"7f406feda6090c4e5e326397c11d825c70e451ee","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            \u0027os_auth_url\u0027: \u0027http://localhost:35357/v2.0\u0027,"},{"line_number":174,"context_line":"            \u0027os_auth_token\u0027: \u0027\u0027,"},{"line_number":175,"context_line":"            \u0027os_service_type\u0027: \u0027\u0027,"},{"line_number":176,"context_line":"            \u0027valid_interfaces\u0027: \u0027internal,public\u0027"},{"line_number":177,"context_line":"        }"},{"line_number":178,"context_line":"        self._test_get_client(warn_mock_call_count\u003d4, **kwargs)"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_42188080","line":176,"in_reply_to":"9fdfeff1_11dff63a","updated":"2019-03-05 23:59:47.000000000","message":"Ain\u0027t Python programming great? :-) Kidding aside, if you follow the rabbit hole, it will eventually lead you to here\n\nhttps://github.com/openstack/keystoneauth/blob/master/keystoneauth1/access/service_catalog.py#L128\n\nThat code normalizes the \u0027interface\u0027 before operating on it, regardless if its a string or list. But I\u0027ll change it to a list to make it a formality.","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b17363177adbf473d93179b9c807f4da0eed97d3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                        [o.dest for o in session_loader_options]}"},{"line_number":58,"context_line":"        mock_ks_session.return_value.load_from_options.assert_called_once_with("},{"line_number":59,"context_line":"            auth\u003d\u0027auth\u0027, **session_opts)"},{"line_number":60,"context_line":"        interface \u003d kwargs.get(\u0027valid_interfaces\u0027, kwargs.get(\u0027interface\u0027))"},{"line_number":61,"context_line":"        if not {\u0027endpoint\u0027, \u0027ironic_url\u0027}.intersection(kwargs):"},{"line_number":62,"context_line":"            session.get_endpoint.assert_called_once_with("},{"line_number":63,"context_line":"                service_type\u003dkwargs.get(\u0027service_type\u0027) or \u0027baremetal\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_67ab3bd6","line":60,"updated":"2019-03-06 15:13:35.000000000","message":"I\u0027m not crazy about this kind of code in the tests, since it is the logic used in the code. Maybe the intent wasn\u0027t for this set of tests to test \u0027interface\u0027. Alternative is to pass in the expected interface value as a parameter.","commit_id":"6b0c471ce7c95eed1be0e071ae2f71000695116d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3ac3013679c7113ab3231d6bf66e2dc6e416a7eb","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                        [o.dest for o in session_loader_options]}"},{"line_number":58,"context_line":"        mock_ks_session.return_value.load_from_options.assert_called_once_with("},{"line_number":59,"context_line":"            auth\u003d\u0027auth\u0027, **session_opts)"},{"line_number":60,"context_line":"        interface \u003d kwargs.get(\u0027valid_interfaces\u0027, kwargs.get(\u0027interface\u0027))"},{"line_number":61,"context_line":"        if not {\u0027endpoint\u0027, \u0027ironic_url\u0027}.intersection(kwargs):"},{"line_number":62,"context_line":"            session.get_endpoint.assert_called_once_with("},{"line_number":63,"context_line":"                service_type\u003dkwargs.get(\u0027service_type\u0027) or \u0027baremetal\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_185176d9","line":60,"in_reply_to":"5fc1f717_67ab3bd6","updated":"2019-03-06 17:14:33.000000000","message":"Done","commit_id":"6b0c471ce7c95eed1be0e071ae2f71000695116d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b17363177adbf473d93179b9c807f4da0eed97d3","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        session \u003d mock.Mock()"},{"line_number":431,"context_line":"        kwargs \u003d {"},{"line_number":432,"context_line":"            \u0027session\u0027: session,"},{"line_number":433,"context_line":"        }"},{"line_number":434,"context_line":"        iroclient.get_client(\u00271\u0027, **kwargs)"},{"line_number":435,"context_line":"        mock_client.assert_called_once_with("},{"line_number":436,"context_line":"            \u00271\u0027, **{\u0027os_ironic_api_version\u0027: None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_e41889d4","line":433,"updated":"2019-03-06 15:13:35.000000000","message":"do we have tests where kwargs includes \u0027interface\u0027, \u0027valid_interfaces\u0027, and both \u0027interface\u0027 \u0026 \u0027valid_interfaces\u0027 ?","commit_id":"6b0c471ce7c95eed1be0e071ae2f71000695116d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3ac3013679c7113ab3231d6bf66e2dc6e416a7eb","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        session \u003d mock.Mock()"},{"line_number":431,"context_line":"        kwargs \u003d {"},{"line_number":432,"context_line":"            \u0027session\u0027: session,"},{"line_number":433,"context_line":"        }"},{"line_number":434,"context_line":"        iroclient.get_client(\u00271\u0027, **kwargs)"},{"line_number":435,"context_line":"        mock_client.assert_called_once_with("},{"line_number":436,"context_line":"            \u00271\u0027, **{\u0027os_ironic_api_version\u0027: None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_b8bdc269","line":433,"in_reply_to":"5fc1f717_e41889d4","updated":"2019-03-06 17:14:33.000000000","message":"Done in the followon that introduces valid_interfaces.","commit_id":"6b0c471ce7c95eed1be0e071ae2f71000695116d"}],"releasenotes/notes/convey-interface-argument-deb92e3feb0bf051.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a06e637846519ab09081cab302dd2cfd3f130f99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Re-enables endpoint filtering functionality by conveying the \u0027interface\u0027"},{"line_number":5,"context_line":"    argument when constructing the HTTP client. - see"},{"line_number":6,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_d64420bb","line":4,"updated":"2019-03-04 11:02:41.000000000","message":"s/conveying/adding support/ ? also we should probably mention support for valid_interfaces?","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"eddbf19ef3689a3f047581ed62afda77e753eaef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Re-enables endpoint filtering functionality by conveying the \u0027interface\u0027"},{"line_number":5,"context_line":"    argument when constructing the HTTP client. - see"},{"line_number":6,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_4be08127","line":4,"in_reply_to":"9fdfeff1_d64420bb","updated":"2019-03-04 16:45:37.000000000","message":"For the moment, ironicclient still using \u0027interface\u0027. But KSA still treat them the same. See\n\n* https://github.com/openstack/python-ironicclient/blob/master/ironicclient/common/http.py#L718\n* https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/loading/adapter.py#L230\n\nBut yeah, there\u0027s definitely opportunity for more factoring in ironicclient later as we probably can remove quite a bit of code in ironicclient/common/http.py. For this patch, I just want to narrow to scope to endpoint passing only.","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a06e637846519ab09081cab302dd2cfd3f130f99","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Re-enables endpoint filtering functionality by conveying the \u0027interface\u0027"},{"line_number":5,"context_line":"    argument when constructing the HTTP client. - see"},{"line_number":6,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_f64124a8","line":5,"updated":"2019-03-04 11:02:41.000000000","message":"nit: no dot before dash","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"eddbf19ef3689a3f047581ed62afda77e753eaef","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Re-enables endpoint filtering functionality by conveying the \u0027interface\u0027"},{"line_number":5,"context_line":"    argument when constructing the HTTP client. - see"},{"line_number":6,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_8f15164c","line":5,"in_reply_to":"9fdfeff1_f64124a8","updated":"2019-03-04 16:45:37.000000000","message":"Done","commit_id":"5e2a198b24336183be00063bc36594a1aafe5442"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"02b7cfdc00a6d409a557cf7a67ba8a0c06d720c2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Re-enables endpoint filtering functionality by adding support for the"},{"line_number":5,"context_line":"    \u0027interface\u0027 argument when constructing the HTTP client. See"},{"line_number":6,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5fc1f717_d6875ab6","line":6,"updated":"2019-03-05 20:13:09.000000000","message":"This is fixing a bug, right? Something like \u0027The ``interface`` argument was being ignored so that the HTTP client was always using the public endpoint for ironic. This fixes it so that the ``valid_interfaces`` or ``interface`` (deprecated) argument is taken into consideration. See story... for more information.","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"7f406feda6090c4e5e326397c11d825c70e451ee","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Re-enables endpoint filtering functionality by adding support for the"},{"line_number":5,"context_line":"    \u0027interface\u0027 argument when constructing the HTTP client. See"},{"line_number":6,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5fc1f717_f63a91cb","line":6,"in_reply_to":"5fc1f717_d6875ab6","updated":"2019-03-05 23:59:47.000000000","message":"Yes, this is for fixing a bug. Good suggestion. I\u0027ll update the notes.","commit_id":"e7ea74c1bde174c7f83876d288c87f57c6be237e"}],"releasenotes/notes/pass-interface-argument-deb92e3feb0bf051.yaml":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"7f6b82cb33ac8035275e8bb30776a1d79da4da2b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``interface`` argument was being ignored so that the HTTP client was"},{"line_number":5,"context_line":"    always using the public endpoint for Ironic. This fixes it so that the"},{"line_number":6,"context_line":"    ``valid_interfaces`` or ``interface`` (deprecated) argument is taken"},{"line_number":7,"context_line":"    into consideration. See"},{"line_number":8,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_a713630d","line":6,"updated":"2019-03-06 15:15:02.000000000","message":"I\u0027m still mulling over \u0027valid_interfaces\u0027. Wonder if we also need to add a features: section, since we never supported that before.","commit_id":"6b0c471ce7c95eed1be0e071ae2f71000695116d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3ac3013679c7113ab3231d6bf66e2dc6e416a7eb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``interface`` argument was being ignored so that the HTTP client was"},{"line_number":5,"context_line":"    always using the public endpoint for Ironic. This fixes it so that the"},{"line_number":6,"context_line":"    ``valid_interfaces`` or ``interface`` (deprecated) argument is taken"},{"line_number":7,"context_line":"    into consideration. See"},{"line_number":8,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_d8644ebc","line":6,"in_reply_to":"5fc1f717_a713630d","updated":"2019-03-06 17:14:33.000000000","message":"Done","commit_id":"6b0c471ce7c95eed1be0e071ae2f71000695116d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"0127cf7744fc26f4476eb184e50d489349eb96ab","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``interface`` argument was being ignored so that the HTTP client was"},{"line_number":5,"context_line":"    always using the public endpoint for Ironic. This fixes it so that the"},{"line_number":6,"context_line":"    ``interface`` (deprecated) argument is taken into consideration. See"},{"line_number":7,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5fc1f717_38555251","line":6,"updated":"2019-03-06 17:11:37.000000000","message":"nit. Wonder if it will confuse folks if we put \u0027(deprecated)\u0027","commit_id":"e37677350726a570ccc2bad946f28ae0e78a8039"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"15a06a5bd93b53fed944e615cc423d94ad1b74b5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``interface`` argument was being ignored so that the HTTP client was"},{"line_number":5,"context_line":"    always using the public endpoint for Ironic. This fixes it so that the"},{"line_number":6,"context_line":"    ``interface`` (deprecated) argument is taken into consideration. See"},{"line_number":7,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5fc1f717_786c3a08","line":6,"in_reply_to":"5fc1f717_38555251","updated":"2019-03-06 17:15:11.000000000","message":"++","commit_id":"e37677350726a570ccc2bad946f28ae0e78a8039"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"be231c7e285f037305e5ac2032aff1cda0878e64","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``interface`` argument was being ignored so that the HTTP client was"},{"line_number":5,"context_line":"    always using the public endpoint for Ironic. This fixes it so that the"},{"line_number":6,"context_line":"    ``interface`` (deprecated) argument is taken into consideration. See"},{"line_number":7,"context_line":"    `story 2005118 \u003chttps://storyboard.openstack.org/#!/story/2005118\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5fc1f717_580a9e26","line":6,"in_reply_to":"5fc1f717_786c3a08","updated":"2019-03-06 17:19:23.000000000","message":"Done.\n\nTBC, \u0027interface\u0027 is only deprecated in ksa config, not as a kwarg to the Adapter constructor. So it\u0027s appropriate to just delete \u0027(deprecated)\u0027 here. Hopefully the reno in the subsequent patch is clear in this regard.","commit_id":"e37677350726a570ccc2bad946f28ae0e78a8039"}]}
