)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"31c508e13123846fc89cd1fc4965da6e8ccfe946","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"044ea6d3_449041d2","updated":"2023-01-13 17:53:45.000000000","message":"I will be testing this soon in a local environment","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6bc885e314b684360c85c0039ca47a64f2407819","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7d42af9e_a0001b50","updated":"2023-01-13 17:52:37.000000000","message":"Thanks Rodolfo,\n\nFew nits inline and a suggestions regarding Chassis_Private. Overall this looks quite clean! Thanks","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"94937d901d64e779f0a13a905cfc3a58baca5824","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"49ecf4ac_48900505","updated":"2023-01-24 23:47:56.000000000","message":"Pretty clear indeed, as Lucas said","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6734731cec9f7e53979883a1146a180311227b2a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"74d5f4aa_3e24afb3","updated":"2023-01-23 12:32:36.000000000","message":"Thanks Rodolfo! Code looks pretty clean to me. The chassis_private fallback is going to be removed in another patch so it LGTM!","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"5db04b5b5c7ec1b29010aa51a048665f81944ad0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bd1e67c2_5206065e","updated":"2023-01-23 12:56:14.000000000","message":"Untested locally but LGTM","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"83db2b7382efaf484952793ca4626f5edafa5f7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5120c8d0_6ff40b1b","updated":"2023-01-25 09:54:04.000000000","message":"recheck unrelated zuul errors","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"af11c65efa94bdebc094bae96514e1a1a38907ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"06378ffa_08b61ee4","updated":"2023-01-27 11:28:00.000000000","message":"Hi, thanks for the patch rodolfo. Please check Takashi\u0027s comment on setup.conf. Other than that it LGTM and I can change the vote to +2","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"eb88cac31bc03b516cb61b83e7dc58512b16bf69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"aa884c57_10f720db","updated":"2023-01-25 13:59:22.000000000","message":"Rebased on top of [1]. This patch was removing the netlink library import and this is why it was failing. Please check the diff between PS8 and PS9.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/870963","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b3615f47c4494da900a8301750957524c90023e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"408a5c24_3ddc77af","updated":"2023-01-25 18:17:15.000000000","message":"recheck grenade","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"07b1055a90c7969199aa207a0429adb585e39c3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4994a349_928d6f9d","updated":"2023-01-25 17:21:37.000000000","message":"recheck neutron-ovs-grenade-dvr-multinode","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"b4402a9bee49e5c88bd3cad7ad6dde3e204e54c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"67ab2d2a_3df04538","updated":"2023-02-01 04:28:47.000000000","message":"It felt little weird that we are copying bunch of code from ovn_metadata_agent from the maintenance prospective, but I guess its ok. It keeps the things simplier now and will make ovn_medata_agent deprication easier in the future.\nThanks for doing this!","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5ede797ad755926f76986770c3c10844747b2b6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3da5f3d4_a62189d0","updated":"2023-01-31 11:40:54.000000000","message":"recheck - devstack failed due to pmlogger.service failed to start","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c4eafaf7ee1f334dd435a5599a07100fbd466f08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"57883f48_63ff67cf","updated":"2023-01-31 09:48:50.000000000","message":"recheck fullstack","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a568a3ab3887946e7c60b94173fdcfd466266b23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ec929e6d_6121be8d","updated":"2023-01-30 14:13:36.000000000","message":"recheck fullstack","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"5f7131d0b0957d2c5eff3e741d4d3f9cda486f8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1755d676_2eb1d1bf","updated":"2023-01-31 22:37:11.000000000","message":"recheck gate tempest-integrated-networking","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d640fdda1b12416740df9de853b5955021cb7644","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ecd520fd_afea8426","updated":"2023-01-30 09:15:20.000000000","message":"recheck multiple zuul errors","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1f6d26766cfd628547814d5acf338486094c6af2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"94c26d59_52fe537c","updated":"2023-01-31 13:50:34.000000000","message":"recheck rally timeout","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1bcfb373adc9fa4624ef7cedea8c55e587208e37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"625a84b0_555053a7","updated":"2023-02-01 14:08:37.000000000","message":"Shouldn\u0027t this patch have some release note? We are adding completely new agent to Neutron so IMO it deserves for some release note 😊","commit_id":"ddd9619c67721a21fdb1cf6477f3be0a9e52a1a8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2f085a4aaa2d7d0446df652c01a83f512464ed5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"675f3cd4_d1b8090c","updated":"2023-02-01 11:37:12.000000000","message":"recheck fullstack timeout","commit_id":"ddd9619c67721a21fdb1cf6477f3be0a9e52a1a8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"809940ad191e00fd86fc57ce3e31500e162c3cef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"740af5ab_290942a8","in_reply_to":"625a84b0_555053a7","updated":"2023-02-01 14:21:05.000000000","message":"I thought about it but then I saw that the next patch in the series, the one that actually adds the feature to this new agent does have a release note [0]. I was fine with that because the code in this patch is basically the agent\u0027s skeleton.\n\n[0] https://review.opendev.org/c/openstack/neutron/+/870115/11/releasenotes/notes/ovn-agent-qos-hwol-extension-a282afcf3f005c80.yaml","commit_id":"ddd9619c67721a21fdb1cf6477f3be0a9e52a1a8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"26e0c2922e6dc53368ecf0b89dd13e58b0022d17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ff052ce0_80170f94","in_reply_to":"740af5ab_290942a8","updated":"2023-02-01 14:33:04.000000000","message":"Exactly, this patch is only adding a skeleton, something without any functionality. In any case, because this is an important piece of code, I\u0027ll add it.","commit_id":"ddd9619c67721a21fdb1cf6477f3be0a9e52a1a8"}],"etc/oslo-config-generator/ovn_neutron_agent.ini":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e324cd65af4af5744f2b8fae25d7e5bd97e82123","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"output_file \u003d etc/ovn_neutron_agent.ini.sample"},{"line_number":3,"context_line":"wrap_width \u003d 79"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"namespace \u003d neutron.ovn.agent"}],"source_content_type":"text/x-properties","patch_set":9,"id":"d7f96e05_316a69b5","line":2,"range":{"start_line":2,"start_character":18,"end_line":2,"end_character":46},"updated":"2023-01-27 05:58:43.000000000","message":"(This is not a blocker but just a quick question)\n\nwondering we\u0027d rather want to use \"ovn_agent.init.sample\" to make it more consistent with the files for the other agents such as ovs-agent or sriov-agent.","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"edeca1283b1096b1bff25fcaec564ad9e9502129","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"output_file \u003d etc/ovn_neutron_agent.ini.sample"},{"line_number":3,"context_line":"wrap_width \u003d 79"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"namespace \u003d neutron.ovn.agent"}],"source_content_type":"text/x-properties","patch_set":9,"id":"12107538_3161dd70","line":2,"range":{"start_line":2,"start_character":18,"end_line":2,"end_character":46},"in_reply_to":"61538762_1b3ef418","updated":"2023-01-27 17:49:00.000000000","message":"Done","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fb56cc4a681270bc713025f6f17f0d9091c90c42","unresolved":true,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"output_file \u003d etc/ovn_neutron_agent.ini.sample"},{"line_number":3,"context_line":"wrap_width \u003d 79"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"namespace \u003d neutron.ovn.agent"}],"source_content_type":"text/x-properties","patch_set":9,"id":"61538762_1b3ef418","line":2,"range":{"start_line":2,"start_character":18,"end_line":2,"end_character":46},"in_reply_to":"d7f96e05_316a69b5","updated":"2023-01-27 06:00:22.000000000","message":"and if we go for that path then probably this should be placed in the etc/neutron/plugins/ml2 directory.","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"af11c65efa94bdebc094bae96514e1a1a38907ce","unresolved":true,"context_lines":[{"line_number":2,"context_line":"output_file \u003d etc/ovn_neutron_agent.ini.sample"},{"line_number":3,"context_line":"wrap_width \u003d 79"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"namespace \u003d neutron.ovn.agent"},{"line_number":6,"context_line":"namespace \u003d oslo.log"}],"source_content_type":"text/x-properties","patch_set":9,"id":"5d4e0c51_1194ef1f","line":5,"updated":"2023-01-27 11:28:00.000000000","message":"Nit (probably not worth fixing)\n\nShould this be ovn.neutron.agent ? To keep consistent with how we named this agent ?","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"edeca1283b1096b1bff25fcaec564ad9e9502129","unresolved":false,"context_lines":[{"line_number":2,"context_line":"output_file \u003d etc/ovn_neutron_agent.ini.sample"},{"line_number":3,"context_line":"wrap_width \u003d 79"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"namespace \u003d neutron.ovn.agent"},{"line_number":6,"context_line":"namespace \u003d oslo.log"}],"source_content_type":"text/x-properties","patch_set":9,"id":"ff36a7db_335c4cfe","line":5,"in_reply_to":"5d4e0c51_1194ef1f","updated":"2023-01-27 17:49:00.000000000","message":"That should follow the namespace assignation convention we use in Neutron. For example:\nOVS agent: neutron.ml2.ovs.agent\nLB agent: neutron.ml2.linuxbridge.agent\nSRIOV: neutron.ml2.sriov.agent\n\nThis namespace should be neutron.ml2.ovn.agent","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"}],"neutron/agent/ovn/agent/ovn_neutron_agent.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6bc885e314b684360c85c0039ca47a64f2407819","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def run(self, event, row, old):"},{"line_number":47,"context_line":"        table \u003d (\u0027Chassis_Private\u0027 if self.ovn_agent.has_chassis_private"},{"line_number":48,"context_line":"                 else \u0027Chassis\u0027)"},{"line_number":49,"context_line":"        ext_ids \u003d {ovn_const.OVN_AGENT_NEUTRON_SB_CFG_KEY: str(row.nb_cfg)}"},{"line_number":50,"context_line":"        self.ovn_agent.sb_idl.db_set(table, self.ovn_agent.chassis,"},{"line_number":51,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"}],"source_content_type":"text/x-python","patch_set":3,"id":"81e3087f_4ad43ce4","line":48,"updated":"2023-01-13 17:52:37.000000000","message":"I don\u0027t know how further down we want to backport this but, I assume for this new work Chassis_Private will always be present, it was added back in 2020 [0]\n\n[0] https://github.com/ovn-org/ovn/commit/4adc10f58127e45b5883f2e7cb1c702720b95043","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9bee6d54d6a4b220e405abce0269d289bd6408f5","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def run(self, event, row, old):"},{"line_number":47,"context_line":"        table \u003d (\u0027Chassis_Private\u0027 if self.ovn_agent.has_chassis_private"},{"line_number":48,"context_line":"                 else \u0027Chassis\u0027)"},{"line_number":49,"context_line":"        ext_ids \u003d {ovn_const.OVN_AGENT_NEUTRON_SB_CFG_KEY: str(row.nb_cfg)}"},{"line_number":50,"context_line":"        self.ovn_agent.sb_idl.db_set(table, self.ovn_agent.chassis,"},{"line_number":51,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"}],"source_content_type":"text/x-python","patch_set":3,"id":"6790be6f_9c834f1a","line":48,"in_reply_to":"605a1d1f_a3a7cc11","updated":"2023-01-17 17:25:59.000000000","message":"Because I\u0027ve pushed now [1] and I hope it gets merged during this release, I\u0027ll remove this part.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/870621","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"58883c92016e127a1430857b2c80dffd88e4f8c4","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def run(self, event, row, old):"},{"line_number":47,"context_line":"        table \u003d (\u0027Chassis_Private\u0027 if self.ovn_agent.has_chassis_private"},{"line_number":48,"context_line":"                 else \u0027Chassis\u0027)"},{"line_number":49,"context_line":"        ext_ids \u003d {ovn_const.OVN_AGENT_NEUTRON_SB_CFG_KEY: str(row.nb_cfg)}"},{"line_number":50,"context_line":"        self.ovn_agent.sb_idl.db_set(table, self.ovn_agent.chassis,"},{"line_number":51,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"}],"source_content_type":"text/x-python","patch_set":3,"id":"605a1d1f_a3a7cc11","line":48,"in_reply_to":"81e3087f_4ad43ce4","updated":"2023-01-13 18:25:47.000000000","message":"Right, this is something we need to address in the Neutron repo. Actually I think we can now (in Antelope) add an OVN version check and prevent Neutron from running with versions older than 20.09. I\u0027ll open a bug for this.\n\nIn any case, I would prefer to remove all older compatibility code in this new bug.\n\nI\u0027m planning to backport this functionality but internally in our repositories. I have no plans to backport a RFE in the public repository.\n\nEDIT: https://bugs.launchpad.net/neutron/+bug/2002839","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6bc885e314b684360c85c0039ca47a64f2407819","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            # for older versions. If this table is not present, then raise"},{"line_number":121,"context_line":"            # the catch exception."},{"line_number":122,"context_line":"            try:"},{"line_number":123,"context_line":"                tables.remove(\u0027Chassis_Private\u0027)"},{"line_number":124,"context_line":"            except KeyError:"},{"line_number":125,"context_line":"                raise exc"},{"line_number":126,"context_line":"            self.has_chassis_private \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"1434702a_abe16fe0","line":123,"updated":"2023-01-13 17:52:37.000000000","message":"Ditto re Chassis_Private. This table was added long ago, I think it\u0027s safe to drop these checks for newer code.","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"58883c92016e127a1430857b2c80dffd88e4f8c4","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            # for older versions. If this table is not present, then raise"},{"line_number":121,"context_line":"            # the catch exception."},{"line_number":122,"context_line":"            try:"},{"line_number":123,"context_line":"                tables.remove(\u0027Chassis_Private\u0027)"},{"line_number":124,"context_line":"            except KeyError:"},{"line_number":125,"context_line":"                raise exc"},{"line_number":126,"context_line":"            self.has_chassis_private \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"55315f6a_a5dac13e","line":123,"in_reply_to":"1434702a_abe16fe0","updated":"2023-01-13 18:25:47.000000000","message":"ditto","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6bc885e314b684360c85c0039ca47a64f2407819","unresolved":true,"context_lines":[{"line_number":139,"context_line":"        LOG.info(\u0027Starting OVN Neutron Agent\u0027)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def stop(self, graceful\u003dTrue):"},{"line_number":142,"context_line":"        LOG.info(\u0027Stopping OVN neutron Agent\u0027)"},{"line_number":143,"context_line":"        super().stop(graceful)"}],"source_content_type":"text/x-python","patch_set":3,"id":"c5a8621a_531d986a","line":142,"range":{"start_line":142,"start_character":31,"end_line":142,"end_character":32},"updated":"2023-01-13 17:52:37.000000000","message":"Neutron","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"58883c92016e127a1430857b2c80dffd88e4f8c4","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        LOG.info(\u0027Starting OVN Neutron Agent\u0027)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def stop(self, graceful\u003dTrue):"},{"line_number":142,"context_line":"        LOG.info(\u0027Stopping OVN neutron Agent\u0027)"},{"line_number":143,"context_line":"        super().stop(graceful)"}],"source_content_type":"text/x-python","patch_set":3,"id":"92694e55_dadad725","line":142,"range":{"start_line":142,"start_character":31,"end_line":142,"end_character":32},"in_reply_to":"c5a8621a_531d986a","updated":"2023-01-13 18:25:47.000000000","message":"Done","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"b4402a9bee49e5c88bd3cad7ad6dde3e204e54c7","unresolved":true,"context_lines":[{"line_number":49,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class OVNNeutronAgent(service.Service):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __init__(self, conf):"},{"line_number":55,"context_line":"        super().__init__()"}],"source_content_type":"text/x-python","patch_set":10,"id":"550ae633_cb2a972f","line":52,"range":{"start_line":52,"start_character":6,"end_line":52,"end_character":21},"updated":"2023-02-01 04:28:47.000000000","message":"Sorry for nit picking but why do we need to have \"neutron\" in the name. Is it ever going to be taken out of neutron branch? Why not just \"OvnAgent\". It will also save few characters when dealing with pep8 line limits 😄","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1bcfb373adc9fa4624ef7cedea8c55e587208e37","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class OVNNeutronAgent(service.Service):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __init__(self, conf):"},{"line_number":55,"context_line":"        super().__init__()"}],"source_content_type":"text/x-python","patch_set":10,"id":"ea5c9496_ae950d2b","line":52,"range":{"start_line":52,"start_character":6,"end_line":52,"end_character":21},"in_reply_to":"4056cd66_6bc6da3f","updated":"2023-02-01 14:08:37.000000000","message":"This naming is consistent with other agents classes, like e.g. OVS agent\u0027s class is named OVSNeutronAgent. So I think it\u0027s fine to keep it like it\u0027s now, even if the naming isn\u0027t perfect 😊","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"eb129d144dfa803cfdfdc421b3ae0a35b98c0698","unresolved":true,"context_lines":[{"line_number":49,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class OVNNeutronAgent(service.Service):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __init__(self, conf):"},{"line_number":55,"context_line":"        super().__init__()"}],"source_content_type":"text/x-python","patch_set":10,"id":"4056cd66_6bc6da3f","line":52,"range":{"start_line":52,"start_character":6,"end_line":52,"end_character":21},"in_reply_to":"550ae633_cb2a972f","updated":"2023-02-01 11:51:52.000000000","message":"Hahah it makes sense to me but, atm everything is being named OVNNeutronAgent, including the file names and logs... Maybe just leave it as-is ?","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"74f2ad82d6427afa3f2c6b7b6cd0c2e10efd0be5","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                                     (\u0027external_ids\u0027, ext_ids)).execute()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class OVNNeutronAgent(service.Service):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def __init__(self, conf):"},{"line_number":55,"context_line":"        super().__init__()"}],"source_content_type":"text/x-python","patch_set":10,"id":"59f1603e_48a6abf7","line":52,"range":{"start_line":52,"start_character":6,"end_line":52,"end_character":21},"in_reply_to":"ea5c9496_ae950d2b","updated":"2023-02-01 14:47:02.000000000","message":"I am all for consistency but I also like improvements as the code matures and this is a perfect time to do it. Its much harder to fix something once it is in. \nAnyway, this is just my nit pick which I wanted to highlight :) You can drop this comment if you like.","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"}],"neutron/agent/ovn/agent/ovsdb.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6bc885e314b684360c85c0039ca47a64f2407819","unresolved":true,"context_lines":[{"line_number":121,"context_line":"    \"\"\"Return the external_ids:ovn-bridge value of the Open_vSwitch table."},{"line_number":122,"context_line":"    This is the OVS bridge used to plug the metadata ports to."},{"line_number":123,"context_line":"    If the key doesn\u0027t exist, this method will return \u0027br-int\u0027 as default."},{"line_number":124,"context_line":"    \"\"\""},{"line_number":125,"context_line":"    ext_ids \u003d ovs_idl.db_get(\u0027Open_vSwitch\u0027, \u0027.\u0027, \u0027external_ids\u0027).execute()"},{"line_number":126,"context_line":"    try:"},{"line_number":127,"context_line":"        return ext_ids[\u0027ovn-bridge\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9b2e642a_ad91e4ec","line":124,"updated":"2023-01-13 17:52:37.000000000","message":"Since this is new code, perhaps we can adhere to PEP 257 for multi-line docstring conventions \n\nhttps://peps.python.org/pep-0257/#multi-line-docstrings","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"58883c92016e127a1430857b2c80dffd88e4f8c4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    \"\"\"Return the external_ids:ovn-bridge value of the Open_vSwitch table."},{"line_number":122,"context_line":"    This is the OVS bridge used to plug the metadata ports to."},{"line_number":123,"context_line":"    If the key doesn\u0027t exist, this method will return \u0027br-int\u0027 as default."},{"line_number":124,"context_line":"    \"\"\""},{"line_number":125,"context_line":"    ext_ids \u003d ovs_idl.db_get(\u0027Open_vSwitch\u0027, \u0027.\u0027, \u0027external_ids\u0027).execute()"},{"line_number":126,"context_line":"    try:"},{"line_number":127,"context_line":"        return ext_ids[\u0027ovn-bridge\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"edfbc770_f014161f","line":124,"in_reply_to":"9b2e642a_ad91e4ec","updated":"2023-01-13 18:25:47.000000000","message":"Done","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"5db04b5b5c7ec1b29010aa51a048665f81944ad0","unresolved":true,"context_lines":[{"line_number":27,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class MonitorAgentOvnSbIdl(ovsdb_monitor.OvnIdl):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    SCHEMA \u003d \u0027OVN_Southbound\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3dd993ef_82df35c5","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":26},"updated":"2023-01-23 12:56:14.000000000","message":"Southbound is almost identical to Northbound class (except L46-49 from quick check), may be worth factor the code?","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"94937d901d64e779f0a13a905cfc3a58baca5824","unresolved":false,"context_lines":[{"line_number":27,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class MonitorAgentOvnSbIdl(ovsdb_monitor.OvnIdl):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    SCHEMA \u003d \u0027OVN_Southbound\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7d6f63dc_a75443fb","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":26},"in_reply_to":"3483c631_2efff07c","updated":"2023-01-24 23:47:56.000000000","message":"The code in this patch is pretty good. So this refactoring can be done in a follow up","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3227c60c02698a65d022997b1e9834d54f9a5bf7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class MonitorAgentOvnSbIdl(ovsdb_monitor.OvnIdl):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    SCHEMA \u003d \u0027OVN_Southbound\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3483c631_2efff07c","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":26},"in_reply_to":"3dd993ef_82df35c5","updated":"2023-01-24 09:09:26.000000000","message":"Right, if I need to push a new PS, I\u0027ll refactor both classes.","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"b4402a9bee49e5c88bd3cad7ad6dde3e204e54c7","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright 2023 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."},{"line_number":5,"context_line":"# You may obtain a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#   http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS,"},{"line_number":11,"context_line":"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"from ovsdbapp.backend.ovs_idl import connection"}],"source_content_type":"text/x-python","patch_set":10,"id":"80b798cc_4c9ca82b","line":13,"range":{"start_line":3,"start_character":0,"end_line":13,"end_character":32},"updated":"2023-02-01 04:28:47.000000000","message":"nit. ovn_neutron_agent.py has a three space indent in this licensing comment. It also appears that most of our licensing comments have indent. So maybe for sake of consitency add the indent if you end up pushing a new change for something reason.\nTBH, I personally dont like indent, this is cleaner 😊","commit_id":"cdb31675995f860fc869be876ba28e973ba9ba77"}],"neutron/agent/ovn/extensions/extension_manager.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6bc885e314b684360c85c0039ca47a64f2407819","unresolved":true,"context_lines":[{"line_number":50,"context_line":"    def consume_api(self, agent_api):"},{"line_number":51,"context_line":"        \"\"\"Allows an extension to gain access to resources internal to the"},{"line_number":52,"context_line":"           neutron agent and otherwise unavailable to the extension."},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        self.agent_api \u003d agent_api"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"90d72800_db848f01","line":53,"updated":"2023-01-13 17:52:37.000000000","message":"re PEP 257","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"58883c92016e127a1430857b2c80dffd88e4f8c4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def consume_api(self, agent_api):"},{"line_number":51,"context_line":"        \"\"\"Allows an extension to gain access to resources internal to the"},{"line_number":52,"context_line":"           neutron agent and otherwise unavailable to the extension."},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        self.agent_api \u003d agent_api"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"e8c53134_9043934e","line":53,"in_reply_to":"90d72800_db848f01","updated":"2023-01-13 18:25:47.000000000","message":"Done","commit_id":"492658055f1f0b8c1a5a63c5ba11fbdfeb32992c"}],"neutron/tests/functional/agent/ovn/agent/fake_ovn_agent_extension.py":[{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"5db04b5b5c7ec1b29010aa51a048665f81944ad0","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        self.ovn_agent.test_ovs_idl \u003d row.name"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class OVNSBChassisEvent(row_event.RowEvent):"},{"line_number":34,"context_line":"    def __init__(self, ovn_agent):"},{"line_number":35,"context_line":"        self.ovn_agent \u003d ovn_agent"},{"line_number":36,"context_line":"        events \u003d (self.ROW_CREATE, )"}],"source_content_type":"text/x-python","patch_set":8,"id":"81911eab_26eabf69","line":33,"range":{"start_line":33,"start_character":6,"end_line":33,"end_character":23},"updated":"2023-01-23 12:56:14.000000000","message":"Similar to OVNSBChassisEvent both NB and SB event classes are almost identical.\nThough here they are quite short, so not worth refactoring IMO","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3227c60c02698a65d022997b1e9834d54f9a5bf7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.ovn_agent.test_ovs_idl \u003d row.name"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class OVNSBChassisEvent(row_event.RowEvent):"},{"line_number":34,"context_line":"    def __init__(self, ovn_agent):"},{"line_number":35,"context_line":"        self.ovn_agent \u003d ovn_agent"},{"line_number":36,"context_line":"        events \u003d (self.ROW_CREATE, )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ca365df_a0966907","line":33,"range":{"start_line":33,"start_character":6,"end_line":33,"end_character":23},"in_reply_to":"81911eab_26eabf69","updated":"2023-01-24 09:09:26.000000000","message":"Yes but in this case I would prefer to declare both explicitly on the testing code, just to show both events as different things (one for the OVS DB and the other one for the OVN SB DB). This is purely a personal choice.","commit_id":"b1ebfbfd6f421e191780a467ba3f60224d056d80"}],"setup.cfg":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"453cdcd5b5d382acf170600766b66c80a4b47a56","unresolved":true,"context_lines":[{"line_number":154,"context_line":"    dibbler \u003d neutron.agent.linux.dibbler:PDDibbler"},{"line_number":155,"context_line":"neutron.services.external_dns_drivers \u003d"},{"line_number":156,"context_line":"    designate \u003d neutron.services.externaldns.drivers.designate.driver:Designate"},{"line_number":157,"context_line":"oslo.config.opts \u003d"},{"line_number":158,"context_line":"    designate.auth \u003d neutron.opts:list_designate_auth_opts"},{"line_number":159,"context_line":"    ironic.auth \u003d neutron.opts:list_ironic_auth_opts"},{"line_number":160,"context_line":"    neutron \u003d neutron.opts:list_opts"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"2f7fa3f4_c5995a54","line":157,"range":{"start_line":157,"start_character":0,"end_line":157,"end_character":16},"updated":"2023-01-27 05:32:18.000000000","message":"I think you also have to add the new entry point \u0027neutron.ovn.agent\u0027 so that it can be looked up by oslo-config-generator.\n\n```\nneutron.ovn.agent \u003d neutron.conf.agent.ovn.ovn_neutron_agent.config.list_ovn_neutron_agent_opts\n```","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"af11c65efa94bdebc094bae96514e1a1a38907ce","unresolved":true,"context_lines":[{"line_number":154,"context_line":"    dibbler \u003d neutron.agent.linux.dibbler:PDDibbler"},{"line_number":155,"context_line":"neutron.services.external_dns_drivers \u003d"},{"line_number":156,"context_line":"    designate \u003d neutron.services.externaldns.drivers.designate.driver:Designate"},{"line_number":157,"context_line":"oslo.config.opts \u003d"},{"line_number":158,"context_line":"    designate.auth \u003d neutron.opts:list_designate_auth_opts"},{"line_number":159,"context_line":"    ironic.auth \u003d neutron.opts:list_ironic_auth_opts"},{"line_number":160,"context_line":"    neutron \u003d neutron.opts:list_opts"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"9afaee42_b94453bb","line":157,"range":{"start_line":157,"start_character":0,"end_line":157,"end_character":16},"in_reply_to":"2f7fa3f4_c5995a54","updated":"2023-01-27 11:28:00.000000000","message":"++ sounds like it\u0027s missing indeed","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"edeca1283b1096b1bff25fcaec564ad9e9502129","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    dibbler \u003d neutron.agent.linux.dibbler:PDDibbler"},{"line_number":155,"context_line":"neutron.services.external_dns_drivers \u003d"},{"line_number":156,"context_line":"    designate \u003d neutron.services.externaldns.drivers.designate.driver:Designate"},{"line_number":157,"context_line":"oslo.config.opts \u003d"},{"line_number":158,"context_line":"    designate.auth \u003d neutron.opts:list_designate_auth_opts"},{"line_number":159,"context_line":"    ironic.auth \u003d neutron.opts:list_ironic_auth_opts"},{"line_number":160,"context_line":"    neutron \u003d neutron.opts:list_opts"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"673ffc15_a2aff8fa","line":157,"range":{"start_line":157,"start_character":0,"end_line":157,"end_character":16},"in_reply_to":"9afaee42_b94453bb","updated":"2023-01-27 17:49:00.000000000","message":"Right! Good catch, thanks.","commit_id":"7e023b979d992947cf7a7332802a5c601f0774f0"}]}
