)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"fcf14cce494ba8c98bdf83781c10f77f76ba3789","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change allows user domains and tenant/project domains to"},{"line_number":10,"context_line":"be specified through CLI.  This is necessary because keystone"},{"line_number":11,"context_line":"v2 API is deprecatedas of Icehouse."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I50187a12b73777118ee77590202746b272ecc030"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"baa201ad_f5f0c768","line":11,"updated":"2014-10-17 01:27:26.000000000","message":"small nit: s/deprecatedas/deprecated as/","commit_id":"e3d356476be376ebd3dfb3e84f379e113e5efac7"}],"ironicclient/common/http.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return None"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"class SessionClient(HTTPClient):"},{"line_number":277,"context_line":"    \"\"\"HTTP client based on Keystone client session.\"\"\""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # NOTE(dhu):  Will eventually move to a common session client."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_40767d3f","line":276,"updated":"2014-09-11 00:24:47.000000000","message":"don\u0027t inherit old code. We want to distance ourself from this.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        return None"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"class SessionClient(HTTPClient):"},{"line_number":277,"context_line":"    \"\"\"HTTP client based on Keystone client session.\"\"\""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # NOTE(dhu):  Will eventually move to a common session client."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_1aab6f76","line":276,"in_reply_to":"fa98f980_40767d3f","updated":"2014-09-18 05:03:53.000000000","message":"Done","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    \"\"\"HTTP client based on Keystone client session.\"\"\""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # NOTE(dhu):  Will eventually move to a common session client."},{"line_number":280,"context_line":"    # https://bugs.launchpad.net/python-keystoneclient/+bug/1332337"},{"line_number":281,"context_line":"    def __init__(self, session, auth, endpoint, **kwargs):"},{"line_number":282,"context_line":"        self.session \u003d session"},{"line_number":283,"context_line":"        self.auth \u003d auth"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_6071c143","line":280,"updated":"2014-09-11 00:24:47.000000000","message":"this has been released. It\u0027s  keystoneclient.adapter. You probably want the LegacyJsonAdapter version of it for json.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    \"\"\"HTTP client based on Keystone client session.\"\"\""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # NOTE(dhu):  Will eventually move to a common session client."},{"line_number":280,"context_line":"    # https://bugs.launchpad.net/python-keystoneclient/+bug/1332337"},{"line_number":281,"context_line":"    def __init__(self, session, auth, endpoint, **kwargs):"},{"line_number":282,"context_line":"        self.session \u003d session"},{"line_number":283,"context_line":"        self.auth \u003d auth"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_f9e056ce","line":280,"in_reply_to":"fa98f980_6071c143","updated":"2014-09-18 05:03:53.000000000","message":"Done","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # NOTE(dhu):  Will eventually move to a common session client."},{"line_number":280,"context_line":"    # https://bugs.launchpad.net/python-keystoneclient/+bug/1332337"},{"line_number":281,"context_line":"    def __init__(self, session, auth, endpoint, **kwargs):"},{"line_number":282,"context_line":"        self.session \u003d session"},{"line_number":283,"context_line":"        self.auth \u003d auth"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_c0998d6f","line":281,"updated":"2014-09-11 00:24:47.000000000","message":"only session should/can be a required parameter.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # NOTE(dhu):  Will eventually move to a common session client."},{"line_number":280,"context_line":"    # https://bugs.launchpad.net/python-keystoneclient/+bug/1332337"},{"line_number":281,"context_line":"    def __init__(self, session, auth, endpoint, **kwargs):"},{"line_number":282,"context_line":"        self.session \u003d session"},{"line_number":283,"context_line":"        self.auth \u003d auth"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_19e6fae8","line":281,"in_reply_to":"fa98f980_c0998d6f","updated":"2014-09-18 05:03:53.000000000","message":"Done","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        # see if we can get the auth_url from auth plugin if one is not"},{"line_number":295,"context_line":"        # provided from kwargs"},{"line_number":296,"context_line":"        if not self.auth_url and hasattr(self.auth, \u0027auth_url\u0027):"},{"line_number":297,"context_line":"            self.auth_url \u003d self.auth.auth_url"},{"line_number":298,"context_line":"        if endpoint:"},{"line_number":299,"context_line":"            self.endpoint \u003d endpoint"},{"line_number":300,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_e038513f","line":297,"updated":"2014-09-11 00:24:47.000000000","message":"why do we need to know the auth_url?","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        # see if we can get the auth_url from auth plugin if one is not"},{"line_number":295,"context_line":"        # provided from kwargs"},{"line_number":296,"context_line":"        if not self.auth_url and hasattr(self.auth, \u0027auth_url\u0027):"},{"line_number":297,"context_line":"            self.auth_url \u003d self.auth.auth_url"},{"line_number":298,"context_line":"        if endpoint:"},{"line_number":299,"context_line":"            self.endpoint \u003d endpoint"},{"line_number":300,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_79cc6662","line":297,"in_reply_to":"fa98f980_e038513f","updated":"2014-09-18 05:03:53.000000000","message":"You are right.  It is not needed.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            self.endpoint \u003d self.auth.get_endpoint(self.session,"},{"line_number":302,"context_line":"                                          service_type\u003dself.service_type,"},{"line_number":303,"context_line":"                                          region_name\u003dself.region_name,"},{"line_number":304,"context_line":"                                          interface\u003dself.interface)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def _http_request(self, url, method, **kwargs):"},{"line_number":307,"context_line":"        kwargs.setdefault(\u0027user_agent\u0027, USER_AGENT)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_802b05ea","line":304,"updated":"2014-09-11 00:24:47.000000000","message":"does endpoint do anything? can we just let the session manage endpoint handling?","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        if self.auth_url:"},{"line_number":316,"context_line":"            kwargs[\u0027headers\u0027].setdefault(\u0027X-Auth-Url\u0027, self.auth_url)"},{"line_number":317,"context_line":"        if self.region_name:"},{"line_number":318,"context_line":"            kwargs[\u0027headers\u0027].setdefault(\u0027X-Region-Name\u0027, self.region_name)"},{"line_number":319,"context_line":"        if self.include_pass and \u0027X-Auth-Key\u0027 not in kwargs[\u0027headers\u0027]:"},{"line_number":320,"context_line":"            kwargs[\u0027headers\u0027].update(self.credentials_headers())"},{"line_number":321,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_80b6a5da","line":318,"updated":"2014-09-11 00:24:47.000000000","message":"why introduce these? they don\u0027t exist in the original.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        if self.auth_url:"},{"line_number":316,"context_line":"            kwargs[\u0027headers\u0027].setdefault(\u0027X-Auth-Url\u0027, self.auth_url)"},{"line_number":317,"context_line":"        if self.region_name:"},{"line_number":318,"context_line":"            kwargs[\u0027headers\u0027].setdefault(\u0027X-Region-Name\u0027, self.region_name)"},{"line_number":319,"context_line":"        if self.include_pass and \u0027X-Auth-Key\u0027 not in kwargs[\u0027headers\u0027]:"},{"line_number":320,"context_line":"            kwargs[\u0027headers\u0027].update(self.credentials_headers())"},{"line_number":321,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_bcb4fc35","line":318,"in_reply_to":"fa98f980_80b6a5da","updated":"2014-09-18 05:03:53.000000000","message":"Gone in the next patch.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        if self.region_name:"},{"line_number":318,"context_line":"            kwargs[\u0027headers\u0027].setdefault(\u0027X-Region-Name\u0027, self.region_name)"},{"line_number":319,"context_line":"        if self.include_pass and \u0027X-Auth-Key\u0027 not in kwargs[\u0027headers\u0027]:"},{"line_number":320,"context_line":"            kwargs[\u0027headers\u0027].update(self.credentials_headers())"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        resp \u003d self.session.request(url, method,"},{"line_number":323,"context_line":"                                    raise_exc\u003dFalse, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_20c5f93c","line":320,"updated":"2014-09-11 00:24:47.000000000","message":"i don\u0027t think this function exists.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        if self.region_name:"},{"line_number":318,"context_line":"            kwargs[\u0027headers\u0027].setdefault(\u0027X-Region-Name\u0027, self.region_name)"},{"line_number":319,"context_line":"        if self.include_pass and \u0027X-Auth-Key\u0027 not in kwargs[\u0027headers\u0027]:"},{"line_number":320,"context_line":"            kwargs[\u0027headers\u0027].update(self.credentials_headers())"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        resp \u003d self.session.request(url, method,"},{"line_number":323,"context_line":"                                    raise_exc\u003dFalse, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_dc80e04b","line":320,"in_reply_to":"fa98f980_20c5f93c","updated":"2014-09-18 05:03:53.000000000","message":"Removed","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        if 400 \u003c\u003d resp.status_code \u003c 600:"},{"line_number":326,"context_line":"            raise exc.from_response(resp)"},{"line_number":327,"context_line":"        elif resp.status_code in (301, 302, 305):"},{"line_number":328,"context_line":"            # Redirected. Reissue the request to the new location."},{"line_number":329,"context_line":"            location \u003d resp.headers.get(\u0027location\u0027)"},{"line_number":330,"context_line":"            resp \u003d self._http_request(location, method, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_c0e7cde2","line":327,"updated":"2014-09-11 00:24:47.000000000","message":"redirects are handled by the session.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        if 400 \u003c\u003d resp.status_code \u003c 600:"},{"line_number":326,"context_line":"            raise exc.from_response(resp)"},{"line_number":327,"context_line":"        elif resp.status_code in (301, 302, 305):"},{"line_number":328,"context_line":"            # Redirected. Reissue the request to the new location."},{"line_number":329,"context_line":"            location \u003d resp.headers.get(\u0027location\u0027)"},{"line_number":330,"context_line":"            resp \u003d self._http_request(location, method, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_7cbff4fc","line":327,"in_reply_to":"fa98f980_c0e7cde2","updated":"2014-09-18 05:03:53.000000000","message":"Does it mean there is no need to check for 301, 302 and 305?","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            # Redirected. Reissue the request to the new location."},{"line_number":329,"context_line":"            location \u003d resp.headers.get(\u0027location\u0027)"},{"line_number":330,"context_line":"            resp \u003d self._http_request(location, method, **kwargs)"},{"line_number":331,"context_line":"        elif resp.status_code \u003d\u003d 300:"},{"line_number":332,"context_line":"            raise exc.from_response(resp, method\u003dmethod, url\u003durl)"},{"line_number":333,"context_line":"        return resp"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_e00f7186","line":331,"updated":"2014-09-11 00:24:47.000000000","message":"300 is an exception?","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"44c180cd1852a9ec12a179599bdc719295891e24","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            # Redirected. Reissue the request to the new location."},{"line_number":329,"context_line":"            location \u003d resp.headers.get(\u0027location\u0027)"},{"line_number":330,"context_line":"            resp \u003d self._http_request(location, method, **kwargs)"},{"line_number":331,"context_line":"        elif resp.status_code \u003d\u003d 300:"},{"line_number":332,"context_line":"            raise exc.from_response(resp, method\u003dmethod, url\u003durl)"},{"line_number":333,"context_line":"        return resp"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_3c13ac0e","line":331,"in_reply_to":"fa98f980_e00f7186","updated":"2014-09-18 05:03:53.000000000","message":"The original code is treating 300 as a special case.  Heatclient is also treating 300 as an exception.  Does session handle 300?","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"}],"ironicclient/shell.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                            help\u003d\u0027Defaults to env[OS_USER_DOMAIN_ID].\u0027)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        parser.add_argument(\u0027--os_user_domain_id\u0027,"},{"line_number":57,"context_line":"                            help\u003dargparse.SUPPRESS)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        parser.add_argument(\u0027--os-user-domain-name\u0027,"},{"line_number":60,"context_line":"                            default\u003dcliutils.env(\u0027OS_USER_DOMAIN_NAME\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_8004e57e","line":57,"updated":"2014-09-11 00:24:47.000000000","message":"don\u0027t add new deprecated arguments.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":374,"context_line":"                auth \u003d self._get_keystone_v3_auth(v3_auth_url, **kwargs)"},{"line_number":375,"context_line":"            else:"},{"line_number":376,"context_line":"                auth \u003d self._get_keystone_v2_auth(v2_auth_url, **kwargs)"},{"line_number":377,"context_line":"        elif v3_auth_url:"},{"line_number":378,"context_line":"            # support only v3"},{"line_number":379,"context_line":"            auth \u003d self._get_keystone_v3_auth(v3_auth_url, **kwargs)"},{"line_number":380,"context_line":"        elif v2_auth_url:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_00f8f57a","line":377,"updated":"2014-09-11 00:24:47.000000000","message":"version independant plugins will be available in the next release","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"fcf14cce494ba8c98bdf83781c10f77f76ba3789","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                            default\u003dFalse, action\u003d\"store_true\","},{"line_number":113,"context_line":"                            help\u003d\"Print more verbose output\")"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        # for backward compatibility only"},{"line_number":116,"context_line":"        parser.add_argument(\u0027--cert-file\u0027,"},{"line_number":117,"context_line":"                            dest\u003d\u0027os_cert\u0027,"},{"line_number":118,"context_line":"                            help\u003d\u0027DEPRECATED! Use --os-cert.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_95adbb33","line":115,"updated":"2014-10-17 01:27:26.000000000","message":"Should this be marked as a FIXME with a future removal date?  i.e. when should backward compatibility be removed?  A specific release (i.e. \u0027L\u0027) or when v2 auth is no longer required?","commit_id":"e3d356476be376ebd3dfb3e84f379e113e5efac7"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"fcf14cce494ba8c98bdf83781c10f77f76ba3789","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                            dest\u003d\u0027os_cert\u0027,"},{"line_number":118,"context_line":"                            help\u003d\u0027DEPRECATED! Use --os-cert.\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        # for backward compatibility only"},{"line_number":121,"context_line":"        parser.add_argument(\u0027--key-file\u0027,"},{"line_number":122,"context_line":"                            dest\u003d\u0027os_key\u0027,"},{"line_number":123,"context_line":"                            help\u003d\u0027DEPRECATED! Use --os-key.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_f565271e","line":120,"updated":"2014-10-17 01:27:26.000000000","message":"Should this be marked as a FIXME with a future removal date?  i.e. when should backward compatibility be removed?  A specific release (i.e. \u0027L\u0027) or when v2 auth is no longer required?","commit_id":"e3d356476be376ebd3dfb3e84f379e113e5efac7"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"fcf14cce494ba8c98bdf83781c10f77f76ba3789","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                            dest\u003d\u0027os_key\u0027,"},{"line_number":123,"context_line":"                            help\u003d\u0027DEPRECATED! Use --os-key.\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # for backward compatibility only"},{"line_number":126,"context_line":"        parser.add_argument(\u0027--ca-file\u0027,"},{"line_number":127,"context_line":"                            dest\u003d\u0027os_cacert\u0027,"},{"line_number":128,"context_line":"                            help\u003d\u0027DEPRECATED! Use --os-cacert.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_1569cbf8","line":125,"updated":"2014-10-17 01:27:26.000000000","message":"Should this be marked as a FIXME with a future removal date?  i.e. when should backward compatibility be removed?  A specific release (i.e. \u0027L\u0027) or when v2 auth is no longer required?","commit_id":"e3d356476be376ebd3dfb3e84f379e113e5efac7"}],"ironicclient/tests/keystone_client_fixtures.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":46,"context_line":"              \u0027links\u0027: [{\u0027href\u0027: V3_URL, \u0027rel\u0027: \u0027self\u0027}],"},{"line_number":47,"context_line":"              \u0027media-types\u0027: V3_MEDIA_TYPES,"},{"line_number":48,"context_line":"              \u0027status\u0027: \u0027stable\u0027,"},{"line_number":49,"context_line":"              \u0027updated\u0027: UPDATED}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"TOKENID \u003d uuid.uuid4().hex"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_807945fe","line":49,"updated":"2014-09-11 00:24:47.000000000","message":"this can all be replaced with fixtures from keystoneclient.fixture","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"}],"ironicclient/tests/test_shell.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d1e1a5694f2337bade2bc58cfd3a827dce5a636b","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        ]"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        for r in required:"},{"line_number":252,"context_line":"            self.assertRegexpMatches(event_list_text, r)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"class ShellTestNoMoxV3(ShellTestNoMox):"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_cfb9f67a","line":252,"updated":"2014-10-13 09:36:00.000000000","message":"hmm it\u0027s not actually a regex, but I see that assertRegexMatches just do a re.search() (which sounds even more confusing because it really should be using re.match() if the name is \"Matches\")\n\nAnyhoo, I think that the right test to this is \"self.assertIn(r, event_list_test)\" so you test if the uuid string is present in the json response and gives you a better output in case of an error","commit_id":"e3d356476be376ebd3dfb3e84f379e113e5efac7"}],"test-requirements.txt":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccdd04b99e2afb8a3244108a5375bf0608bd9125","unresolved":false,"context_lines":[{"line_number":3,"context_line":"discover"},{"line_number":4,"context_line":"fixtures\u003e\u003d0.3.14"},{"line_number":5,"context_line":"hacking\u003e\u003d0.8.0,\u003c0.9"},{"line_number":6,"context_line":"httpretty\u003e\u003d0.8.0,!\u003d0.8.1,!\u003d0.8.2,!\u003d0.8.3"},{"line_number":7,"context_line":"mock\u003e\u003d1.0"},{"line_number":8,"context_line":"oslosphinx"},{"line_number":9,"context_line":"python-subunit\u003e\u003d0.0.18"}],"source_content_type":"text/plain","patch_set":3,"id":"fa98f980_e08691da","line":6,"updated":"2014-09-11 00:24:47.000000000","message":"don\u0027t bring in httpretty just for this. Use requests-mock if you need something.","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"00e8a6f9b387a3e6e995e73bbcd1e6d59cf1606c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"discover"},{"line_number":4,"context_line":"fixtures\u003e\u003d0.3.14"},{"line_number":5,"context_line":"hacking\u003e\u003d0.8.0,\u003c0.9"},{"line_number":6,"context_line":"httpretty\u003e\u003d0.8.0,!\u003d0.8.1,!\u003d0.8.2,!\u003d0.8.3"},{"line_number":7,"context_line":"mock\u003e\u003d1.0"},{"line_number":8,"context_line":"oslosphinx"},{"line_number":9,"context_line":"python-subunit\u003e\u003d0.0.18"}],"source_content_type":"text/plain","patch_set":3,"id":"fa98f980_566679bc","line":6,"in_reply_to":"fa98f980_e08691da","updated":"2014-09-18 17:54:23.000000000","message":"For my benefit, what are the advantages of request-mock over httpretty?","commit_id":"71bbdc11d4f76525808559b46cd031f42d3f3e8e"}]}
