)]}'
{"ironicclient/tests/functional/base.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"9d175b914dc0610f2a3ac8072e1366c8a74d4ad7","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        \"\"\"Execute baremetal commands via OpenStack Client.\"\"\""},{"line_number":153,"context_line":"        config \u003d self._get_config()"},{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_b7a4294b","line":155,"updated":"2016-12-12 14:52:13.000000000","message":"Do we really have to specify it? Can openstack client (or keystoneauth underneath it) infer it automatically?","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"da30e2c4973043002e59aa30aa72ec1b34504d64","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        \"\"\"Execute baremetal commands via OpenStack Client.\"\"\""},{"line_number":153,"context_line":"        config \u003d self._get_config()"},{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_5381e48e","line":155,"in_reply_to":"3a71b18c_b7a4294b","updated":"2016-12-12 15:17:21.000000000","message":"Without setting it we get error: Expecting to find domain in project - the server could not comply with the request since it is either malformed or otherwise incorrect. The client is assumed to be in error. (HTTP 400)\nAnd trying to set it directly in OSC raises quite strange things: \n Ignoring domain related config project_domain_id because identity API version is 2.0\n    Ignoring domain related config user_domain_id because identity API version is 2.0\n    Ignoring domain related config project_domain_id because identity API version is 2.0\n    Ignoring domain related config user_domain_id because identity API version is 2.0\n    Ignoring domain related config project_domain_id because identity API version is 2.0\n    Ignoring domain related config user_domain_id because identity API version is 2.0\n\nSomehow OSC continues to use 2.0 identity.","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"9d175b914dc0610f2a3ac8072e1366c8a74d4ad7","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":160,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_57d2f500","line":157,"updated":"2016-12-12 14:52:13.000000000","message":"this won\u0027t work for openstack client. the example command for this case is:\n\n openstack --os-auth-type token_endpoint --os-url http://192.168.122.22:6385/v1 --os-token abc baremetal node list","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"981e2375ade5abdb0a7d3c98caa8dd18bfef7ea1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":160,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_9c8e2926","line":157,"in_reply_to":"1a6eadb0_7cbb0d0f","updated":"2016-12-12 15:54:44.000000000","message":"Yup, but in case of CLI, it\u0027s not really auth plugin but auth_type, and the token_endpoint is the thing we need, at least when I tried that last time this was the only one accepting random things as token.","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"abd8227694b8ab9ff01dd7cc34e29b682db80961","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":160,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_f9af2f92","line":157,"in_reply_to":"1a6eadb0_93c61c15","updated":"2016-12-12 15:41:36.000000000","message":"Well, I\u0027d prefer to have some parity here - if we can run ironic in standalone for \u0027ironic ...\u0027 functional tests, would be good to be able to run \u0027openstack baremetal ...\u0027 in standalone too. I\u0027m kind of OK with it for now to unblock the gate, considering it was not here before, just the thing to keep in mind.","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b26765f132c55e2acf07d14512ccf18195745b8b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":160,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_6bf6dcd8","line":157,"in_reply_to":"1a6eadb0_9c8e2926","updated":"2016-12-12 19:31:46.000000000","message":"Oh yeah, I think plugin got phased out for auth_type, which causes the plugin to be loaded that attempts to do validation *bangs head against desk*","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"625d753ab277d1c161f98a1aaa362187ca43171e","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":160,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_7cbb0d0f","line":157,"in_reply_to":"1a6eadb0_f9af2f92","updated":"2016-12-12 15:51:25.000000000","message":"FWIW, it should require explicitly setting the auth plugin, above and beyond setting an empty auth token.  The ironic API does not care, but the keystoneauth1 library does care.","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"da30e2c4973043002e59aa30aa72ec1b34504d64","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        id_api_version \u003d config.get(\u0027functional\u0027, \u0027os_identity_api_version\u0027)"},{"line_number":155,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":156,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":157,"context_line":"            return self._cmd_no_auth(\u0027openstack\u0027, action, flags, params)"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":160,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_93c61c15","line":157,"in_reply_to":"3a71b18c_57d2f500","updated":"2016-12-12 15:17:21.000000000","message":"Thanks, it looks that actually we do not need this part here.","commit_id":"b0e7412203c878623a0fdc5cc3fb8aaaebfba50b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"f18869c5007f41817f9027fbd2945bf9d00a89c9","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                    \u0027value\u0027: getattr(self, domain_attr)"},{"line_number":163,"context_line":"                }"},{"line_number":164,"context_line":"        return self.client.cmd_with_auth("},{"line_number":165,"context_line":"            \u0027openstack\u0027, action, flags, params)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def ironic(self, action, flags\u003d\u0027\u0027, params\u003d\u0027\u0027, parse\u003dTrue):"},{"line_number":168,"context_line":"        \"\"\"Return parsed list of dicts with basic item info."}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_2b7224e6","line":165,"updated":"2016-12-12 19:50:26.000000000","message":"nit - seems like you could use self.openstack here too. that said, let\u0027s unblock the gate first :)","commit_id":"c100a552f5480befd1ecd0dd7c448f6eefac78a5"}],"tools/run_functional.sh":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f988ba421471aa059345d90bcd5e0b75e243923f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"[functional]"},{"line_number":17,"context_line":"api_version \u003d 1"},{"line_number":18,"context_line":"os_auth_url\u003d$OS_AUTH_URL"},{"line_number":19,"context_line":"os_identity_api_version \u003d $OS_IDENTITY_API_VERSION"},{"line_number":20,"context_line":"os_username\u003d$OS_USERNAME"},{"line_number":21,"context_line":"os_password\u003d$OS_PASSWORD"},{"line_number":22,"context_line":"os_tenant_name\u003d$OS_TENANT_NAME"}],"source_content_type":"text/x-sh","patch_set":5,"id":"1a6eadb0_1c3a19ce","line":19,"range":{"start_line":19,"start_character":23,"end_line":19,"end_character":26},"updated":"2016-12-12 15:53:04.000000000","message":"nit: only one other line has a space between the setting and the variable.","commit_id":"c100a552f5480befd1ecd0dd7c448f6eefac78a5"}]}
