)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"13d27eb0255efdbef254f058c3a2495874c17240","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Renames variables that are called tenant, instead of project, as v3 is"},{"line_number":10,"context_line":"the predominant API version."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I185effa0ffaf561462aa141075dbbbe27e81609c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba8a016a_b35e7ee7","line":11,"updated":"2015-11-23 17:49:43.000000000","message":"please add related-bug tag for https://bugs.launchpad.net/keystone/+bug/1017606","commit_id":"9dc592c71aab8199978de4bda81fa4ab445156b7"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"a3f4d37c1a077a7b43fac3e8fefa7a348329be7d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Renames variables that are called tenant, instead of project, as v3 is"},{"line_number":10,"context_line":"the predominant API version."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I185effa0ffaf561462aa141075dbbbe27e81609c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba8a016a_0be872e1","line":11,"in_reply_to":"ba8a016a_b35e7ee7","updated":"2015-11-23 18:46:07.000000000","message":"Done","commit_id":"9dc592c71aab8199978de4bda81fa4ab445156b7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"9a3e8bd43c9031cf9bf0be20851d8b178e3c1f26","unresolved":false,"context_lines":[{"line_number":12,"context_line":"As we change the signature of get_project_by_name, we move it to v9 resource"},{"line_number":13,"context_line":"backend version."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1017606"},{"line_number":16,"context_line":"Change-Id: I185effa0ffaf561462aa141075dbbbe27e81609c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a68dd71_37232958","line":15,"updated":"2016-01-22 21:40:56.000000000","message":"This bug is not closed if there are follow up patches needed.","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6a71d511e6210d1151da6f44377b00edf76a650","unresolved":false,"context_lines":[{"line_number":12,"context_line":"As we change the signature of get_project_by_name, we move it to v9 resource"},{"line_number":13,"context_line":"backend version."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1017606"},{"line_number":16,"context_line":"Change-Id: I185effa0ffaf561462aa141075dbbbe27e81609c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a68dd71_97be10d3","line":15,"in_reply_to":"9a68dd71_37232958","updated":"2016-01-26 18:39:10.000000000","message":"you\u0027re right","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"}],"keystone/cmd/cli.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3b8629d97c8e4f8e50582c119ffd66ec6b9cad41","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        self.load_backends()"},{"line_number":62,"context_line":"        self.tenant_id \u003d uuid.uuid4().hex"},{"line_number":63,"context_line":"        self.role_id \u003d uuid.uuid4().hex"},{"line_number":64,"context_line":"        self.username \u003d None"},{"line_number":65,"context_line":"        self.project_name \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_3ad06dc9","line":62,"range":{"start_line":62,"start_character":13,"end_line":62,"end_character":22},"updated":"2016-01-08 00:07:00.000000000","message":"use project_id here?","commit_id":"8437da8ae8d38e894df2383fae34a9003445563c"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"4f1819bf68c6ff1959e255ebce18b6c10f87bc28","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        self.load_backends()"},{"line_number":62,"context_line":"        self.tenant_id \u003d uuid.uuid4().hex"},{"line_number":63,"context_line":"        self.role_id \u003d uuid.uuid4().hex"},{"line_number":64,"context_line":"        self.username \u003d None"},{"line_number":65,"context_line":"        self.project_name \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_d5548222","line":62,"range":{"start_line":62,"start_character":13,"end_line":62,"end_character":22},"in_reply_to":"fa69d971_3ad06dc9","updated":"2016-01-08 00:30:23.000000000","message":"the proposal of the patch was to change only the resource ones... I think we can do this in a follow-up. Makes sense?","commit_id":"8437da8ae8d38e894df2383fae34a9003445563c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b4067b96397bb02a482414f3e3778560e0ee134d","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        self.load_backends()"},{"line_number":62,"context_line":"        self.tenant_id \u003d uuid.uuid4().hex"},{"line_number":63,"context_line":"        self.role_id \u003d uuid.uuid4().hex"},{"line_number":64,"context_line":"        self.username \u003d None"},{"line_number":65,"context_line":"        self.project_name \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_e9b9cced","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":22},"updated":"2016-01-20 15:01:45.000000000","message":"what about this one?","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"a07c5e426f31e3db4f9992c926bc7a45d452dfaa","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        self.load_backends()"},{"line_number":62,"context_line":"        self.tenant_id \u003d uuid.uuid4().hex"},{"line_number":63,"context_line":"        self.role_id \u003d uuid.uuid4().hex"},{"line_number":64,"context_line":"        self.username \u003d None"},{"line_number":65,"context_line":"        self.project_name \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_424d4571","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":22},"in_reply_to":"9a68dd71_e9b9cced","updated":"2016-01-20 18:07:15.000000000","message":"the proposal of this patch was to replace only the resource directory ones... the ones on this module were only renamed because it broke some tests. I intend to do this one in follow-up patches, as well as the assignment directory.","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"}],"keystone/resource/backends/sql.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"35616f8d02bc1e76930e9a65a92851c09a64daf8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            raise exception.ProjectNotFound(project_id\u003dproject_id)"},{"line_number":37,"context_line":"        return project_ref"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_project(self, project_id):"},{"line_number":40,"context_line":"        with sql.transaction() as session:"},{"line_number":41,"context_line":"            return self._get_project(session, project_id).to_dict()"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_e95387e0","line":39,"range":{"start_line":39,"start_character":26,"end_line":39,"end_character":36},"updated":"2016-01-22 16:05:01.000000000","message":"if we are changing this, why do we not handle this like we are doing for get_project_by_name in terms of the wrapper?","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7002b9f6dc5643ac46bea9cc6033fb65575d200d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            raise exception.ProjectNotFound(project_id\u003dproject_id)"},{"line_number":37,"context_line":"        return project_ref"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_project(self, project_id):"},{"line_number":40,"context_line":"        with sql.transaction() as session:"},{"line_number":41,"context_line":"            return self._get_project(session, project_id).to_dict()"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_2f390842","line":39,"range":{"start_line":39,"start_character":26,"end_line":39,"end_character":36},"in_reply_to":"9a68dd71_9735b0f8","updated":"2016-01-26 19:08:59.000000000","message":"I agree - our V8 wrapper will handle the case if future manager code makes a positional argument call.","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6a71d511e6210d1151da6f44377b00edf76a650","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            raise exception.ProjectNotFound(project_id\u003dproject_id)"},{"line_number":37,"context_line":"        return project_ref"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_project(self, project_id):"},{"line_number":40,"context_line":"        with sql.transaction() as session:"},{"line_number":41,"context_line":"            return self._get_project(session, project_id).to_dict()"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_9735b0f8","line":39,"range":{"start_line":39,"start_character":26,"end_line":39,"end_character":36},"in_reply_to":"9a68dd71_97ea15ab","updated":"2016-01-26 18:39:10.000000000","message":"It\u0027s odd, but the driver signature already has \"project_id\": https://review.openstack.org/#/c/248295/7/keystone/resource/core.py@820 and manager calls it positionally, so there is no need to put this in a new driver version","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"9a3e8bd43c9031cf9bf0be20851d8b178e3c1f26","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            raise exception.ProjectNotFound(project_id\u003dproject_id)"},{"line_number":37,"context_line":"        return project_ref"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_project(self, project_id):"},{"line_number":40,"context_line":"        with sql.transaction() as session:"},{"line_number":41,"context_line":"            return self._get_project(session, project_id).to_dict()"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_97ea15ab","line":39,"range":{"start_line":39,"start_character":26,"end_line":39,"end_character":36},"in_reply_to":"9a68dd71_e95387e0","updated":"2016-01-22 21:40:56.000000000","message":"That\u0027s a good question.","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"35616f8d02bc1e76930e9a65a92851c09a64daf8","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    # CRUD"},{"line_number":140,"context_line":"    @sql.handle_conflicts(conflict_type\u003d\u0027project\u0027)"},{"line_number":141,"context_line":"    def create_project(self, project_id, project):"},{"line_number":142,"context_line":"        project[\u0027name\u0027] \u003d clean.project_name(project[\u0027name\u0027])"},{"line_number":143,"context_line":"        with sql.transaction() as session:"},{"line_number":144,"context_line":"            project_ref \u003d Project.from_dict(project)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_4972d37c","line":141,"range":{"start_line":141,"start_character":29,"end_line":141,"end_character":48},"updated":"2016-01-22 16:05:01.000000000","message":"and here","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6a71d511e6210d1151da6f44377b00edf76a650","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    # CRUD"},{"line_number":140,"context_line":"    @sql.handle_conflicts(conflict_type\u003d\u0027project\u0027)"},{"line_number":141,"context_line":"    def create_project(self, project_id, project):"},{"line_number":142,"context_line":"        project[\u0027name\u0027] \u003d clean.project_name(project[\u0027name\u0027])"},{"line_number":143,"context_line":"        with sql.transaction() as session:"},{"line_number":144,"context_line":"            project_ref \u003d Project.from_dict(project)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_0cc9b2ac","line":141,"range":{"start_line":141,"start_character":29,"end_line":141,"end_character":48},"in_reply_to":"9a68dd71_4972d37c","updated":"2016-01-26 18:39:10.000000000","message":"ditto","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"35616f8d02bc1e76930e9a65a92851c09a64daf8","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            return project_ref.to_dict()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @sql.handle_conflicts(conflict_type\u003d\u0027project\u0027)"},{"line_number":149,"context_line":"    def update_project(self, project_id, project):"},{"line_number":150,"context_line":"        if \u0027name\u0027 in project:"},{"line_number":151,"context_line":"            project[\u0027name\u0027] \u003d clean.project_name(project[\u0027name\u0027])"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_49f973c6","line":149,"range":{"start_line":149,"start_character":29,"end_line":149,"end_character":48},"updated":"2016-01-22 16:05:01.000000000","message":"and here","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6a71d511e6210d1151da6f44377b00edf76a650","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            return project_ref.to_dict()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @sql.handle_conflicts(conflict_type\u003d\u0027project\u0027)"},{"line_number":149,"context_line":"    def update_project(self, project_id, project):"},{"line_number":150,"context_line":"        if \u0027name\u0027 in project:"},{"line_number":151,"context_line":"            project[\u0027name\u0027] \u003d clean.project_name(project[\u0027name\u0027])"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_ccc39a89","line":149,"range":{"start_line":149,"start_character":29,"end_line":149,"end_character":48},"in_reply_to":"9a68dd71_49f973c6","updated":"2016-01-26 18:39:10.000000000","message":"ditto","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"35616f8d02bc1e76930e9a65a92851c09a64daf8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            return project_ref.to_dict(include_extra_dict\u003dTrue)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    @sql.handle_conflicts(conflict_type\u003d\u0027project\u0027)"},{"line_number":166,"context_line":"    def delete_project(self, project_id):"},{"line_number":167,"context_line":"        with sql.transaction() as session:"},{"line_number":168,"context_line":"            project_ref \u003d self._get_project(session, project_id)"},{"line_number":169,"context_line":"            session.delete(project_ref)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_09fffbaa","line":166,"range":{"start_line":166,"start_character":29,"end_line":166,"end_character":39},"updated":"2016-01-22 16:05:01.000000000","message":"and here","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6a71d511e6210d1151da6f44377b00edf76a650","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            return project_ref.to_dict(include_extra_dict\u003dTrue)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    @sql.handle_conflicts(conflict_type\u003d\u0027project\u0027)"},{"line_number":166,"context_line":"    def delete_project(self, project_id):"},{"line_number":167,"context_line":"        with sql.transaction() as session:"},{"line_number":168,"context_line":"            project_ref \u003d self._get_project(session, project_id)"},{"line_number":169,"context_line":"            session.delete(project_ref)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_ecc0de7e","line":166,"range":{"start_line":166,"start_character":29,"end_line":166,"end_character":39},"in_reply_to":"9a68dd71_09fffbaa","updated":"2016-01-26 18:39:10.000000000","message":"ditto","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"}],"keystone/resource/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e73a315dfe35574ff2624d329e4ff62408edbdfc","unresolved":false,"context_lines":[{"line_number":633,"context_line":"        return CONF.resource.list_limit or CONF.list_limit"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    @abc.abstractmethod"},{"line_number":636,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":637,"context_line":"        \"\"\"Get a project by name."},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        :returns: project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_36b4f9cf","line":636,"updated":"2015-11-21 03:17:14.000000000","message":"aside from this change, i can\u0027t see anything wrong with this change, i\u0027m just concerned that this is changing an abstract class/driver","commit_id":"9dc592c71aab8199978de4bda81fa4ab445156b7"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"dd7ea0edcd50afc766a985eb3f21d35229629f77","unresolved":false,"context_lines":[{"line_number":633,"context_line":"        return CONF.resource.list_limit or CONF.list_limit"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    @abc.abstractmethod"},{"line_number":636,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":637,"context_line":"        \"\"\"Get a project by name."},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        :returns: project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_63f85a7d","line":636,"in_reply_to":"ba8a016a_36b4f9cf","updated":"2015-11-23 13:40:14.000000000","message":"if it helps, we\u0027re only changing positional arguments, so, unless someone explicitly passes it as kwargs, I don\u0027t think we\u0027ll have problems","commit_id":"9dc592c71aab8199978de4bda81fa4ab445156b7"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"98853ccf3fe5c76d236387bdcc1b0823a772be69","unresolved":false,"context_lines":[{"line_number":633,"context_line":"        return CONF.resource.list_limit or CONF.list_limit"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    @abc.abstractmethod"},{"line_number":636,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":637,"context_line":"        \"\"\"Get a project by name."},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        :returns: project_ref"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_6e5d8c78","line":636,"in_reply_to":"ba8a016a_63f85a7d","updated":"2015-11-23 19:12:46.000000000","message":"I think this is correct.\n\nAn example of this working is the method get_project(self, project_id) in the driver definition, while in the backends it was like get_project(self, tenant_id).\n\nI also checked the ABC docs and there is no restriction documented there: https://docs.python.org/2/library/abc.html#abc.abstractmethod","commit_id":"9dc592c71aab8199978de4bda81fa4ab445156b7"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2810303ea3d2b461f8bc8a8eae07386904bb0990","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    @MEMOIZE"},{"line_number":649,"context_line":"    def get_project(self, project_id):"},{"line_number":650,"context_line":"        return self.driver.get_project(project_id)"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    @MEMOIZE"},{"line_number":653,"context_line":"    def get_project_by_name(self, project_name, domain_id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba63e191_ffba8ee0","line":650,"updated":"2016-01-20 01:11:57.000000000","message":"interesting, this already got changed and nothing is broken,","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6a71d511e6210d1151da6f44377b00edf76a650","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    @MEMOIZE"},{"line_number":649,"context_line":"    def get_project(self, project_id):"},{"line_number":650,"context_line":"        return self.driver.get_project(project_id)"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    @MEMOIZE"},{"line_number":653,"context_line":"    def get_project_by_name(self, project_name, domain_id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_b7c31438","line":650,"in_reply_to":"ba63e191_ffba8ee0","updated":"2016-01-26 18:39:10.000000000","message":"this should be because nobody calls it as a kwarg (although they could)","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2810303ea3d2b461f8bc8a8eae07386904bb0990","unresolved":false,"context_lines":[{"line_number":934,"context_line":"    \"\"\""},{"line_number":935,"context_line":""},{"line_number":936,"context_line":"    @abc.abstractmethod"},{"line_number":937,"context_line":"    def get_project_by_name(self, tenant_name, domain_id):"},{"line_number":938,"context_line":"        \"\"\"Get a tenant by name."},{"line_number":939,"context_line":""},{"line_number":940,"context_line":"        :returns: tenant_ref"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba63e191_dfa22a4b","line":937,"updated":"2016-01-20 01:11:57.000000000","message":"good catch on adding this here to make it match the old driver","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2810303ea3d2b461f8bc8a8eae07386904bb0990","unresolved":false,"context_lines":[{"line_number":954,"context_line":"    \"\"\""},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    @abc.abstractmethod"},{"line_number":957,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":958,"context_line":"        \"\"\"Get a project by name."},{"line_number":959,"context_line":""},{"line_number":960,"context_line":"        :returns: project_ref"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba63e191_bf6df605","line":957,"updated":"2016-01-20 01:11:57.000000000","message":"I am thinking if we should keep this ResourceDriverBase, because when we have newer version later ResourceDriverV10..11, we have to copy this code again.\n\nIf we\u0027re keeping it here,  add a NOTE that we can move this back to DriverBase when we no longer support V8.","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f2548cd86445b3642e901c7271fcfae901fde485","unresolved":false,"context_lines":[{"line_number":954,"context_line":"    \"\"\""},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    @abc.abstractmethod"},{"line_number":957,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":958,"context_line":"        \"\"\"Get a project by name."},{"line_number":959,"context_line":""},{"line_number":960,"context_line":"        :returns: project_ref"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_a273cf4c","line":957,"in_reply_to":"9a68dd71_42822554","updated":"2016-01-21 00:38:03.000000000","message":"Ah reading helps! Thanks for the clarification!","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"a07c5e426f31e3db4f9992c926bc7a45d452dfaa","unresolved":false,"context_lines":[{"line_number":954,"context_line":"    \"\"\""},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    @abc.abstractmethod"},{"line_number":957,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":958,"context_line":"        \"\"\"Get a project by name."},{"line_number":959,"context_line":""},{"line_number":960,"context_line":"        :returns: project_ref"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_42822554","line":957,"in_reply_to":"ba63e191_bf6df605","updated":"2016-01-20 18:07:15.000000000","message":"That\u0027s the default behaviour for all driver methods that change, right? I think Henry Nash has explained this in the class docstrings","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"35616f8d02bc1e76930e9a65a92851c09a64daf8","unresolved":false,"context_lines":[{"line_number":996,"context_line":"        self.driver \u003d wrapped_driver"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":999,"context_line":"        return self.driver.get_project_by_name(project_name, domain_id)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    def create_domain(self, domain_id, domain):"},{"line_number":1002,"context_line":"        return self.driver.create_domain(domain_id, domain)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_09161bf1","line":999,"range":{"start_line":999,"start_character":47,"end_line":999,"end_character":59},"updated":"2016-01-22 16:05:01.000000000","message":"to make it obvious why we are doing this, maybe use tenant_name here","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"9a3e8bd43c9031cf9bf0be20851d8b178e3c1f26","unresolved":false,"context_lines":[{"line_number":996,"context_line":"        self.driver \u003d wrapped_driver"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    def get_project_by_name(self, project_name, domain_id):"},{"line_number":999,"context_line":"        return self.driver.get_project_by_name(project_name, domain_id)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    def create_domain(self, domain_id, domain):"},{"line_number":1002,"context_line":"        return self.driver.create_domain(domain_id, domain)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_f774b136","line":999,"range":{"start_line":999,"start_character":47,"end_line":999,"end_character":59},"in_reply_to":"9a68dd71_09161bf1","updated":"2016-01-22 21:40:56.000000000","message":"The only issue with that is the adapters are supposed to be the latest interface. So if something uses kwargs using the V9 interface they\u0027d be broken.","commit_id":"81dd64c8545636fb0c3756ce1a10d454c0922522"}]}
