)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e28fa7111ef5f6105b4e64138a3827718684963b","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If not set availability_zone_hits when create router, should use"},{"line_number":10,"context_line":"configuration parameter default_availability_zones."},{"line_number":11,"context_line":"At present, only the creation parameters are validate, and the default"},{"line_number":12,"context_line":"availability zones not validate."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-bug: #1938261"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"d588972f_888a882b","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":32},"updated":"2021-07-29 08:09:43.000000000","message":"nit: Perhaps better wording: \"Currently only the az parameters from create request are validated, and the default-availability zone from config not considered for validation.\"","commit_id":"b15f6b3a67a516a4594a97dc784838a307820702"}],"neutron/scheduler/l3_agent_scheduler.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"88cd4cc230f8e58a69eb83880e7e0b043d842def","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from neutron_lib import constants as lib_const"},{"line_number":23,"context_line":"from neutron_lib.db import api as lib_db_api"},{"line_number":24,"context_line":"from neutron_lib.exceptions import l3 as l3_exc"},{"line_number":25,"context_line":"from oslo_config import cfg"},{"line_number":26,"context_line":"from oslo_db import exception as db_exc"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"24830f85_7c700d6b","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":27},"updated":"2021-08-04 05:31:23.000000000","message":"This is an example.","commit_id":"cc1156a26c7865b638db1f7b02b67c5c81515187"}],"neutron/tests/unit/extensions/test_availability_zone.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c87d0f555c0025c718ca9a956cde754543dfcb86","unresolved":true,"context_lines":[{"line_number":173,"context_line":"                                   availability_zone_hints\u003d[\u0027nova3\u0027])"},{"line_number":174,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_create_network_with_default_availability_zones(self):"},{"line_number":177,"context_line":"        self._register_azs()"},{"line_number":178,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, [\u0027nova4\u0027])"},{"line_number":179,"context_line":"        res \u003d self._create_network(self.fmt, \u0027net\u0027, True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffa9a369_6998219b","line":176,"range":{"start_line":176,"start_character":8,"end_line":176,"end_character":59},"updated":"2021-08-03 01:42:01.000000000","message":"The case name is not clear here, it should be something like this : \"test_create_router_with_default_az_not_existing\".\n\nOr align with the following case: \n\"test_create_router_with_default_availability_zones_not_existing_az\"","commit_id":"7abcfada9a85a89a5e71e0fa9baedf477a0cf22c"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"a08e3e14efe2f5e81d90eba6afb714eca02b7c32","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                                   availability_zone_hints\u003d[\u0027nova3\u0027])"},{"line_number":174,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_create_network_with_default_availability_zones(self):"},{"line_number":177,"context_line":"        self._register_azs()"},{"line_number":178,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, [\u0027nova4\u0027])"},{"line_number":179,"context_line":"        res \u003d self._create_network(self.fmt, \u0027net\u0027, True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bd7d0305_f6cae9bd","line":176,"range":{"start_line":176,"start_character":8,"end_line":176,"end_character":59},"in_reply_to":"ffa9a369_6998219b","updated":"2021-08-03 02:13:20.000000000","message":"Done","commit_id":"7abcfada9a85a89a5e71e0fa9baedf477a0cf22c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c87d0f555c0025c718ca9a956cde754543dfcb86","unresolved":true,"context_lines":[{"line_number":173,"context_line":"                                   availability_zone_hints\u003d[\u0027nova3\u0027])"},{"line_number":174,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_create_network_with_default_azs(self):"},{"line_number":177,"context_line":"        self._register_azs()"},{"line_number":178,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, [\u0027nova4\u0027])"},{"line_number":179,"context_line":"        res \u003d self._create_network(self.fmt, \u0027net\u0027, True)"}],"source_content_type":"text/x-python","patch_set":7,"id":"6fe062e1_8856e4af","line":176,"range":{"start_line":176,"start_character":8,"end_line":176,"end_character":44},"updated":"2021-08-03 01:42:01.000000000","message":"The case name is not clear here, it should be something like this : \"test_create_network_with_default_az_not_existing\".\n\nOr align with the following case: \n\"test_create_network_with_default_azs_not_existing_az\"","commit_id":"a15a35a5a64f2cd63dee40e16a62b39b1db09c89"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"21c15c26ef1a3dcca6bb2713ea9586301aeb823f","unresolved":true,"context_lines":[{"line_number":183,"context_line":"        self._register_azs()"},{"line_number":184,"context_line":"        az_hints \u003d [\u0027nova1\u0027, \u0027nova2\u0027]"},{"line_number":185,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, az_hints)"},{"line_number":186,"context_line":"        with self.network() as router:"},{"line_number":187,"context_line":"            res \u003d self._show(\u0027networks\u0027, router[\u0027network\u0027][\u0027id\u0027])"},{"line_number":188,"context_line":"            self.assertCountEqual(az_hints,"},{"line_number":189,"context_line":"                                  res[\u0027network\u0027][\u0027availability_zone_hints\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ae3df05_f6674053","line":186,"range":{"start_line":186,"start_character":31,"end_line":186,"end_character":37},"updated":"2021-08-03 07:23:17.000000000","message":"network","commit_id":"4b6356cbbd7bb963365606c6f57a5ee2c52af581"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"989d401ae51016fee7acc4786872b268d979b70a","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        self._register_azs()"},{"line_number":184,"context_line":"        az_hints \u003d [\u0027nova1\u0027, \u0027nova2\u0027]"},{"line_number":185,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, az_hints)"},{"line_number":186,"context_line":"        with self.network() as router:"},{"line_number":187,"context_line":"            res \u003d self._show(\u0027networks\u0027, router[\u0027network\u0027][\u0027id\u0027])"},{"line_number":188,"context_line":"            self.assertCountEqual(az_hints,"},{"line_number":189,"context_line":"                                  res[\u0027network\u0027][\u0027availability_zone_hints\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"6804c792_ba72110b","line":186,"range":{"start_line":186,"start_character":31,"end_line":186,"end_character":37},"in_reply_to":"9ae3df05_f6674053","updated":"2021-08-03 08:25:32.000000000","message":"Done","commit_id":"4b6356cbbd7bb963365606c6f57a5ee2c52af581"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"88cd4cc230f8e58a69eb83880e7e0b043d842def","unresolved":true,"context_lines":[{"line_number":24,"context_line":"from neutron.tests.common import helpers"},{"line_number":25,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_config import cfg"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class AZExtensionManager(object):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bc21ce59_24be836a","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":27},"updated":"2021-08-04 05:31:23.000000000","message":"ditto","commit_id":"cc1156a26c7865b638db1f7b02b67c5c81515187"}],"neutron/tests/unit/extensions/test_router_availability_zone.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"160ea7fd6a5cf6018a6a003863d91a132878ce6d","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        return \"L3 Routing Service Plugin for testing\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class TestAZRouterCase(test_az.AZTestCommon, test_l3.L3NatTestCaseMixin):"},{"line_number":50,"context_line":"    def setUp(self):"},{"line_number":51,"context_line":"        plugin \u003d (\u0027neutron.tests.unit.extensions.\u0027"},{"line_number":52,"context_line":"                  \u0027test_availability_zone.AZTestPlugin\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"febcdc68_ab10a153","line":49,"range":{"start_line":49,"start_character":6,"end_line":49,"end_character":22},"updated":"2021-07-29 03:46:01.000000000","message":"Plz add test cases here.","commit_id":"b3684a9fb654943fcdfe8dceae08d97cbd6040a3"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"c122aa8764d2a9b393b07b1d8f275c6abfd4d1fb","unresolved":true,"context_lines":[{"line_number":101,"context_line":"        self._register_azs()"},{"line_number":102,"context_line":"        az_hints \u003d [\u0027nova2\u0027, \u0027nova3\u0027]"},{"line_number":103,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, az_hints)"},{"line_number":104,"context_line":"        self._register_azs()"},{"line_number":105,"context_line":"        with self.router() as router:"},{"line_number":106,"context_line":"            res \u003d self._show(\u0027routers\u0027, router[\u0027router\u0027][\u0027id\u0027])"},{"line_number":107,"context_line":"            self.assertCountEqual(az_hints,"}],"source_content_type":"text/x-python","patch_set":4,"id":"25b3050a_fe57b3ff","line":104,"updated":"2021-08-02 03:38:06.000000000","message":"self._register_azs() called twice. Seems unneccessary","commit_id":"b15f6b3a67a516a4594a97dc784838a307820702"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"e911c716f55b9eb01be9fe0808cda9b54fbf4792","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        self._register_azs()"},{"line_number":102,"context_line":"        az_hints \u003d [\u0027nova2\u0027, \u0027nova3\u0027]"},{"line_number":103,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, az_hints)"},{"line_number":104,"context_line":"        self._register_azs()"},{"line_number":105,"context_line":"        with self.router() as router:"},{"line_number":106,"context_line":"            res \u003d self._show(\u0027routers\u0027, router[\u0027router\u0027][\u0027id\u0027])"},{"line_number":107,"context_line":"            self.assertCountEqual(az_hints,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a6a5324_ec21bcfd","line":104,"in_reply_to":"25b3050a_fe57b3ff","updated":"2021-08-02 07:02:29.000000000","message":"Done","commit_id":"b15f6b3a67a516a4594a97dc784838a307820702"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c87d0f555c0025c718ca9a956cde754543dfcb86","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                                  availability_zone_hints\u003d[\u0027nova4\u0027])"},{"line_number":92,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_router_with_default_availability_zones(self):"},{"line_number":95,"context_line":"        self._register_azs()"},{"line_number":96,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, [\u0027nova4\u0027])"},{"line_number":97,"context_line":"        res \u003d self._create_router(self.fmt, \u0027tenant_id\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"97862d0d_5e59bf93","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":58},"updated":"2021-08-03 01:42:01.000000000","message":"\"test_create_router_with_default_az_not_existing\"\n\nOr\n\n\"test_create_router_with_default_availability_zones_not_existing_az\"","commit_id":"a15a35a5a64f2cd63dee40e16a62b39b1db09c89"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"a08e3e14efe2f5e81d90eba6afb714eca02b7c32","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                                  availability_zone_hints\u003d[\u0027nova4\u0027])"},{"line_number":92,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_router_with_default_availability_zones(self):"},{"line_number":95,"context_line":"        self._register_azs()"},{"line_number":96,"context_line":"        cfg.CONF.set_default(\u0027default_availability_zones\u0027, [\u0027nova4\u0027])"},{"line_number":97,"context_line":"        res \u003d self._create_router(self.fmt, \u0027tenant_id\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"39165666_ac3cabdd","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":58},"in_reply_to":"97862d0d_5e59bf93","updated":"2021-08-03 02:13:20.000000000","message":"Done","commit_id":"a15a35a5a64f2cd63dee40e16a62b39b1db09c89"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"88cd4cc230f8e58a69eb83880e7e0b043d842def","unresolved":true,"context_lines":[{"line_number":23,"context_line":"from neutron.tests.unit.extensions import test_availability_zone as test_az"},{"line_number":24,"context_line":"from neutron.tests.unit.extensions import test_l3"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class AZL3ExtensionManager(test_az.AZExtensionManager):"}],"source_content_type":"text/x-python","patch_set":10,"id":"57a7f848_e2eea785","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":27},"updated":"2021-08-04 05:31:23.000000000","message":"This should be moved to after line 17.\n\nTips: there are 3 sections of the imports,\n1. python built-in libs\n2. 3rd part libs\n3. project (neutron) internal imports\n\nI did not find the doc closes to this, but this one has some rules about the order and styles.\n[1] https://docs.openstack.org/hacking/latest/user/hacking.html#imports","commit_id":"cc1156a26c7865b638db1f7b02b67c5c81515187"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"2d9d1e3b7b53a49a14be37387349d8eca9bc9d26","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.tests.unit.extensions import test_availability_zone as test_az"},{"line_number":24,"context_line":"from neutron.tests.unit.extensions import test_l3"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class AZL3ExtensionManager(test_az.AZExtensionManager):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ec27cfc7_531c0d3b","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":27},"in_reply_to":"57a7f848_e2eea785","updated":"2021-08-04 05:58:00.000000000","message":"Done","commit_id":"cc1156a26c7865b638db1f7b02b67c5c81515187"}]}
