)]}'
{"keystoneclient/session.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    return Session().request(url, method\u003dmethod, **kwargs)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def get_v2_auth(v2_auth_url, username, password, tenant_id, tenant_name):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    return v2_auth.Password("},{"line_number":59,"context_line":"        v2_auth_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_22528535","line":56,"updated":"2014-09-19 01:05:37.000000000","message":"this function isn\u0027t doing much since it\u0027s just wrapping the plugin constructor, so just use the plugin constructor.","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        project_id,"},{"line_number":74,"context_line":"        project_name,"},{"line_number":75,"context_line":"        project_domain_name,"},{"line_number":76,"context_line":"        project_domain_id)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    return v3_auth.Password("},{"line_number":79,"context_line":"        v3_auth_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_42306907","line":76,"updated":"2014-09-19 01:05:37.000000000","message":"this function isn\u0027t doing much since it\u0027s just wrapping the plugin constructor, so just use the plugin constructor.","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def _discover_auth_versions(session, auth_url):"},{"line_number":93,"context_line":"    # discover the API versions the server is supporting based on the"},{"line_number":94,"context_line":"    # given URL"},{"line_number":95,"context_line":"    v2_auth_url \u003d None"},{"line_number":96,"context_line":"    v3_auth_url \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_6233ad13","line":93,"updated":"2014-09-19 01:05:37.000000000","message":"change \"is supporting\" to \"supports\"","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        url_parts \u003d urlparse.urlparse(auth_url)"},{"line_number":109,"context_line":"        (scheme, netloc, path, params, query, fragment) \u003d url_parts"},{"line_number":110,"context_line":"        path \u003d path.lower()"},{"line_number":111,"context_line":"        if path.startswith(\u0027/v3\u0027):"},{"line_number":112,"context_line":"            v3_auth_url \u003d auth_url"},{"line_number":113,"context_line":"        elif path.startswith(\u0027/v2\u0027):"},{"line_number":114,"context_line":"            v2_auth_url \u003d auth_url"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_42178954","line":111,"updated":"2014-09-19 01:05:37.000000000","message":"should be endswith? You might run your keystone under apache and have it in a different location like /identity/v3","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            v2_auth_url \u003d auth_url"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            raise exceptions.SessionFailure("},{"line_number":117,"context_line":"                \u0027Unable to determine the Keystone\u0027"},{"line_number":118,"context_line":"                \u0027 version to authenticate with using the given auth_url.\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    return (v2_auth_url, v3_auth_url)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_c20a9926","line":117,"updated":"2014-09-19 01:05:37.000000000","message":"change \"Keystone\" to \"identity service\"","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    return (v2_auth_url, v3_auth_url)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_keystone_session("},{"line_number":124,"context_line":"        self, cacert\u003dNone, cert\u003dNone, insecure\u003dFalse,"},{"line_number":125,"context_line":"        username\u003dNone, user_id\u003dNone,"},{"line_number":126,"context_line":"        user_domain_name\u003dNone, user_domain_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_950b6d23","line":123,"updated":"2014-09-19 01:05:37.000000000","message":"This should be a constructor method on the Session class.","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_keystone_session("},{"line_number":124,"context_line":"        self, cacert\u003dNone, cert\u003dNone, insecure\u003dFalse,"},{"line_number":125,"context_line":"        username\u003dNone, user_id\u003dNone,"},{"line_number":126,"context_line":"        user_domain_name\u003dNone, user_domain_id\u003dNone,"},{"line_number":127,"context_line":"        password\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_554f456a","line":124,"updated":"2014-09-19 01:05:37.000000000","message":"there shouldn\u0027t be a self argument since this isn\u0027t a member function.","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7cab3def32231757c905dba40d724b9ccc517dff","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            project_domain_id)"},{"line_number":181,"context_line":"    elif v2_auth_url:"},{"line_number":182,"context_line":"        # support only v2"},{"line_number":183,"context_line":"        auth \u003d _get_v2_auth(v2_auth_url)"},{"line_number":184,"context_line":"    else:"},{"line_number":185,"context_line":"        raise exceptions.SessionFailure(\u0027Unable to create a valid session.\u0027)"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_624c8d9e","line":183,"updated":"2014-09-19 01:05:37.000000000","message":"needs username and other args.","commit_id":"6c8f78cb3b100baebc6ea6e6b5a94e52df46ad65"}]}
