)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"013fae9c7afe5d5bb82a835edcc5962a83f99f32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bd007e93_a20d7668","updated":"2022-01-21 01:27:38.000000000","message":"recheck","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"96215cdefacba96cb844549dee163393786e5e6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a6e86c11_5779912a","updated":"2022-01-21 05:39:05.000000000","message":"recheck","commit_id":"747db7536726d0bfa46a1953aa9e87d9b7dd7480"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"577b22b8e770bc0aff48370be190c38cd484f3f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"dc5748c2_6500c465","updated":"2022-03-02 07:53:57.000000000","message":"Maybe, as this is user visible change, release note would be good.","commit_id":"28616c5fb464d92821d39f398dc96d37bb588b03"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"39a80e1a3fa162f8364e653cb764c3c4109e34c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"123f7f7e_818b66dd","updated":"2022-04-12 03:03:04.000000000","message":"merge conflict, only rebase","commit_id":"bfae99391eaf3148d22c6dcb11fc951344dd0465"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"4a7bb88386686d2c613253eae477d02f5d56ab50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"ecdc3876_0e3dddae","updated":"2022-04-26 06:22:00.000000000","message":"Is method definitions for get_chassis_data_for_ml2_bind_port still needed? Seems it can also be cleaned along with tests which unit tests which test that method.","commit_id":"338f547b44065eb5cc14719a8f2ae4db9dae8512"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"348531098f49b7d3647dd2e9b4ae3f0ab6255102","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"285453d1_e6cdeb4b","in_reply_to":"1d58a4de_534fab33","updated":"2022-04-26 11:11:48.000000000","message":"Thanks.","commit_id":"338f547b44065eb5cc14719a8f2ae4db9dae8512"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"01c3116e1a67aee92b711f3ff187891ceae9be0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1d58a4de_534fab33","in_reply_to":"ecdc3876_0e3dddae","updated":"2022-04-26 11:03:10.000000000","message":"yes, you\u0027re right. I searched, this method is really unnecessary. I\u0027ll clean it up","commit_id":"338f547b44065eb5cc14719a8f2ae4db9dae8512"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f9022fe6fc6864e888cce259888e3d41ad071a1d","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ba8f121_47fba530","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"updated":"2022-01-20 10:38:29.000000000","message":"This method will ping all chassis before returning the list. This operation is expensive and won\u0027t scale at all. Please, use \"get_agent\" instead.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1bc0eaab26f23ebf7fc0faa20da18f119539347c","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"13819dc8_a3f31aee","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"0b6787a4_67c7f6ad","updated":"2022-01-21 10:48:39.000000000","message":"You are right, this won\u0027t necessarily implies to execute a \"check_liveness\" txn.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"17cbe07276957712bc9c8668650e946e65ac71ed","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fae687e3_c6a1bf4a","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"13819dc8_a3f31aee","updated":"2022-02-01 09:25:32.000000000","message":"So IIUC it may happen here that we will trigger ping all chassis during the port binding process if last ping was longer then agent_down_time/2 ago. I\u0027m not sure if we should do it like that. In case of ML2/OVS or Linuxbridge we rely only on the last update saved in the db and nothing else. So maybe we should have some new method which will only check when last ping was, compare it with agent_down_time and based on that decide if chassis is down or up, without pinging chassis at all. Wdyt?","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"5395d38c37fc835e8b3ba6872bacefdc9dcaf084","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"0b6787a4_67c7f6ad","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"442ec974_677766ff","updated":"2022-01-21 01:27:21.000000000","message":"Method \"ping_all_chassis\" will judge last_ping is not performed every time. in addition, the core-plugin has a periodic task(agent_health_check) and will also call get_agents.\nso I don\u0027t think it\u0027s a problem to use it, is this conclusion correct?","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"17f0f42ef01530a5af67a80d0585d41b2cc09908","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"f520f72a_579845b6","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"9ba8f121_47fba530","updated":"2022-01-20 10:43:19.000000000","message":"get_agent can not filter by host, do you mean update get_agent method?","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"9647ba08bbd631ca3e873374883fdcc1cae3d2f9","unresolved":false,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"0cacf4f9_df9c8675","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"b0568db9_2f74741b","updated":"2022-02-15 03:06:31.000000000","message":"Done","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d906811e7860df2995a024e4de2d30725eac0c8","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"442ec974_677766ff","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"f520f72a_579845b6","updated":"2022-01-20 16:46:56.000000000","message":"You are right, but we need another way to check for the agent without pinging all chassis.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"1d8387b5f952653bdcfd800c96062c0570c899ef","unresolved":true,"context_lines":[{"line_number":923,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":924,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":925,"context_line":"        # cannot be found or dead."},{"line_number":926,"context_line":"        agents \u003d get_agents(self._plugin, context, {\u0027host\u0027: context.host},"},{"line_number":927,"context_line":"                            None, self)"},{"line_number":928,"context_line":"        if not agents:"},{"line_number":929,"context_line":"            LOG.warning(\u0027Refusing to bind port %(port_id)s due to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"b0568db9_2f74741b","line":926,"range":{"start_line":926,"start_character":17,"end_line":926,"end_character":27},"in_reply_to":"fae687e3_c6a1bf4a","updated":"2022-02-07 02:57:29.000000000","message":"The core plugin has a periodic task of agent_health_check, and the interval is  agent_down_time/2 . The agent_health_check will call get_agents method. If the more nodes deployed by the neutron server, the shorter the average interval of triggering ping all chassis. With this periodic task, it will not happen that ping is not triggered for a long time.\nHowever, there is no necessary reason to \u0027ping all chasis\u0027, do you think it\u0027s better to add a new method or a parameter(eg: ping_all_chassis\u003dFalse) to \u0027get_agents\u0027?","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f9022fe6fc6864e888cce259888e3d41ad071a1d","unresolved":true,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"8718a089_ed30c62d","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"updated":"2022-01-20 10:38:29.000000000","message":"And what about the check done in base PS L930?","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"07a26674012f85d492358439e2479058712393d2","unresolved":false,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"6b1b8014_c033d8b5","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"in_reply_to":"4293e95d_27fd5125","updated":"2022-01-24 00:44:58.000000000","message":"Done","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"17f0f42ef01530a5af67a80d0585d41b2cc09908","unresolved":true,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"a1d47a78_95961fdf","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"in_reply_to":"8718a089_ed30c62d","updated":"2022-01-20 10:43:19.000000000","message":"I want can clearly distinguish the types of errors.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d906811e7860df2995a024e4de2d30725eac0c8","unresolved":true,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e0b61e3c_0f87f0be","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"in_reply_to":"a1d47a78_95961fdf","updated":"2022-01-20 16:46:56.000000000","message":"Sorry, I didn\u0027t understand your reply.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"15c62dd5a356ae762ff6a2a158310a9996a85a4d","unresolved":true,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"4293e95d_27fd5125","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"in_reply_to":"d0f77aa1_8f4f2db1","updated":"2022-01-21 10:49:51.000000000","message":"Sorry, not \"splited\", split.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1bc0eaab26f23ebf7fc0faa20da18f119539347c","unresolved":true,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"d0f77aa1_8f4f2db1","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"in_reply_to":"d11c7e57_5de8a7c9","updated":"2022-01-21 10:48:39.000000000","message":"What I mean is that in base PS, in L930, \"iface_type\" string is splited. That means the variable is a list that is used in L981","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"5395d38c37fc835e8b3ba6872bacefdc9dcaf084","unresolved":true,"context_lines":[{"line_number":938,"context_line":"            return"},{"line_number":939,"context_line":"        chassis \u003d n_agent.AgentCache()[agent[\u0027id\u0027]].chassis"},{"line_number":940,"context_line":"        datapath_type \u003d chassis.external_ids.get(\u0027datapath-type\u0027, \u0027\u0027)"},{"line_number":941,"context_line":"        iface_types \u003d chassis.external_ids.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":942,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        for segment_to_bind in context.segments_to_bind:"}],"source_content_type":"text/x-python","patch_set":2,"id":"d11c7e57_5de8a7c9","line":941,"range":{"start_line":941,"start_character":8,"end_line":941,"end_character":19},"in_reply_to":"e0b61e3c_0f87f0be","updated":"2022-01-21 01:27:21.000000000","message":"I want to throw two exceptions: chassis does not exist and chassis is dead. can clearly know the status of chassis and facilitates troubleshooting.","commit_id":"e2c129aa6fe007f6c827df388434f7b20a9d50b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d31297fe845ef4f3950da4b8f97c6d947c48902d","unresolved":true,"context_lines":[{"line_number":935,"context_line":"                port_context\u003dcontext)"},{"line_number":936,"context_line":"        except n_exc.InvalidInput as e:"},{"line_number":937,"context_line":"            # The port binding profile is validated both on port creation and"},{"line_number":938,"context_line":"            # update.  The new rules apply to a VNIC type previously not"},{"line_number":939,"context_line":"            # consumed by the OVN mechanism driver, so this should never"},{"line_number":940,"context_line":"            # happen."},{"line_number":941,"context_line":"            LOG.error(\u0027Validation of binding profile unexpectedly failed \u0027"},{"line_number":942,"context_line":"                      \u0027while attempting to bind port %s\u0027, port[\u0027id\u0027])"},{"line_number":943,"context_line":"            raise e"}],"source_content_type":"text/x-python","patch_set":9,"id":"57ac7888_af142e95","line":940,"range":{"start_line":938,"start_character":24,"end_line":940,"end_character":21},"updated":"2022-03-02 12:05:50.000000000","message":"Yeah, this exception catch is a bit weird","commit_id":"52bb38f0b09c6112e0dfa2855ed306b259f805a6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1b0e4b353af7b0ddce96104bf14e41fdccbba097","unresolved":true,"context_lines":[{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        # OVN chassis information is needed to ensure a valid port bind."},{"line_number":928,"context_line":"        # Collect port binding data and refuse binding if the OVN chassis"},{"line_number":929,"context_line":"        # cannot be found or dead."},{"line_number":930,"context_line":"        try:"},{"line_number":931,"context_line":"            # The PortContext host property contains special handling that"},{"line_number":932,"context_line":"            # we need to take into account, thus passing both the port Dict"}],"source_content_type":"text/x-python","patch_set":11,"id":"c5bf6e43_93dab62c","line":929,"range":{"start_line":929,"start_character":26,"end_line":929,"end_character":34},"updated":"2022-03-02 07:53:25.000000000","message":"nitty nit (don\u0027t respin for that): \"or is dead\"","commit_id":"28616c5fb464d92821d39f398dc96d37bb588b03"}]}
