)]}'
{"keystone/resource/controllers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"0e7f50a4a84393f43af633e51c3ff47988fba590","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            msg \u003d _(\u0027Name field is required and cannot be empty\u0027)"},{"line_number":89,"context_line":"            raise exception.ValidationError(message\u003dmsg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        if tenant_ref.get(\u0027is_domain\u0027):"},{"line_number":92,"context_line":"            msg \u003d _(\u0027The creation of projects acting as domains is not \u0027"},{"line_number":93,"context_line":"                    \u0027allowed in v2.\u0027)"},{"line_number":94,"context_line":"            raise exception.ValidationError(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_814e1239","line":91,"updated":"2015-09-18 14:12:20.000000000","message":"To properly validate the API request is not passing things it shouldn\u0027t be, make this a stronger assertion:\n\n  if \u0027is_domain\u0027 in tenant_ref:\n\nOtherwise, this code will accept is_domain\u003dFalse, which is not part of the API contract, either.","commit_id":"64ccbeb1be76d46aed82b273d64103e1df0bd7b7"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"b63a858fc1846d1b913633141ded561cea4ca466","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            msg \u003d _(\u0027Name field is required and cannot be empty\u0027)"},{"line_number":89,"context_line":"            raise exception.ValidationError(message\u003dmsg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        if tenant_ref.get(\u0027is_domain\u0027):"},{"line_number":92,"context_line":"            msg \u003d _(\u0027The creation of projects acting as domains is not \u0027"},{"line_number":93,"context_line":"                    \u0027allowed in v2.\u0027)"},{"line_number":94,"context_line":"            raise exception.ValidationError(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_aebe6fd2","line":91,"in_reply_to":"ba15a1d1_814e1239","updated":"2015-09-21 12:46:37.000000000","message":"Done","commit_id":"64ccbeb1be76d46aed82b273d64103e1df0bd7b7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"eb0e317d5136b1fe7162ff5e4e5dac25da40fc58","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        if \u0027is_domain\u0027 in tenant_ref:"},{"line_number":93,"context_line":"            msg \u003d _(\u0027The creation of projects acting as domains is not \u0027"},{"line_number":94,"context_line":"                    \u0027allowed in v2.\u0027)"},{"line_number":95,"context_line":"            raise exception.ValidationError(message\u003dmsg)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        self.assert_admin(context)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_495d61e8","line":94,"range":{"start_line":94,"start_character":34,"end_line":94,"end_character":35},"updated":"2016-01-20 21:16:05.000000000","message":"nit: could amend to this. \n\n\u0027The creation of projects acting as domains is not allowed in v2 because v2 isn\u0027t not domain aware outside of the default domain.\u0027","commit_id":"74abab1656227695283142b278d74fc088b98e73"}],"keystone/tests/unit/test_v2_controller.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"0e7f50a4a84393f43af633e51c3ff47988fba590","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def test_create_is_domain_project_fails(self):"},{"line_number":107,"context_line":"        \"\"\"Test that the creation of a project acting as a domain fails.\"\"\""},{"line_number":108,"context_line":"        project \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: \u0027default\u0027,"},{"line_number":109,"context_line":"                   \u0027is_domain\u0027: True}"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertRaises("},{"line_number":112,"context_line":"            exception.ValidationError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_012f623f","line":109,"updated":"2015-09-18 14:12:20.000000000","message":"Add a test for \u0027is_domain\u0027: False as well","commit_id":"64ccbeb1be76d46aed82b273d64103e1df0bd7b7"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"b63a858fc1846d1b913633141ded561cea4ca466","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def test_create_is_domain_project_fails(self):"},{"line_number":107,"context_line":"        \"\"\"Test that the creation of a project acting as a domain fails.\"\"\""},{"line_number":108,"context_line":"        project \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: \u0027default\u0027,"},{"line_number":109,"context_line":"                   \u0027is_domain\u0027: True}"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.assertRaises("},{"line_number":112,"context_line":"            exception.ValidationError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_4eb3130b","line":109,"in_reply_to":"ba15a1d1_012f623f","updated":"2015-09-21 12:46:37.000000000","message":"Done","commit_id":"64ccbeb1be76d46aed82b273d64103e1df0bd7b7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ec5dd0fff114a8780772341ffc4cb1dfff5e1d89","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            self.tenant_controller.create_project,"},{"line_number":132,"context_line":"            _ADMIN_CONTEXT,"},{"line_number":133,"context_line":"            project"},{"line_number":134,"context_line":"        )"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def test_create_project_passing_is_domain_false_fails(self):"},{"line_number":137,"context_line":"        \"\"\"Test that passing is_domain\u003dFalse is not allowed.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_688bfb68","line":134,"updated":"2016-01-23 01:59:29.000000000","message":"This really should be on line 133. I\u0027ve submitted a patch to fix several of the style issues in this code.","commit_id":"74abab1656227695283142b278d74fc088b98e73"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ec5dd0fff114a8780772341ffc4cb1dfff5e1d89","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            self.tenant_controller.create_project,"},{"line_number":144,"context_line":"            _ADMIN_CONTEXT,"},{"line_number":145,"context_line":"            project"},{"line_number":146,"context_line":"        )"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_update_is_domain_project_not_found(self):"},{"line_number":149,"context_line":"        \"\"\"Test that update is_domain project is not allowed in v2.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_08eb5f14","line":146,"updated":"2016-01-23 01:59:29.000000000","message":"same","commit_id":"74abab1656227695283142b278d74fc088b98e73"}]}
