)]}'
{"networking_ovn/common/maintenance.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"4e73ae9e36a448ed2466f95800383a058aebc40d","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    def migrate_to_port_groups(self):"},{"line_number":225,"context_line":"        \"\"\"Perform the migration from Address Sets to Port Groups. \"\"\""},{"line_number":226,"context_line":"        # TODO(dalvarez): Remove this in U cycle when we\u0027re sure that all"},{"line_number":227,"context_line":"        # versions are running using Port Groups (and OVS \u003e\u003d 2.10)."},{"line_number":228,"context_line":"        admin_context \u003d n_context.get_admin_context()"},{"line_number":229,"context_line":"        nb_sync \u003d ovn_db_sync.OvnNbSynchronizer("},{"line_number":230,"context_line":"            self._ovn_client._plugin, self._nb_idl, self._ovn_client._sb_idl,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_6c6e032d","line":227,"updated":"2018-09-06 08:31:21.000000000","message":"Let\u0027s check for the lock prior to running it, so we make sure that only one maintenance thread execute the code.\n\n  if not self.has_lock:\n      return","commit_id":"1fc5629df41b463fd974412cc6e23ac6895f8854"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"ae2cc2a9180f3aaa26e51b4d991cd3f8d0ac7877","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    def migrate_to_port_groups(self):"},{"line_number":225,"context_line":"        \"\"\"Perform the migration from Address Sets to Port Groups. \"\"\""},{"line_number":226,"context_line":"        # TODO(dalvarez): Remove this in U cycle when we\u0027re sure that all"},{"line_number":227,"context_line":"        # versions are running using Port Groups (and OVS \u003e\u003d 2.10)."},{"line_number":228,"context_line":"        admin_context \u003d n_context.get_admin_context()"},{"line_number":229,"context_line":"        nb_sync \u003d ovn_db_sync.OvnNbSynchronizer("},{"line_number":230,"context_line":"            self._ovn_client._plugin, self._nb_idl, self._ovn_client._sb_idl,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_ef98c569","line":227,"in_reply_to":"3f79a3b5_6c6e032d","updated":"2018-09-06 09:06:45.000000000","message":"ops of course, this was the main point of this patch! dumb me","commit_id":"1fc5629df41b463fd974412cc6e23ac6895f8854"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"62a8f301988d6f735bdb7dbd038a61b0c4a4ea37","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \"\"\"Perform the migration from Address Sets to Port Groups. \"\"\""},{"line_number":226,"context_line":"        # TODO(dalvarez): Remove this in U cycle when we\u0027re sure that all"},{"line_number":227,"context_line":"        # versions are running using Port Groups (and OVS \u003e\u003d 2.10)."},{"line_number":228,"context_line":"        "},{"line_number":229,"context_line":"        # Only the worker holding a valid lock within OVSDB will run"},{"line_number":230,"context_line":"        # this periodic"},{"line_number":231,"context_line":"        if not self.has_lock:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_efff6563","line":228,"updated":"2018-09-06 09:36:53.000000000","message":"Tab","commit_id":"253fbd67859e5443ac1dfa82d422b75c4a5140dd"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"38e0a0e4b1c2cb1f6a602fcd93361ff0ff337831","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \"\"\"Perform the migration from Address Sets to Port Groups. \"\"\""},{"line_number":226,"context_line":"        # TODO(dalvarez): Remove this in U cycle when we\u0027re sure that all"},{"line_number":227,"context_line":"        # versions are running using Port Groups (and OVS \u003e\u003d 2.10)."},{"line_number":228,"context_line":"        "},{"line_number":229,"context_line":"        # Only the worker holding a valid lock within OVSDB will run"},{"line_number":230,"context_line":"        # this periodic"},{"line_number":231,"context_line":"        if not self.has_lock:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_12bd24d7","line":228,"in_reply_to":"3f79a3b5_efff6563","updated":"2018-09-06 09:46:59.000000000","message":"oppppsss","commit_id":"253fbd67859e5443ac1dfa82d422b75c4a5140dd"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"62a8f301988d6f735bdb7dbd038a61b0c4a4ea37","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        # Only the worker holding a valid lock within OVSDB will run"},{"line_number":230,"context_line":"        # this periodic"},{"line_number":231,"context_line":"        if not self.has_lock:"},{"line_number":232,"context_line":"            return"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        admin_context \u003d n_context.get_admin_context()"},{"line_number":235,"context_line":"        nb_sync \u003d ovn_db_sync.OvnNbSynchronizer("}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_ef9e8504","line":232,"updated":"2018-09-06 09:36:53.000000000","message":"Sorry should have mentioned this in the previous review. I have some questions about the behavior here.\n\nIf the method has no lock it will still run every 10 seconds until it gets a lock so it can run the code below. Is that the behavior we want or would we prefer to check for the lock, and, if there\u0027s no lock we would just raise NeverAgain() ? (Keep in mind there\u0027s a log for every time this is executed, so it can cause some noise there)\n\nI know we talked on IRC about it before, but I think we may need to put some more thought into it.","commit_id":"253fbd67859e5443ac1dfa82d422b75c4a5140dd"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"38e0a0e4b1c2cb1f6a602fcd93361ff0ff337831","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        # Only the worker holding a valid lock within OVSDB will run"},{"line_number":230,"context_line":"        # this periodic"},{"line_number":231,"context_line":"        if not self.has_lock:"},{"line_number":232,"context_line":"            return"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        admin_context \u003d n_context.get_admin_context()"},{"line_number":235,"context_line":"        nb_sync \u003d ovn_db_sync.OvnNbSynchronizer("}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_9295b442","line":232,"in_reply_to":"3f79a3b5_ef9e8504","updated":"2018-09-06 09:46:59.000000000","message":"yeah good point. let\u0027s do the following then if you guys agree:\n\n- Is PG supported and already migrated?\n- Yes: raise NeverAgain (no more noise in logs, no more attempts).\n- No:  Migrate if we have the lock. Return otherwise and retry in 10 secs.\n\nIn the event that another instance has migrated to port groups, we won\u0027t attempt again. In the event that nobody has migrated and we get the lock, we\u0027ll perform the migration and that\u0027s it.\n\nSounds good?","commit_id":"253fbd67859e5443ac1dfa82d422b75c4a5140dd"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"760cc0f29c29f497c4e525fe36ea537f3e25ddb3","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            self._ovn_client._plugin, self._nb_idl, self._ovn_client._sb_idl,"},{"line_number":243,"context_line":"            None, None)"},{"line_number":244,"context_line":"        nb_sync.migrate_to_port_groups(admin_context)"},{"line_number":245,"context_line":"        raise periodics.NeverAgain()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @periodics.periodic(spacing\u003dDB_CONSISTENCY_CHECK_INTERVAL,"},{"line_number":248,"context_line":"                        run_immediately\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_00462e7c","line":245,"updated":"2018-09-06 12:10:38.000000000","message":"Btw, let\u0027s not block on this. But if u have time please add some unittests for this at https://github.com/openstack/networking-ovn/blob/master/networking_ovn/tests/unit/common/test_maintenance.py\n\nOur coverage job is already below the acceptable %.","commit_id":"ca20505691a055c9e4859207bcc891ff234ee49b"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"19ff20d5abbbe497ac4d3bb9de3837cf8faf42ea","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            self._ovn_client._plugin, self._nb_idl, self._ovn_client._sb_idl,"},{"line_number":243,"context_line":"            None, None)"},{"line_number":244,"context_line":"        nb_sync.migrate_to_port_groups(admin_context)"},{"line_number":245,"context_line":"        raise periodics.NeverAgain()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @periodics.periodic(spacing\u003dDB_CONSISTENCY_CHECK_INTERVAL,"},{"line_number":248,"context_line":"                        run_immediately\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_2f8ea078","line":245,"in_reply_to":"3f79a3b5_00462e7c","updated":"2018-09-07 13:28:54.000000000","message":"Done","commit_id":"ca20505691a055c9e4859207bcc891ff234ee49b"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"3b4328cdb7302f418a0083c7605d4e830fa7c1ab","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        else:"},{"line_number":218,"context_line":"            self._ovn_client.update_subnet(sn_db_obj, n_db_obj)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    # The migration will run just once per neutron-server instance. If the lock"},{"line_number":221,"context_line":"    # is held by some other neutron-server instance in the cloud, we\u0027ll attempt"},{"line_number":222,"context_line":"    # to perform the migration every 10 seconds until completed."},{"line_number":223,"context_line":"    @periodics.periodic(spacing\u003d10, run_immediately\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_bb639941","line":220,"range":{"start_line":220,"start_character":25,"end_line":220,"end_character":66},"updated":"2018-09-11 05:10:59.000000000","message":"Question( just to understand the fundamentals ):\nWhy do we need to run it PER neutron-server?\nIf the migration is being done on the DB side, wont it be enough if we do it from one server only?","commit_id":"315fef4b18ffb4b83b0902fc6903874fef642dc9"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3947896ceed85b0845bfcd2e676bb9937501425c","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        else:"},{"line_number":218,"context_line":"            self._ovn_client.update_subnet(sn_db_obj, n_db_obj)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    # The migration will run just once per neutron-server instance. If the lock"},{"line_number":221,"context_line":"    # is held by some other neutron-server instance in the cloud, we\u0027ll attempt"},{"line_number":222,"context_line":"    # to perform the migration every 10 seconds until completed."},{"line_number":223,"context_line":"    @periodics.periodic(spacing\u003d10, run_immediately\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8a213f52","line":220,"range":{"start_line":220,"start_character":25,"end_line":220,"end_character":66},"in_reply_to":"3f79a3b5_bb639941","updated":"2018-09-28 12:55:44.000000000","message":"It\u0027s missing some information right there. As you rightly pointed out, we just need to run once.\n\nI think what daniel meant there is to say that this migrate_port_groups() will be executed once per neutron server BUT it will be no-op if:\n\n1. Migration is already done (see L231-233)\n\n2. Or, it doesn\u0027t have a valid lock (see L237-238)\n\nSo, at the end of the day, only 1 neutron-server will be able to execute thru the whole execution body of this method from beginning to end (L245) and do the migration.","commit_id":"315fef4b18ffb4b83b0902fc6903874fef642dc9"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"cb2092a94f54907c6a8d8e4311a93b13b061c538","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        else:"},{"line_number":218,"context_line":"            self._ovn_client.update_subnet(sn_db_obj, n_db_obj)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    # The migration will run just once per neutron-server instance. If the lock"},{"line_number":221,"context_line":"    # is held by some other neutron-server instance in the cloud, we\u0027ll attempt"},{"line_number":222,"context_line":"    # to perform the migration every 10 seconds until completed."},{"line_number":223,"context_line":"    @periodics.periodic(spacing\u003d10, run_immediately\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_6ac0637d","line":220,"range":{"start_line":220,"start_character":25,"end_line":220,"end_character":66},"in_reply_to":"3f79a3b5_bb639941","updated":"2018-09-28 12:52:02.000000000","message":"Well we want to run it once in the cloud but keep in mind that multiple instances will run there and all of neutron-servers will have this code so only one should perform the migration.\n\nRegarding your question, how would you ensure that only one server does it? This should cover update/upgrade scenarios as well where several instances are running in the cluster and you will update them in a \u0027staged\u0027 fashion.","commit_id":"315fef4b18ffb4b83b0902fc6903874fef642dc9"}],"networking_ovn/ovn_db_sync.py":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"69b6daaf286cc955309818da0196cbe9ab9a0ac6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        LOG.debug(\"Starting OVN-Northbound DB sync process\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":89,"context_line":"        self.migrate_to_port_groups(ctx)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.sync_address_sets(ctx)"},{"line_number":92,"context_line":"        self.sync_networks_ports_and_dhcp_opts(ctx)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_4f51b9d8","side":"PARENT","line":89,"range":{"start_line":89,"start_character":13,"end_line":89,"end_character":35},"updated":"2018-09-06 08:53:27.000000000","message":"Why this is deleted from here ? I am a little confused","commit_id":"6de5e20ed6ed55e677a85ee6dd75341c394d446c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"84db2b19d004b723f2d04befc4799b8731ca8871","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        LOG.debug(\"Starting OVN-Northbound DB sync process\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":89,"context_line":"        self.migrate_to_port_groups(ctx)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.sync_address_sets(ctx)"},{"line_number":92,"context_line":"        self.sync_networks_ports_and_dhcp_opts(ctx)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_4f745936","side":"PARENT","line":89,"range":{"start_line":89,"start_character":13,"end_line":89,"end_character":35},"in_reply_to":"3f79a3b5_4f51b9d8","updated":"2018-09-06 09:06:19.000000000","message":"Because we don\u0027t want this anymore to be migrated from the sync code / script. The sync code runs at the beginning and not anymore so it could happen that it won\u0027t ever run from neutron-server itself when running multiple controllers on an update/upgrade.\nImagine situation where 3 neutron-servers running an old version and you plan to update to neutron-server with PG supports.\n\nYou update controller 1 and migration task executes but won\u0027t do nothing since it doesn\u0027t hold the OVSDB lock\nYou update controller 2 and migration task executes but won\u0027t do nothing since it doesn\u0027t hold the OVSDB lock\nYou update controller 3 and migration task executes but won\u0027t do nothing since it doesn\u0027t hold the OVSDB lock\n\nResult: Migration to PGs hasn\u0027t been performed but neutron-server code relies on PGs to be in place since the underlying schema supports it.\n\nThe proposed solution will be running it from the Maintenance task. This way, it\u0027ll attempt to execute at the beginning as well and it perhaps won\u0027t run for the same reason (OVSDB lock held by another instance). However, it\u0027s gonna be scheduled to execute after X seconds so the migration will be performed. Once done it won\u0027t ever run again.\n\nDoes it make sense?","commit_id":"6de5e20ed6ed55e677a85ee6dd75341c394d446c"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"17257d62c6fe9a89cae7e3e24b35c519fc8bb8fc","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        LOG.debug(\"Starting OVN-Northbound DB sync process\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":89,"context_line":"        self.migrate_to_port_groups(ctx)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.sync_address_sets(ctx)"},{"line_number":92,"context_line":"        self.sync_networks_ports_and_dhcp_opts(ctx)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_cf42a968","side":"PARENT","line":89,"range":{"start_line":89,"start_character":13,"end_line":89,"end_character":35},"in_reply_to":"3f79a3b5_4f745936","updated":"2018-09-06 09:18:39.000000000","message":"Do we run this code from the command line some times?, if that\u0027s the case, can we find a way to run this in the cmdline case?","commit_id":"6de5e20ed6ed55e677a85ee6dd75341c394d446c"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"456ea1a6be575bad8cd08991d5408e0e412abf2d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        LOG.debug(\"Starting OVN-Northbound DB sync process\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":89,"context_line":"        self.migrate_to_port_groups(ctx)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.sync_address_sets(ctx)"},{"line_number":92,"context_line":"        self.sync_networks_ports_and_dhcp_opts(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_4f56992c","side":"PARENT","line":89,"updated":"2018-09-06 09:19:37.000000000","message":"question: the cmdline case for the sync tool, lives somewhere else?","commit_id":"6de5e20ed6ed55e677a85ee6dd75341c394d446c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"62a8f301988d6f735bdb7dbd038a61b0c4a4ea37","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        LOG.debug(\"Starting OVN-Northbound DB sync process\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":89,"context_line":"        self.migrate_to_port_groups(ctx)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.sync_address_sets(ctx)"},{"line_number":92,"context_line":"        self.sync_networks_ports_and_dhcp_opts(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_b246b020","side":"PARENT","line":89,"in_reply_to":"3f79a3b5_4f56992c","updated":"2018-09-06 09:36:53.000000000","message":"Good point, yeah without this line the migration CLI won\u0027t run the migrate_to_port_groups()","commit_id":"6de5e20ed6ed55e677a85ee6dd75341c394d446c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"38e0a0e4b1c2cb1f6a602fcd93361ff0ff337831","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        LOG.debug(\"Starting OVN-Northbound DB sync process\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":89,"context_line":"        self.migrate_to_port_groups(ctx)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.sync_address_sets(ctx)"},{"line_number":92,"context_line":"        self.sync_networks_ports_and_dhcp_opts(ctx)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_b2e23000","side":"PARENT","line":89,"in_reply_to":"3f79a3b5_b246b020","updated":"2018-09-06 09:46:59.000000000","message":"nonono\nim also working on https://review.openstack.org/#/c/599426/\nThis will enhance the sync script to perform resource-by-resource sync taking port groups into account","commit_id":"6de5e20ed6ed55e677a85ee6dd75341c394d446c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"3b4328cdb7302f418a0083c7605d4e830fa7c1ab","unresolved":false,"context_lines":[{"line_number":993,"context_line":"        # 4. Delete all the ACLs in every Logical Switch (Neutron network)."},{"line_number":994,"context_line":""},{"line_number":995,"context_line":"        # If Port Groups are not supported or we\u0027ve already migrated, return"},{"line_number":996,"context_line":"        if (not self.ovn_api.is_port_groups_supported() or"},{"line_number":997,"context_line":"                not self.ovn_api.get_address_sets()):"},{"line_number":998,"context_line":"            return"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        LOG.debug(\u0027Port Groups Migration task started\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_bbc87921","line":997,"range":{"start_line":996,"start_character":8,"end_line":997,"end_character":53},"updated":"2018-09-11 05:10:59.000000000","message":"Why not put this in a function of sorts and call it, if it is being used several times in the code?\nJust a point, though I know it wont make much impact :)","commit_id":"315fef4b18ffb4b83b0902fc6903874fef642dc9"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"cb2092a94f54907c6a8d8e4311a93b13b061c538","unresolved":false,"context_lines":[{"line_number":993,"context_line":"        # 4. Delete all the ACLs in every Logical Switch (Neutron network)."},{"line_number":994,"context_line":""},{"line_number":995,"context_line":"        # If Port Groups are not supported or we\u0027ve already migrated, return"},{"line_number":996,"context_line":"        if (not self.ovn_api.is_port_groups_supported() or"},{"line_number":997,"context_line":"                not self.ovn_api.get_address_sets()):"},{"line_number":998,"context_line":"            return"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        LOG.debug(\u0027Port Groups Migration task started\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_4a71e776","line":997,"range":{"start_line":996,"start_character":8,"end_line":997,"end_character":53},"in_reply_to":"3f79a3b5_bbc87921","updated":"2018-09-28 12:52:02.000000000","message":"just twice, no? I can wrap it though, just thought that it was perhaps good to have it like this so that reader knows what\u0027s going on","commit_id":"315fef4b18ffb4b83b0902fc6903874fef642dc9"}],"networking_ovn/tests/unit/common/test_maintenance.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"855127b11a430f85f386ed9ba4ecc902973f7832","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"@mock.patch.object(maintenance.DBInconsistenciesPeriodics,"},{"line_number":32,"context_line":"                   \u0027has_lock\u0027, mock.PropertyMock(return_value\u003dTrue))"},{"line_number":33,"context_line":"class TestDBInconsistenciesPeriodics(db_base.DBTestCase,"},{"line_number":34,"context_line":"                                     test_sg.Ml2SecurityGroupsTestCase):"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_6f4b382a","line":32,"range":{"start_line":32,"start_character":31,"end_line":32,"end_character":67},"updated":"2018-09-07 21:34:07.000000000","message":"I added this because the previous code was wrong, it was just returning \u003cbound method DBInconsistenciesPeriodics.\u003clambda\u003e of \u003cnetworking_ovn.common.maintenance.DBInconsistenciesPeriodics object at 0x7efdfbccbe10\u003e\u003e\ninstead of True","commit_id":"315fef4b18ffb4b83b0902fc6903874fef642dc9"}]}
