)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2c0cd40456d0076b85c3d3f30438b497463bc36","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Ensure string type in provnet-network-type ext_id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When multiple segments exist, or when deleting all segments, the"},{"line_number":10,"context_line":"provider:network_type can be\u0027None which is not a valid value"},{"line_number":11,"context_line":"for an ovsdb external_id column, which only stores strings."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: #2098815"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3cfae335_5a3caeaf","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":33},"updated":"2025-02-19 21:41:13.000000000","message":"s/be None","commit_id":"2d72bcbbf8fad60ac4e4e3c2c4e09cf859df8506"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"8eb875a2f320f05725bdae3d17ddbf4c5dd0bf33","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ensure string type in provnet-network-type ext_id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When multiple segments exist, or when deleting all segments, the"},{"line_number":10,"context_line":"provider:network_type can be\u0027None which is not a valid value"},{"line_number":11,"context_line":"for an ovsdb external_id column, which only stores strings."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: #2098815"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a93d24c_7bc62f3b","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":33},"in_reply_to":"3cfae335_5a3caeaf","updated":"2025-02-19 22:52:48.000000000","message":"Done","commit_id":"2d72bcbbf8fad60ac4e4e3c2c4e09cf859df8506"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"289d8776dacda8f86526049da095796d6e360ae7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"102e5d2d_6497424d","updated":"2025-02-19 09:39:43.000000000","message":"Any chance that you asser the fix with unittest? Is there any way to fix the network model directly?","commit_id":"8c2954d3fa48b1492c8c7507d331b5b32321484c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dde10043fa5fbd840628a79980db0f29d74453c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d2a5d347_1d2c9e5c","updated":"2025-02-24 10:27:31.000000000","message":"nice, thanks","commit_id":"c9b6679b4f44843467b6de9a3f88096cf95b7766"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"289d8776dacda8f86526049da095796d6e360ae7","unresolved":true,"context_lines":[{"line_number":2104,"context_line":"            # NOTE(twilson): in the case of multiple segments, or when all"},{"line_number":2105,"context_line":"            # segments are removed, NETWORK_TYPE\u003dNone, which is invalid ovsdb"},{"line_number":2106,"context_line":"            ovn_const.OVN_NETTYPE_EXT_ID_KEY:"},{"line_number":2107,"context_line":"                network.get(pnet.NETWORK_TYPE) or \u0027\u0027,"},{"line_number":2108,"context_line":"        }}"},{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"        # Enable IGMP snooping if igmp_snooping_enable is enabled in Neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"18eb1366_943bb4f3","line":2107,"updated":"2025-02-19 09:39:43.000000000","message":"I\u0027m bit scary about such quick fix that often prones issue in long future. There is perhaps something to do in network model itself, no?\n\nThat is said, thank you for the comment that avoid someone to rollback your change but I would suggest to add an unittest to assert your fix.","commit_id":"8c2954d3fa48b1492c8c7507d331b5b32321484c"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e7a01f6535651920db94e7591a189a9885516bef","unresolved":true,"context_lines":[{"line_number":2104,"context_line":"            # NOTE(twilson): in the case of multiple segments, or when all"},{"line_number":2105,"context_line":"            # segments are removed, NETWORK_TYPE\u003dNone, which is invalid ovsdb"},{"line_number":2106,"context_line":"            ovn_const.OVN_NETTYPE_EXT_ID_KEY:"},{"line_number":2107,"context_line":"                network.get(pnet.NETWORK_TYPE) or \u0027\u0027,"},{"line_number":2108,"context_line":"        }}"},{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"        # Enable IGMP snooping if igmp_snooping_enable is enabled in Neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"4d1b0943_baf2d924","line":2107,"in_reply_to":"18eb1366_943bb4f3","updated":"2025-02-19 16:27:11.000000000","message":"From what I can tell from looking at logs, the model has been \"treat a network with a single segment as storing that segment information on the network itself, for multiple segments, move the data to the segments\". My presumption was that this was for backward compatibility to pre-segments code, but I have not researched that.\n\nSo, after adding a second segment, the network_type on the network transitions from e.g. vlan -\u003e None. When deleting down to one segment, that operation reverses. So it seems very likely that having a network object with no network type is something that drivers are expected to deal with.\n\nI\u0027ll add a unit test, and maybe a utility function for setting external_ids/other_config values that ensures that the values are strings, (this has been a common issue over the years, especially with integer values).","commit_id":"8c2954d3fa48b1492c8c7507d331b5b32321484c"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3e8f2147d88b3bcdbf16f01e7fe05ea8ebae1fd0","unresolved":false,"context_lines":[{"line_number":2104,"context_line":"            # NOTE(twilson): in the case of multiple segments, or when all"},{"line_number":2105,"context_line":"            # segments are removed, NETWORK_TYPE\u003dNone, which is invalid ovsdb"},{"line_number":2106,"context_line":"            ovn_const.OVN_NETTYPE_EXT_ID_KEY:"},{"line_number":2107,"context_line":"                network.get(pnet.NETWORK_TYPE) or \u0027\u0027,"},{"line_number":2108,"context_line":"        }}"},{"line_number":2109,"context_line":""},{"line_number":2110,"context_line":"        # Enable IGMP snooping if igmp_snooping_enable is enabled in Neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"10e7c001_abd5a7df","line":2107,"in_reply_to":"4d1b0943_baf2d924","updated":"2025-02-19 18:42:02.000000000","message":"Instead of a unittest which would essentially exist just to verify that the correct type was returned, I instead added typing hints and since mypy is run with pep8, we get the testing for free.","commit_id":"8c2954d3fa48b1492c8c7507d331b5b32321484c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2c0cd40456d0076b85c3d3f30438b497463bc36","unresolved":true,"context_lines":[{"line_number":2112,"context_line":"            # NOTE(ralonsoh): it is not considered the case of multiple"},{"line_number":2113,"context_line":"            # segments."},{"line_number":2114,"context_line":"            # NOTE(twilson): in the case of multiple segments, or when all"},{"line_number":2115,"context_line":"            # segments are removed, NETWORK_TYPE\u003dNone, which is invalid ovsdb"},{"line_number":2116,"context_line":"            ovn_const.OVN_NETTYPE_EXT_ID_KEY: network.get(pnet.NETWORK_TYPE),"},{"line_number":2117,"context_line":"        }"},{"line_number":2118,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fcfc51a7_85ea33e6","line":2115,"updated":"2025-02-19 21:41:13.000000000","message":"Should it be \u0027\u0027 and not \u0027None\u0027 ?","commit_id":"2d72bcbbf8fad60ac4e4e3c2c4e09cf859df8506"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"8eb875a2f320f05725bdae3d17ddbf4c5dd0bf33","unresolved":false,"context_lines":[{"line_number":2112,"context_line":"            # NOTE(ralonsoh): it is not considered the case of multiple"},{"line_number":2113,"context_line":"            # segments."},{"line_number":2114,"context_line":"            # NOTE(twilson): in the case of multiple segments, or when all"},{"line_number":2115,"context_line":"            # segments are removed, NETWORK_TYPE\u003dNone, which is invalid ovsdb"},{"line_number":2116,"context_line":"            ovn_const.OVN_NETTYPE_EXT_ID_KEY: network.get(pnet.NETWORK_TYPE),"},{"line_number":2117,"context_line":"        }"},{"line_number":2118,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"6a0831b2_87e24aad","line":2115,"in_reply_to":"fcfc51a7_85ea33e6","updated":"2025-02-19 22:52:48.000000000","message":"Yeah, I have a new version incoming with the ability to pass a \"default\" arg for when None is passed, and some tests that verify that setting. Also moving to neutron/common/utils.py. Good eye.","commit_id":"2d72bcbbf8fad60ac4e4e3c2c4e09cf859df8506"}]}
