)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b0754fda712c22efd0fc76d3dbd7e93b4a7f5f10","unresolved":false,"context_lines":[{"line_number":11,"context_line":"because we are passing the wrong variable here the tenant will endup with"},{"line_number":12,"context_line":"enabled field set to \"nothing\"."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I9ebfdde03c0f25cadd1323de9863a230d8058f4e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9FF8%3D","line":14,"updated":"2013-12-17 00:23:01.000000000","message":"If this is fixing a bug then open a bug and reference it in the commit message.","commit_id":"e651d1e724117c490d21f8600642b0e134227b9a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix variable passed to driver module"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a create tenant request is send to keystone with no enabled field set,"},{"line_number":10,"context_line":"the default behavior should be to set enabled to True for this tenant else"},{"line_number":11,"context_line":"because we are passing the wrong variable here the tenant will endup with"},{"line_number":12,"context_line":"enabled field set to \"nothing\"."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F80Qg%3D","line":9,"updated":"2013-12-20 01:11:51.000000000","message":"change \"tenant\" to \"project\" (throughout the commit message)\n\nchange \"send\" to \"sent\"","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix variable passed to driver module"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a create tenant request is send to keystone with no enabled field set,"},{"line_number":10,"context_line":"the default behavior should be to set enabled to True for this tenant else"},{"line_number":11,"context_line":"because we are passing the wrong variable here the tenant will endup with"},{"line_number":12,"context_line":"enabled field set to \"nothing\"."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F80QM%3D","line":10,"updated":"2013-12-20 01:11:51.000000000","message":"change \"this tenant\" to \"the new tenant\"","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a create tenant request is send to keystone with no enabled field set,"},{"line_number":10,"context_line":"the default behavior should be to set enabled to True for this tenant else"},{"line_number":11,"context_line":"because we are passing the wrong variable here the tenant will endup with"},{"line_number":12,"context_line":"enabled field set to \"nothing\"."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1261976"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F80QI%3D","line":11,"updated":"2013-12-20 01:11:51.000000000","message":"change \"else because\" to \"because\" ?\n\nchange \"here the tenant\" to \"to the project\"\n\nchange \"endup\" to \"end up\"","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If a create tenant request is send to keystone with no enabled field set,"},{"line_number":10,"context_line":"the default behavior should be to set enabled to True for this tenant else"},{"line_number":11,"context_line":"because we are passing the wrong variable here the tenant will endup with"},{"line_number":12,"context_line":"enabled field set to \"nothing\"."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1261976"},{"line_number":15,"context_line":"Change-Id: I9ebfdde03c0f25cadd1323de9863a230d8058f4e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F80QA%3D","line":12,"updated":"2013-12-20 01:11:51.000000000","message":"change \"enabled\" to \"the enabled\"","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"42d32a15d19e64e8b9603db53d2e57768fd49a93","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     mouad benchchaoui \u003cm.benchchaoui@cloudbau.de\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-21 23:00:34 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix variable passed to driver module"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a create project request is sent to keystone with no enabled field set,"},{"line_number":10,"context_line":"the default behavior should be to set enabled to True for the new project,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAT3%2F%2F4CU%3D","line":7,"updated":"2013-12-28 19:05:07.000000000","message":"(NIT) could say \"Default projects enabled on create\" as something more descriptive.","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6d7aa76789cfbf256d31ebb6d6ff28a5efbc6f0e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If a create project request is sent to keystone with no enabled field set,"},{"line_number":10,"context_line":"the default behavior should be to set enabled to True for the new project,"},{"line_number":11,"context_line":"but because we are passing the wrong variable to the driver creation"},{"line_number":12,"context_line":"method, this new project end up with the enabled field set to \"nothing\"."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1261976"},{"line_number":15,"context_line":"Change-Id: I9ebfdde03c0f25cadd1323de9863a230d8058f4e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAT3%2F%2F3Ts%3D","line":12,"updated":"2013-12-29 19:35:38.000000000","message":"change \"end\" to \"ends\"","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"}],"keystone/assignment/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":71,"context_line":"        tenant.setdefault(\u0027description\u0027, \u0027\u0027)"},{"line_number":72,"context_line":"        ret \u003d self.driver.create_project(tenant_id, tenant)"},{"line_number":73,"context_line":"        if SHOULD_CACHE(ret):"},{"line_number":74,"context_line":"            self.get_project.set(ret, self, tenant_id)"},{"line_number":75,"context_line":"            self.get_project_by_name.set(ret, self, ret[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F80Pk%3D","line":72,"updated":"2013-12-20 01:11:51.000000000","message":"seems like this is the only line that needed to be changed... why change the other lines in this function?","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"change_message_id":"aff6f00a28a4ba0691b4238e6c7b2796903194f0","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":71,"context_line":"        tenant.setdefault(\u0027description\u0027, \u0027\u0027)"},{"line_number":72,"context_line":"        ret \u003d self.driver.create_project(tenant_id, tenant)"},{"line_number":73,"context_line":"        if SHOULD_CACHE(ret):"},{"line_number":74,"context_line":"            self.get_project.set(ret, self, tenant_id)"},{"line_number":75,"context_line":"            self.get_project_by_name.set(ret, self, ret[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8yhQ%3D","line":72,"in_reply_to":"AAAATn%2F80Pk%3D","updated":"2013-12-20 09:43:32.000000000","message":"It didn\u0027t make sense to me to keep argument name \"tenant_ref\" while using variable \"tenant\" all the time in the body function that\u0027s why i renamed it, this way the code read much better (IMHO) **and** in some sense this can also be the cause of the bug introduction.","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        tenant \u003d tenant.copy()"},{"line_number":82,"context_line":"        if \u0027enabled\u0027 in tenant:"},{"line_number":83,"context_line":"            tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":84,"context_line":"        ret \u003d self.driver.update_project(tenant_id, tenant)"},{"line_number":85,"context_line":"        self.get_project.invalidate(self, tenant_id)"},{"line_number":86,"context_line":"        self.get_project_by_name.invalidate(self, ret[\u0027name\u0027],"},{"line_number":87,"context_line":"                                            ret[\u0027domain_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F80Pg%3D","line":84,"updated":"2013-12-20 01:11:51.000000000","message":"same here, why change the other lines?","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"7f47c4c696049bf35d20b59580f726e892045bac","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        super(Manager, self).__init__(assignment_driver)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @notifications.created(\u0027project\u0027)"},{"line_number":67,"context_line":"    def create_project(self, tenant_id, tenant):"},{"line_number":68,"context_line":"        tenant \u003d tenant.copy()"},{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F8tYU%3D","line":67,"updated":"2013-12-22 04:31:23.000000000","message":"I like how you got rid of tenant_ref. I agree that how you have the code now there would be less chance of this bug occurring.","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"42d32a15d19e64e8b9603db53d2e57768fd49a93","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def create_project(self, tenant_id, tenant):"},{"line_number":68,"context_line":"        tenant \u003d tenant.copy()"},{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":71,"context_line":"        tenant.setdefault(\u0027description\u0027, \u0027\u0027)"},{"line_number":72,"context_line":"        ret \u003d self.driver.create_project(tenant_id, tenant)"},{"line_number":73,"context_line":"        if SHOULD_CACHE(ret):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F4B4%3D","line":70,"updated":"2013-12-28 19:05:07.000000000","message":"In theory, you could have also solved this by making clean.project_enabled return the proper value if \u0027enabled\u0027 didn\u0027t exist in the tenant.","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5b383ecb1de3180e55c6df39cb29cabbecfe59bb","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def create_project(self, tenant_id, tenant):"},{"line_number":68,"context_line":"        tenant \u003d tenant.copy()"},{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":71,"context_line":"        tenant.setdefault(\u0027description\u0027, \u0027\u0027)"},{"line_number":72,"context_line":"        ret \u003d self.driver.create_project(tenant_id, tenant)"},{"line_number":73,"context_line":"        if SHOULD_CACHE(ret):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F3K0%3D","line":70,"in_reply_to":"AAAAT3%2F%2F3%2Fs%3D","updated":"2013-12-29 22:14:29.000000000","message":"With your change you could have used the clean.project_enabled logic to make sure the value was set instead of needing to use .setdefault as well.","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"},{"author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"change_message_id":"229192e2402e996bb4e2b9d6b8e86e4fa46dc14e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def create_project(self, tenant_id, tenant):"},{"line_number":68,"context_line":"        tenant \u003d tenant.copy()"},{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":71,"context_line":"        tenant.setdefault(\u0027description\u0027, \u0027\u0027)"},{"line_number":72,"context_line":"        ret \u003d self.driver.create_project(tenant_id, tenant)"},{"line_number":73,"context_line":"        if SHOULD_CACHE(ret):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F3KM%3D","line":70,"in_reply_to":"AAAAT3%2F%2F3K0%3D","updated":"2013-12-29 22:40:22.000000000","message":"But this mean also that we should have passed something else (tenant object ?) to project_enabled else current code raise a KeyError, which mean that will have to change clean.project_enabled behavior radically (and probably also user_enabled and similar functions) which is a change that i am not comfortable making for now at least, did i understand you correctly ?","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"},{"author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"change_message_id":"1e7529011c05623574207e0b9c55320e48f73027","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def create_project(self, tenant_id, tenant):"},{"line_number":68,"context_line":"        tenant \u003d tenant.copy()"},{"line_number":69,"context_line":"        tenant.setdefault(\u0027enabled\u0027, True)"},{"line_number":70,"context_line":"        tenant[\u0027enabled\u0027] \u003d clean.project_enabled(tenant[\u0027enabled\u0027])"},{"line_number":71,"context_line":"        tenant.setdefault(\u0027description\u0027, \u0027\u0027)"},{"line_number":72,"context_line":"        ret \u003d self.driver.create_project(tenant_id, tenant)"},{"line_number":73,"context_line":"        if SHOULD_CACHE(ret):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F3%2Fs%3D","line":70,"in_reply_to":"AAAAT3%2F%2F4B4%3D","updated":"2013-12-28 19:40:22.000000000","message":"Sorry but i didn\u0027t quiet understand what you meant ! the problem is not in clean.project_enabled but the fact that we were passing \"tenant_ref\" instead of \"tenant\" to self.driver.create_project.","commit_id":"22301d95142a30e9ec7fb1bde47dc0d0b4eabd9d"}],"keystone/tests/test_backend.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":1670,"context_line":"        ref[\u0027name\u0027] \u003d ref[\u0027name\u0027].upper()"},{"line_number":1671,"context_line":"        self.assignment_api.create_project(ref[\u0027id\u0027], ref)"},{"line_number":1672,"context_line":""},{"line_number":1673,"context_line":"    def test_create_project_with_no_enabled_fields(self):"},{"line_number":1674,"context_line":"        ref \u003d {"},{"line_number":1675,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":1676,"context_line":"            \u0027name\u0027: uuid.uuid4().hex.lower(),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F80PY%3D","line":1673,"updated":"2013-12-20 01:11:51.000000000","message":"change \"fields\" to \"field\"","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"change_message_id":"aff6f00a28a4ba0691b4238e6c7b2796903194f0","unresolved":false,"context_lines":[{"line_number":1670,"context_line":"        ref[\u0027name\u0027] \u003d ref[\u0027name\u0027].upper()"},{"line_number":1671,"context_line":"        self.assignment_api.create_project(ref[\u0027id\u0027], ref)"},{"line_number":1672,"context_line":""},{"line_number":1673,"context_line":"    def test_create_project_with_no_enabled_fields(self):"},{"line_number":1674,"context_line":"        ref \u003d {"},{"line_number":1675,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":1676,"context_line":"            \u0027name\u0027: uuid.uuid4().hex.lower(),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8ygs%3D","line":1673,"in_reply_to":"AAAATn%2F80PY%3D","updated":"2013-12-20 09:43:32.000000000","message":"Done","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4a7966b8f2106c5912855107a08c42471856912b","unresolved":false,"context_lines":[{"line_number":1678,"context_line":"        self.assignment_api.create_project(ref[\u0027id\u0027], ref)"},{"line_number":1679,"context_line":""},{"line_number":1680,"context_line":"        project \u003d self.assignment_api.get_project(ref[\u0027id\u0027])"},{"line_number":1681,"context_line":"        self.assertTrue(project[\u0027enabled\u0027])"},{"line_number":1682,"context_line":""},{"line_number":1683,"context_line":"    def test_create_project_long_name_fails(self):"},{"line_number":1684,"context_line":"        tenant \u003d {\u0027id\u0027: \u0027fake1\u0027, \u0027name\u0027: \u0027a\u0027 * 65,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F80PI%3D","line":1681,"updated":"2013-12-20 01:11:51.000000000","message":"Use \"self.assertIs(project[\u0027enabled\u0027], True)\" here to ensure that the value is a boolean.","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"},{"author":{"_account_id":7073,"name":"mouad benchchaoui","email":"m.benchchaoui@x-ion.de","username":"mouad"},"change_message_id":"aff6f00a28a4ba0691b4238e6c7b2796903194f0","unresolved":false,"context_lines":[{"line_number":1678,"context_line":"        self.assignment_api.create_project(ref[\u0027id\u0027], ref)"},{"line_number":1679,"context_line":""},{"line_number":1680,"context_line":"        project \u003d self.assignment_api.get_project(ref[\u0027id\u0027])"},{"line_number":1681,"context_line":"        self.assertTrue(project[\u0027enabled\u0027])"},{"line_number":1682,"context_line":""},{"line_number":1683,"context_line":"    def test_create_project_long_name_fails(self):"},{"line_number":1684,"context_line":"        tenant \u003d {\u0027id\u0027: \u0027fake1\u0027, \u0027name\u0027: \u0027a\u0027 * 65,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8ygw%3D","line":1681,"in_reply_to":"AAAATn%2F80PI%3D","updated":"2013-12-20 09:43:32.000000000","message":"Done","commit_id":"7d1dc512f8a8744f596952fea2fe49925272d298"}]}
