)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"aa4e39cbcd09acc824968cfdaf25e825ab847d50","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a condition for \u0027region\u0027 parameter"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In V2 Endpoint creation it returns 500 error due to missing"},{"line_number":10,"context_line":"\u0027region\u0027. So, Added a condition that will check the existance of"},{"line_number":11,"context_line":"the same parameter."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I5c9ef206193072da73d3990d5f77003124db8265"},{"line_number":14,"context_line":"Closes-Bug:#1557166"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9abb7d3a_c23087a1","line":11,"range":{"start_line":10,"start_character":10,"end_line":11,"end_character":19},"updated":"2016-05-27 11:20:19.000000000","message":"This no longer reflects what the commit does.","commit_id":"b94e786c69f681fc14a38d65e7abd6abef36234d"},{"author":{"_account_id":20181,"name":"Srushti Gadadare","email":"srushti391993@gmail.com","username":"srushti"},"change_message_id":"e33052a934d784bbfb30f3d141527218c4de223e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In V2 Endpoint creation it returns 500 error due to missing"},{"line_number":10,"context_line":"\u0027region\u0027. So, Added a condition that will check the existance of"},{"line_number":11,"context_line":"the same parameter."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I5c9ef206193072da73d3990d5f77003124db8265"},{"line_number":14,"context_line":"Closes-Bug:#1557166"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9abb7d3a_2c6eaac9","line":12,"updated":"2016-05-27 10:37:17.000000000","message":"APIImpact tag is needed.","commit_id":"b94e786c69f681fc14a38d65e7abd6abef36234d"}],"keystone/catalog/controllers.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0248d5e1c0bb7289ad52b9ff5a0716d34bc06bfa","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            endpoint_ref[\u0027legacy_endpoint_id\u0027] \u003d legacy_endpoint_id"},{"line_number":177,"context_line":"            endpoint_ref[\u0027interface\u0027] \u003d interface"},{"line_number":178,"context_line":"            endpoint_ref[\u0027url\u0027] \u003d url"},{"line_number":179,"context_line":"            endpoint_ref[\u0027region_id\u0027] \u003d endpoint_ref.pop(\u0027region\u0027)"},{"line_number":180,"context_line":"            self.catalog_api.create_endpoint(endpoint_ref[\u0027id\u0027], endpoint_ref,"},{"line_number":181,"context_line":"                                             initiator)"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_df95f740","side":"PARENT","line":179,"range":{"start_line":179,"start_character":40,"end_line":179,"end_character":66},"updated":"2016-04-12 13:49:34.000000000","message":"just change this to endpoint_ref.get(\u0027region\u0027)","commit_id":"c34930eb48f71b052a9243b647367a6186be41b9"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"44100d3051bb3ef93c1eeeb3ac438ead6b1c7e3a","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            endpoint_ref[\u0027legacy_endpoint_id\u0027] \u003d legacy_endpoint_id"},{"line_number":177,"context_line":"            endpoint_ref[\u0027interface\u0027] \u003d interface"},{"line_number":178,"context_line":"            endpoint_ref[\u0027url\u0027] \u003d url"},{"line_number":179,"context_line":"            if endpoint_ref.get(\u0027region\u0027):"},{"line_number":180,"context_line":"                endpoint_ref[\u0027region_id\u0027] \u003d endpoint_ref.pop(\u0027region\u0027)"},{"line_number":181,"context_line":"            self.catalog_api.create_endpoint(endpoint_ref[\u0027id\u0027], endpoint_ref,"},{"line_number":182,"context_line":"                                             initiator)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_e9ebf9ae","line":180,"range":{"start_line":179,"start_character":12,"end_line":180,"end_character":70},"updated":"2016-05-27 08:39:18.000000000","message":"May be we can change this as below:\n\nendpoint_ref[\u0027region_id\u0027] \u003d endpoint_ref.get(\u0027region\u0027, None)","commit_id":"92a0ab7c718d7ccf9317c8f67aec268e39d384f8"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8db7161ba8727c4e57482afe615d12c15ed03fea","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            endpoint_ref[\u0027legacy_endpoint_id\u0027] \u003d legacy_endpoint_id"},{"line_number":177,"context_line":"            endpoint_ref[\u0027interface\u0027] \u003d interface"},{"line_number":178,"context_line":"            endpoint_ref[\u0027url\u0027] \u003d url"},{"line_number":179,"context_line":"            endpoint_ref[\u0027region_id\u0027] \u003d endpoint_ref.get(\u0027region\u0027, None)"},{"line_number":180,"context_line":"            self.catalog_api.create_endpoint(endpoint_ref[\u0027id\u0027], endpoint_ref,"},{"line_number":181,"context_line":"                                             initiator)"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_aae2759d","line":179,"range":{"start_line":179,"start_character":65,"end_line":179,"end_character":71},"updated":"2016-05-27 13:10:34.000000000","message":"nit: you don\u0027t need to pass None here","commit_id":"04f7aa3a51525357b7fa3a47dcc14054d20e94a4"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"8291818658b88649b8bb817edf879e844faa5878","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            endpoint_ref[\u0027legacy_endpoint_id\u0027] \u003d legacy_endpoint_id"},{"line_number":178,"context_line":"            endpoint_ref[\u0027interface\u0027] \u003d interface"},{"line_number":179,"context_line":"            endpoint_ref[\u0027url\u0027] \u003d url"},{"line_number":180,"context_line":"            endpoint_ref[\u0027region_id\u0027] \u003d endpoint_ref.get(\u0027region\u0027)"},{"line_number":181,"context_line":"            self.catalog_api.create_endpoint(endpoint_ref[\u0027id\u0027],"},{"line_number":182,"context_line":"                                             endpoint_ref,"},{"line_number":183,"context_line":"                                             initiator\u003drequest.audit_initiator)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_196c379b","line":180,"updated":"2017-01-17 20:02:13.000000000","message":"use .pop(\u0027region\u0027, None)","commit_id":"aae92222aead42b3baf9a5c0644b896378e35868"}],"keystone/tests/unit/common/test_notifications.py":[{"author":{"_account_id":20095,"name":"Pankaj Mishra","email":"pm.mishra167@gmail.com","username":"bpankaj"},"change_message_id":"853ad09fd584bfeb1ca2ac5f4012cd13ff09b5de","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"},{"line_number":464,"context_line":"        print(endpoint_ref)"},{"line_number":465,"context_line":"        self.catalog_api.create_endpoint(endpoint_ref[\u0027id\u0027], endpoint_ref)"},{"line_number":466,"context_line":"        self._assert_notify_sent(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":467,"context_line":"                                 \u0027endpoint\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_6369ea8b","line":464,"range":{"start_line":464,"start_character":14,"end_line":464,"end_character":26},"updated":"2016-05-27 07:37:31.000000000","message":"Can you remove print function.","commit_id":"7d455e6787677ce9be55df5861fd6afdf64e7fa7"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"731a261417bd4198fc4b4530e147a1bc4cfc4357","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self._assert_last_audit(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":458,"context_line":"                                \u0027endpoint\u0027, cadftaxonomy.SECURITY_ENDPOINT)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def test_create_endpoint_without_region(self):"},{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_a4174eec","line":460,"range":{"start_line":460,"start_character":8,"end_line":460,"end_character":49},"updated":"2016-05-27 12:41:45.000000000","message":"Not sure this is the best place of this test - test_notifications is meant to check the audit generated. To test the controller level, I would suggest creating a class in v2_controller.py.","commit_id":"04f7aa3a51525357b7fa3a47dcc14054d20e94a4"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8db7161ba8727c4e57482afe615d12c15ed03fea","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self._assert_last_audit(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":458,"context_line":"                                \u0027endpoint\u0027, cadftaxonomy.SECURITY_ENDPOINT)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def test_create_endpoint_without_region(self):"},{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_4a9f8903","line":460,"range":{"start_line":460,"start_character":8,"end_line":460,"end_character":49},"in_reply_to":"9abb7d3a_a4174eec","updated":"2016-05-27 13:10:34.000000000","message":"++","commit_id":"04f7aa3a51525357b7fa3a47dcc14054d20e94a4"},{"author":{"_account_id":21376,"name":"Kanika Singh","email":"kanika.singh@nectechnologies.in","username":"kanika"},"change_message_id":"2780384622aca34f8b56e297a337195149e5a562","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self._assert_last_audit(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":458,"context_line":"                                \u0027endpoint\u0027, cadftaxonomy.SECURITY_ENDPOINT)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def test_create_endpoint_without_region(self):"},{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_701cc913","line":460,"range":{"start_line":460,"start_character":8,"end_line":460,"end_character":49},"in_reply_to":"9abb7d3a_a4174eec","updated":"2016-05-30 06:32:29.000000000","message":"test_create_endpoint(..) was already written here, to maintain continuity of the use case I added test_create_endpoint_without_region(..) below it.","commit_id":"04f7aa3a51525357b7fa3a47dcc14054d20e94a4"},{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"766541b2aac17f9de7abd30bd285f8f089fe7253","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self._assert_last_audit(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":458,"context_line":"                                \u0027endpoint\u0027, cadftaxonomy.SECURITY_ENDPOINT)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def test_create_endpoint_without_region(self):"},{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_539a6f64","line":460,"range":{"start_line":460,"start_character":4,"end_line":460,"end_character":50},"updated":"2016-05-30 07:12:15.000000000","message":"++\nThis test has been performed using the v3 api.\nI think that it should be written as 758 line of the method.","commit_id":"429badedb889abb3e48b1e48d2c3ae7e5ad0294a"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"ed5ced12b8cdadef19e21ef43d30a63464551a54","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self._assert_last_audit(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":458,"context_line":"                                \u0027endpoint\u0027, cadftaxonomy.SECURITY_ENDPOINT)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def test_create_endpoint_without_region(self):"},{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_369fc351","line":460,"range":{"start_line":460,"start_character":4,"end_line":460,"end_character":50},"in_reply_to":"9abb7d3a_1fd4661e","updated":"2016-06-23 00:46:27.000000000","message":"++ the test should be in https://github.com/openstack/keystone/blob/master/keystone/tests/unit/test_catalog.py","commit_id":"429badedb889abb3e48b1e48d2c3ae7e5ad0294a"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"0f5f01302fa256aa5de450eedd314833fd969e1b","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        self._assert_last_audit(endpoint_ref[\u0027id\u0027], CREATED_OPERATION,"},{"line_number":458,"context_line":"                                \u0027endpoint\u0027, cadftaxonomy.SECURITY_ENDPOINT)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def test_create_endpoint_without_region(self):"},{"line_number":461,"context_line":"        endpoint_ref \u003d unit.new_endpoint_ref_with_no_region(service_id\u003dself."},{"line_number":462,"context_line":"                                                            service_id,"},{"line_number":463,"context_line":"                                                            interface\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_1fd4661e","line":460,"range":{"start_line":460,"start_character":4,"end_line":460,"end_character":50},"in_reply_to":"9abb7d3a_539a6f64","updated":"2016-05-30 08:56:58.000000000","message":"But the tests in this module are designed to test the audit generation of the action, not whether the region field is handled correctly. This test would still pass if your new code wrote \"I am a lumberjack\" into the region field if it is passed in as None. We don\u0027t need a new test here for notifications. we need a new test in the correct place for whether your handling of the region ID is correct.","commit_id":"429badedb889abb3e48b1e48d2c3ae7e5ad0294a"}],"keystone/tests/unit/core.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8db7161ba8727c4e57482afe615d12c15ed03fea","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    \"\"\""},{"line_number":303,"context_line":"    ref \u003d new_endpoint_ref(service_id, interface, region\u003dNone,"},{"line_number":304,"context_line":"                           region_id\u003dNone, **kwargs)"},{"line_number":305,"context_line":"    del ref[\u0027region_id\u0027]"},{"line_number":306,"context_line":"    del ref[\u0027region\u0027]"},{"line_number":307,"context_line":"    return ref"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_2a7205e6","line":306,"range":{"start_line":305,"start_character":0,"end_line":306,"end_character":21},"updated":"2016-05-27 13:10:34.000000000","message":"why are you doing this if you are already passing None?","commit_id":"04f7aa3a51525357b7fa3a47dcc14054d20e94a4"},{"author":{"_account_id":21376,"name":"Kanika Singh","email":"kanika.singh@nectechnologies.in","username":"kanika"},"change_message_id":"628429e5fe47730caadecba1e757b9c2f2deb39c","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    \"\"\""},{"line_number":303,"context_line":"    ref \u003d new_endpoint_ref(service_id, interface, region\u003dNone,"},{"line_number":304,"context_line":"                           region_id\u003dNone, **kwargs)"},{"line_number":305,"context_line":"    del ref[\u0027region_id\u0027]"},{"line_number":306,"context_line":"    del ref[\u0027region\u0027]"},{"line_number":307,"context_line":"    return ref"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_9b4a33ab","line":306,"range":{"start_line":305,"start_character":0,"end_line":306,"end_character":21},"in_reply_to":"9abb7d3a_2a7205e6","updated":"2016-05-30 03:12:26.000000000","message":"The condition that was raising the 500 Error needs absence of these parameters. With region or region_id set as None, the functionality is working fine. It fails only when region or region_id parameter is absent. \n\nI am passing None in order to use pre-written initializing method- new_endpoint_ref(...). And then deleting the parameters according to my test case.","commit_id":"04f7aa3a51525357b7fa3a47dcc14054d20e94a4"}],"keystone/tests/unit/test_catalog.py":[{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"3054ea4f7f045e6adf9080aee04de69fbab08dcd","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        for field, value in req_body[\u0027endpoint\u0027].items():"},{"line_number":90,"context_line":"            self.assertEqual(value, response.result[\u0027endpoint\u0027][field])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_endpoint_create_without_region(self):"},{"line_number":93,"context_line":"        req_body, response \u003d self._endpoint_create(region\u003dNone)"},{"line_number":94,"context_line":"        self.assertIn(\u0027endpoint\u0027, response.result)"},{"line_number":95,"context_line":"        self.assertIn(\u0027id\u0027, response.result[\u0027endpoint\u0027])"},{"line_number":96,"context_line":"        for field, value in req_body[\u0027endpoint\u0027].items():"},{"line_number":97,"context_line":"            self.assertEqual(value, response.result[\u0027endpoint\u0027][field])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def test_pure_v3_endpoint_with_publicurl_visible_from_v2(self):"},{"line_number":100,"context_line":"        \"\"\"Test pure v3 endpoint can be fetched via v2.0 API."}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_4127f2b5","line":97,"range":{"start_line":92,"start_character":4,"end_line":97,"end_character":71},"updated":"2017-01-16 15:32:34.000000000","message":"I believe Henry commented on this earlier, but this is not testing if `region` is handled correctly, rather that all key/values are correct (whether or not `region` is present).\n\nSomething along the lines of:\n\n assertNotIn(\u0027region\u0027, response.result[\u0027endpoint\u0027])\n\nmay do the trick.","commit_id":"b3a339bce11e00eea380ae93ec9ddad934b7762c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"fe90243c728bd29a5907773c7889487a2293a3c8","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        for field, value in req_body[\u0027endpoint\u0027].items():"},{"line_number":90,"context_line":"            self.assertEqual(value, response.result[\u0027endpoint\u0027][field])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_endpoint_create_without_region(self):"},{"line_number":93,"context_line":"        req_body, response \u003d self._endpoint_create(region\u003dNone)"},{"line_number":94,"context_line":"        self.assertIn(\u0027endpoint\u0027, response.result)"},{"line_number":95,"context_line":"        self.assertIn(\u0027id\u0027, response.result[\u0027endpoint\u0027])"},{"line_number":96,"context_line":"        for field, value in req_body[\u0027endpoint\u0027].items():"},{"line_number":97,"context_line":"            self.assertEqual(value, response.result[\u0027endpoint\u0027][field])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def test_pure_v3_endpoint_with_publicurl_visible_from_v2(self):"},{"line_number":100,"context_line":"        \"\"\"Test pure v3 endpoint can be fetched via v2.0 API."}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_2c19fd88","line":97,"range":{"start_line":92,"start_character":4,"end_line":97,"end_character":71},"in_reply_to":"7a3c09a3_4127f2b5","updated":"2017-01-16 15:50:38.000000000","message":"Done","commit_id":"b3a339bce11e00eea380ae93ec9ddad934b7762c"}]}
