)]}'
{"ironicclient/tests/functional/base.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"4d026447aa22c6dc456e0b3a7e153344dcfeefa9","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def _ironic_osc(self, action, flags\u003d\u0027\u0027, params\u003d\u0027\u0027):"},{"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":"        print(\"API Version is {}\".format(id_api_version))"},{"line_number":156,"context_line":"        print(\"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\")"},{"line_number":157,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0} --debug\u0027.format(id_api_version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_b155a41e","line":154,"updated":"2017-01-13 10:22:05.000000000","message":"Ah, so it\u0027s this line that is wrong - _get_config returns usual dictionary, not ConfigParser. That\u0027s why os_identity_api_version is output as string. And it works because for some reason --os-identity-api-version gets ignored, only domain values on L160 are needed in fact. So this can be removed both from here and config.","commit_id":"a503c881d277ce3658b5f6f4bbf7dcfa6ee84315"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"a29f18424cb883eb5cd3d5ea57150659f5a1dfce","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def _ironic_osc(self, action, flags\u003d\u0027\u0027, params\u003d\u0027\u0027):"},{"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":"        print(\"API Version is {}\".format(id_api_version))"},{"line_number":156,"context_line":"        print(\"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\")"},{"line_number":157,"context_line":"        flags +\u003d \u0027 --os-identity-api-version {0} --debug\u0027.format(id_api_version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_18fa1143","line":154,"in_reply_to":"7a3c09a3_b155a41e","updated":"2017-01-13 14:22:30.000000000","message":"Thanks, Vlad.","commit_id":"a503c881d277ce3658b5f6f4bbf7dcfa6ee84315"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"aae585e3442e8119d5458f154ce151711d84dd80","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":""},{"line_number":157,"context_line":"        for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":158,"context_line":"            domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"},{"line_number":159,"context_line":"            if hasattr(self, domain_attr):"},{"line_number":160,"context_line":"                flags +\u003d \u0027 --os-%(ks_obj)s-domain-id %(value)s\u0027 % {"},{"line_number":161,"context_line":"                    \u0027ks_obj\u0027: keystone_object,"},{"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)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_f2b6393c","side":"PARENT","line":162,"range":{"start_line":157,"start_character":8,"end_line":162,"end_character":55},"updated":"2017-01-13 16:08:59.000000000","message":"No, please don\u0027t remove this! It\u0027s needed for v3. tempest\u0027s base client does not seem to support it yet. os_identity_api_version OTOH can be removed safely, as it can be guessed automatically I believe.","commit_id":"a8c2cb3f412482bd77bb6368992029658c8a5d48"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"9832ee71edfc4441866a2421e6218e8f4e55ea1f","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":""},{"line_number":157,"context_line":"        for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":158,"context_line":"            domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"},{"line_number":159,"context_line":"            if hasattr(self, domain_attr):"},{"line_number":160,"context_line":"                flags +\u003d \u0027 --os-%(ks_obj)s-domain-id %(value)s\u0027 % {"},{"line_number":161,"context_line":"                    \u0027ks_obj\u0027: keystone_object,"},{"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)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_ad3a92cb","side":"PARENT","line":162,"range":{"start_line":157,"start_character":8,"end_line":162,"end_character":55},"in_reply_to":"7a3c09a3_f24639be","updated":"2017-01-13 16:23:11.000000000","message":"Seems like we do, see the logs from the failing now functional job. As I said, seems like tempest\u0027s openstack client does not support v3 yet:\n\nhttp://git.openstack.org/cgit/openstack/tempest/tree/tempest/lib/cli/base.py#n342 and http://git.openstack.org/cgit/openstack/tempest/tree/tempest/lib/cli/base.py#n363","commit_id":"a8c2cb3f412482bd77bb6368992029658c8a5d48"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"1589a19d2702c2e2afcb90fd9c0df4779de60262","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":""},{"line_number":157,"context_line":"        for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":158,"context_line":"            domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"},{"line_number":159,"context_line":"            if hasattr(self, domain_attr):"},{"line_number":160,"context_line":"                flags +\u003d \u0027 --os-%(ks_obj)s-domain-id %(value)s\u0027 % {"},{"line_number":161,"context_line":"                    \u0027ks_obj\u0027: keystone_object,"},{"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)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_f24639be","side":"PARENT","line":162,"range":{"start_line":157,"start_character":8,"end_line":162,"end_character":55},"in_reply_to":"7a3c09a3_f2b6393c","updated":"2017-01-13 16:19:28.000000000","message":"Do we need to keep this function? It was made in this patch https://review.openstack.org/#/c/408205/ as an urgent hotfix for broken functional tests, and it seems that it is not necessary.","commit_id":"a8c2cb3f412482bd77bb6368992029658c8a5d48"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b41da5146b055d0c944f759d65e0d9f793034750","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":""},{"line_number":157,"context_line":"        for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":158,"context_line":"            domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"},{"line_number":159,"context_line":"            if hasattr(self, domain_attr):"},{"line_number":160,"context_line":"                flags +\u003d \u0027 --os-%(ks_obj)s-domain-id %(value)s\u0027 % {"},{"line_number":161,"context_line":"                    \u0027ks_obj\u0027: keystone_object,"},{"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)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_92c41593","side":"PARENT","line":162,"range":{"start_line":157,"start_character":8,"end_line":162,"end_character":55},"in_reply_to":"7a3c09a3_f2b6393c","updated":"2017-01-13 16:09:50.000000000","message":"Guessed from os_auth_url value I mean.","commit_id":"a8c2cb3f412482bd77bb6368992029658c8a5d48"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"d28981be0e3baf65c0f55307e3bc73cd0581872f","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":""},{"line_number":157,"context_line":"        for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":158,"context_line":"            domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"},{"line_number":159,"context_line":"            if hasattr(self, domain_attr):"},{"line_number":160,"context_line":"                flags +\u003d \u0027 --os-%(ks_obj)s-domain-id %(value)s\u0027 % {"},{"line_number":161,"context_line":"                    \u0027ks_obj\u0027: keystone_object,"},{"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)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_c17da21d","side":"PARENT","line":162,"range":{"start_line":157,"start_character":0,"end_line":162,"end_character":55},"updated":"2017-01-16 15:29:20.000000000","message":"tempest doesn\u0027t support keystone v3, tempest client.openstack will work only for default devstack domains","commit_id":"a8c2cb3f412482bd77bb6368992029658c8a5d48"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"d28981be0e3baf65c0f55307e3bc73cd0581872f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                              \u0027os_password\u0027, \u0027os_tenant_name\u0027]"},{"line_number":83,"context_line":"            keystone_v3_conf_settings +\u003d [\u0027os_user_domain_id\u0027,"},{"line_number":84,"context_line":"                                          \u0027os_project_domain_id\u0027,"},{"line_number":85,"context_line":"                                          \u0027os_identity_api_version\u0027]"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            conf_settings +\u003d [\u0027os_auth_token\u0027, \u0027ironic_url\u0027]"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_a1afb692","line":85,"range":{"start_line":85,"start_character":43,"end_line":85,"end_character":67},"updated":"2017-01-16 15:29:20.000000000","message":"you don\u0027t need this var as you deleted it from config, also looks like it should work w/o it at all.","commit_id":"3508d074427b051ef7dce3f45a35da2f4815468c"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"7692b73bb09aa08c58e5bd9963a3d4ed14c0cb52","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        :param params: any optional positional args to use"},{"line_number":138,"context_line":"        :type params: string"},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        if cmd \u003d\u003d \u0027openstack\u0027:"},{"line_number":141,"context_line":"            config \u003d self._get_config()"},{"line_number":142,"context_line":"            id_api_version \u003d config[\u0027os_identity_api_version\u0027]"},{"line_number":143,"context_line":"            flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_040bc3d6","line":140,"range":{"start_line":140,"start_character":19,"end_line":140,"end_character":28},"updated":"2017-01-18 13:06:26.000000000","message":"nit: you could rename method to somethink like \"cmd\", and make `ironic` and `openstack baremetal`  methods which call it","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"c5290c33edc0bec9c70fdf0ced3a4f49f609a477","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if cmd \u003d\u003d \u0027openstack\u0027:"},{"line_number":141,"context_line":"            config \u003d self._get_config()"},{"line_number":142,"context_line":"            id_api_version \u003d config[\u0027os_identity_api_version\u0027]"},{"line_number":143,"context_line":"            flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_c8bc69de","line":143,"updated":"2017-01-18 14:52:45.000000000","message":"I still don\u0027t get why you need to set this. Just in case domains are not present in config so that openstack client would try to set its defaults?","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"11b8ffc5540b0d187b808355a82914586b148c56","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if cmd \u003d\u003d \u0027openstack\u0027:"},{"line_number":141,"context_line":"            config \u003d self._get_config()"},{"line_number":142,"context_line":"            id_api_version \u003d config[\u0027os_identity_api_version\u0027]"},{"line_number":143,"context_line":"            flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_62ad4ce8","line":143,"in_reply_to":"7a3c09a3_6ea1bd93","updated":"2017-01-18 15:59:27.000000000","message":"OK, thanks, I see that now too. That\u0027s complete fun, as all the parameters are passed correctly to \u0027openstack\u0027 command. Will look at openstack client. This should be fine then for now.","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"fed36bd41addbf7f029b16c8666c1eec931a4dc8","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if cmd \u003d\u003d \u0027openstack\u0027:"},{"line_number":141,"context_line":"            config \u003d self._get_config()"},{"line_number":142,"context_line":"            id_api_version \u003d config[\u0027os_identity_api_version\u0027]"},{"line_number":143,"context_line":"            flags +\u003d \u0027 --os-identity-api-version {0}\u0027.format(id_api_version)"},{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_6ea1bd93","line":143,"in_reply_to":"7a3c09a3_c8bc69de","updated":"2017-01-18 15:14:26.000000000","message":"Vlad, without setting this flag OSC plugin tests fail with messages:\n    stderr:\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    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    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) (Request-ID: req-48fe75b7-2c48-423a-942f-9fcc551d8e9e)\n\nMy previous fix sets this flag with wrong value, and it enables tests too pass (very strange!). Not i try to fix it to pass version correctly.","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"c5290c33edc0bec9c70fdf0ced3a4f49f609a477","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":148,"context_line":"            return self._cmd_no_auth(cmd, action, flags, params)"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_86e5f309","line":147,"range":{"start_line":147,"start_character":26,"end_line":147,"end_character":39},"updated":"2017-01-18 14:52:45.000000000","message":"unfortunately, this is incorrect. In case of openstack client, you can be using os_auth_token in case of using token authorization method. This condition works properly only in case of ironic command - https://github.com/openstack/python-ironicclient/blob/master/ironicclient/shell.py#L330-L364 - here we ensure that if token+endpoint is passed to ironic command as args, we do noauth.\n\nThat said, I doubt that we need to go in such detail for functional tests.","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"fed36bd41addbf7f029b16c8666c1eec931a4dc8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":148,"context_line":"            return self._cmd_no_auth(cmd, action, flags, params)"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_0e34b947","line":147,"range":{"start_line":147,"start_character":26,"end_line":147,"end_character":39},"in_reply_to":"7a3c09a3_86e5f309","updated":"2017-01-18 15:14:26.000000000","message":"Thanks, i\u0027ll put it under condition for \u0027ironic\u0027 cmd.","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"090d2a854c1ba1f2dc7b1508d4406d7ec40b04d3","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":153,"context_line":"            return self._cmd_no_auth(cmd, action, flags, params)"},{"line_number":154,"context_line":"        else:"},{"line_number":155,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":156,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f1a1f67_acfc893e","line":153,"updated":"2017-07-21 07:42:10.000000000","message":"nit: merge_stderr is not passed here (it was the case before too)","commit_id":"08e218647c9f39ce0d3e65885a236911f087ef2d"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"26024d687b73c170b0214d1d1d24559ad3a364f2","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":153,"context_line":"            return self._cmd_no_auth(cmd, action, flags, params)"},{"line_number":154,"context_line":"        else:"},{"line_number":155,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":156,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":9,"id":"df3967d1_8aae36e5","line":153,"in_reply_to":"1f1a1f67_acfc893e","updated":"2017-07-31 14:19:07.000000000","message":"Hello, Dmirty. \nI see that _cmd_no_auth has no merge_stderr argument. Should it be passed as a param or as a flag?","commit_id":"08e218647c9f39ce0d3e65885a236911f087ef2d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"841f11a901020e6a052116f816623494d2c8a82a","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            flags +\u003d \u0027 --os-endpoint-type publicURL\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if hasattr(self, \u0027os_auth_token\u0027):"},{"line_number":153,"context_line":"            return self._cmd_no_auth(cmd, action, flags, params)"},{"line_number":154,"context_line":"        else:"},{"line_number":155,"context_line":"            for keystone_object in \u0027user\u0027, \u0027project\u0027:"},{"line_number":156,"context_line":"                domain_attr \u003d \u0027os_%s_domain_id\u0027 % keystone_object"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff346bd7_ee2a78e5","line":153,"in_reply_to":"1f1a1f67_acfc893e","updated":"2017-07-24 13:21:35.000000000","message":"Seems like a quick follow-up fix to me.","commit_id":"08e218647c9f39ce0d3e65885a236911f087ef2d"}],"tools/run_functional.sh":[{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"7692b73bb09aa08c58e5bd9963a3d4ed14c0cb52","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":6,"id":"7a3c09a3_44b6abf9","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":23},"updated":"2017-01-18 13:06:26.000000000","message":"nit: we could add note about osc specific option","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"7692b73bb09aa08c58e5bd9963a3d4ed14c0cb52","unresolved":false,"context_lines":[{"line_number":23,"context_line":"os_user_domain_id\u003d$OS_USER_DOMAIN_ID"},{"line_number":24,"context_line":"os_project_domain_id\u003d$OS_PROJECT_DOMAIN_ID"},{"line_number":25,"context_line":"os_service_type\u003dbaremetal"},{"line_number":26,"context_line":"os_endpoint_type\u003dpublic"},{"line_number":27,"context_line":"END"},{"line_number":28,"context_line":"fi"},{"line_number":29,"context_line":"tox -e  functional"}],"source_content_type":"text/x-sh","patch_set":6,"id":"7a3c09a3_64d1e722","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":16},"updated":"2017-01-18 13:06:26.000000000","message":"ditto","commit_id":"99825b33e645ccb606fe7b8f4f4114cc132b1426"}]}
