)]}'
{"networking_ovn/ovsdb/ovsdb_monitor.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"e791d2223ca1bcf34da2030e4b965b7bec39b3f6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        if event !\u003d self.ROW_UPDATE:"},{"line_number":76,"context_line":"            return True"},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            if (\u0027ovn-bridge-mappings\u0027 in old.external_ids or"},{"line_number":79,"context_line":"                    \u0027enable-chassis-as-gw\u0027 in"},{"line_number":80,"context_line":"                    old.external_ids[\u0027ovn-cms-mappings\u0027]):"},{"line_number":81,"context_line":"                return True"},{"line_number":82,"context_line":"        except (AttributeError, KeyError):"},{"line_number":83,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_68a45406","line":80,"range":{"start_line":78,"start_character":12,"end_line":80,"end_character":58},"updated":"2020-02-03 08:11:24.000000000","message":"That will be true if old and new chassis row will have the same entries.\n\nCan check if there is a difference between old and new bridge_mappings or enable-chassis-as-gw? Something like:\n\n\n\nif (old.external_ids.get(\u0027ovn-bridge-mappings\u0027, None) !\u003d row.external_ids.get(\u0027ovn-bridge-mappings\u0027, None)):\n   return True\n\nif old.external_ids.get(\u0027ovn-cms-mappings\u0027, None):\n   if (row.external_ids[\u0027ovn-cms-mappings\u0027].get(\u0027enable-chassis-as-gw\u0027, None) !\u003d\n       old.external_ids[\u0027ovn-cms-mappings\u0027].get(\u0027enable-chassis-as-gw\u0027, None)):\n      return True","commit_id":"f07fa690fdb6bfe5bd118055c77f6775a5d8c492"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"f08e92b184b8c458161b01999718387becad4add","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        if event !\u003d self.ROW_UPDATE:"},{"line_number":76,"context_line":"            return True"},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            if (\u0027ovn-bridge-mappings\u0027 in old.external_ids or"},{"line_number":79,"context_line":"                    \u0027enable-chassis-as-gw\u0027 in"},{"line_number":80,"context_line":"                    old.external_ids[\u0027ovn-cms-mappings\u0027]):"},{"line_number":81,"context_line":"                return True"},{"line_number":82,"context_line":"        except (AttributeError, KeyError):"},{"line_number":83,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_baf12be2","line":80,"range":{"start_line":78,"start_character":12,"end_line":80,"end_character":58},"in_reply_to":"3fa7e38b_1427f5ca","updated":"2020-02-03 13:49:04.000000000","message":"Ok, that makes thins even better! Thanks for explanation!","commit_id":"f07fa690fdb6bfe5bd118055c77f6775a5d8c492"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"74a96da6142a93b85d3d509f7cf0183a2363f1ba","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        if event !\u003d self.ROW_UPDATE:"},{"line_number":76,"context_line":"            return True"},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            if (\u0027ovn-bridge-mappings\u0027 in old.external_ids or"},{"line_number":79,"context_line":"                    \u0027enable-chassis-as-gw\u0027 in"},{"line_number":80,"context_line":"                    old.external_ids[\u0027ovn-cms-mappings\u0027]):"},{"line_number":81,"context_line":"                return True"},{"line_number":82,"context_line":"        except (AttributeError, KeyError):"},{"line_number":83,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1427f5ca","line":80,"range":{"start_line":78,"start_character":12,"end_line":80,"end_character":58},"in_reply_to":"3fa7e38b_68a45406","updated":"2020-02-03 13:31:30.000000000","message":"Old only contains columns that actually change. So you shouldn\u0027t be able to have a ROW_UPDATE w/ old w/ matching columns to row.","commit_id":"f07fa690fdb6bfe5bd118055c77f6775a5d8c492"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"d542536ad2180463c4483341c0709bb781523d1f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        if event !\u003d self.ROW_UPDATE:"},{"line_number":76,"context_line":"            return True"},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            if (\u0027ovn-bridge-mappings\u0027 in old.external_ids or"},{"line_number":79,"context_line":"                    \u0027enable-chassis-as-gw\u0027 in"},{"line_number":80,"context_line":"                    old.external_ids[\u0027ovn-cms-mappings\u0027]):"},{"line_number":81,"context_line":"                return True"},{"line_number":82,"context_line":"        except (AttributeError, KeyError):"},{"line_number":83,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_2f540d23","line":80,"range":{"start_line":78,"start_character":12,"end_line":80,"end_character":58},"in_reply_to":"3fa7e38b_baf12be2","updated":"2020-02-04 11:39:31.000000000","message":"Hum, Im checking this (master neutron) and I found that match_fn() returns true in case of update event.\n\nThats the summary: \n\n(Pdb++) old.external_ids\n{\u0027datapath-type\u0027: \u0027\u0027, \u0027iface-types\u0027: \u0027erspan,geneve,gre,internal,ip6erspan,ip6gre,lisp,patch,stt,system,tap,vxlan\u0027, \u0027is-interconn\u0027: \u0027false\u0027, \u0027neutron:liveness_check_at\u0027: \u00272020-02-04T11:06:43.228834+00:00\u0027, \u0027ovn-bridge-mappings\u0027: \u0027public:br-ex\u0027, \u0027ovn-chassis-mac-mappings\u0027: \u0027\u0027, \u0027ovn-cms-options\u0027: \u0027enable-chassis-as-gw\u0027}\n\n(Pdb++) row.external_ids\n{\u0027datapath-type\u0027: \u0027\u0027, \u0027iface-types\u0027: \u0027erspan,geneve,gre,internal,ip6erspan,ip6gre,lisp,patch,stt,system,tap,vxlan\u0027, \u0027is-interconn\u0027: \u0027false\u0027, \u0027neutron:liveness_check_at\u0027: \u00272020-02-04T11:35:42.448380+00:00\u0027, \u0027ovn-bridge-mappings\u0027: \u0027public:br-ex\u0027, \u0027ovn-chassis-mac-mappings\u0027: \u0027\u0027, \u0027ovn-cms-options\u0027: \u0027enable-chassis-as-gw\u0027}\n\n\nThe only difference here is the \u0027neutron:liveness_check_at\u0027.","commit_id":"f07fa690fdb6bfe5bd118055c77f6775a5d8c492"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"9f93d6f759b7d8754f66385e4385ef95ca947a63","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        self.driver.update_segment_host_mapping(host, phy_nets)"},{"line_number":96,"context_line":"        if utils.is_ovn_l3(self.l3_plugin):"},{"line_number":97,"context_line":"            self.l3_plugin.schedule_unhosted_gateways()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class PortBindingChassisUpdateEvent(row_event.RowEvent):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_596288dc","line":97,"range":{"start_line":97,"start_character":27,"end_line":97,"end_character":53},"updated":"2020-02-03 11:41:30.000000000","message":"I think if we can add an argument to this call that it was executed on event from a given chassis? and event type?\n\nI think that potentially we could limit the scope of gw chassis to be rescheduled. For now we\u0027re kind blind and we go over all defined gw ports.\n\nExample: \n1) there an event going from delete of chassis row:\n+ we can reschedule only gw ports that were hosted by this chassis\n2) there an event going from add of chassis row:\n+ if chassis has connected physnets and its configured to be gw chassis we can limit the scope of updated ports to be only within the same physnet\n\netc...\n\nSo I think adding and event type and chassis name to this function will be beneficial.","commit_id":"f07fa690fdb6bfe5bd118055c77f6775a5d8c492"}]}
