)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"cc528dfc0de10bd946ebfd1e921221714bc90324","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a932228d_3067b766","updated":"2025-10-14 18:28:10.000000000","message":"Can we ensure we have a unit test to cover the \"configured a default_vlan in both places\" case? and/or help me understand what I\u0027m missing?","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"70434927080cd21407646bec4b6288d2b973514f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4e92aae8_09e22862","updated":"2025-10-14 19:04:51.000000000","message":"I\u0027m OK with the unit test as a followup. Feel free to land this if you want.","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"24af0b846ae09afd6c0e032adf09aa94974ad2f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"87e1c1b7_54e98868","updated":"2025-10-28 18:37:15.000000000","message":"recheck","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"eab287c5b8cd0e924cbbb166955d45c8358792da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fd6c5402_732f303f","updated":"2025-10-15 20:44:45.000000000","message":"recheck - fixtures._fixtures.timeout.TimeoutException","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"4740f5d38e69ca46e793cf7ee0df4ba7907ada58","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9a8a7095_cf066451","in_reply_to":"a932228d_3067b766","updated":"2025-10-14 18:38:39.000000000","message":"will do","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"}],"devstack/plugin.sh":[{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"49eb0d4598917e42f7ab5b04a149774b0e85e053","unresolved":true,"context_lines":[{"line_number":202,"context_line":"    setup_ovs_simulator_config"},{"line_number":203,"context_line":"}"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"# TODO(alegacy): This should be renamed to add_generic_switch_to_config since "},{"line_number":206,"context_line":"# it handles both neutron and ironic"},{"line_number":207,"context_line":"function add_generic_switch_to_ml2_config {"},{"line_number":208,"context_line":"    local switch_name\u003d$1"}],"source_content_type":"text/x-sh","patch_set":6,"id":"1416ef79_ec04df1f","line":205,"range":{"start_line":205,"start_character":77,"end_line":205,"end_character":78},"updated":"2025-10-07 13:09:18.000000000","message":"nit","commit_id":"3ac27f1efb5debae77a551ee41b56a0f2965f0fd"}],"networking_generic_switch/devices/netmiko_devices/__init__.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"cc528dfc0de10bd946ebfd1e921221714bc90324","unresolved":true,"context_lines":[{"line_number":439,"context_line":"        cmds \u003d []"},{"line_number":440,"context_line":"        if self._disable_inactive_ports() and self.ENABLE_BOND:"},{"line_number":441,"context_line":"            cmds +\u003d self._format_commands(self.ENABLE_BOND, bond\u003dbond)"},{"line_number":442,"context_line":"        port_default_vlan \u003d default_vlan or self._get_port_default_vlan()"},{"line_number":443,"context_line":"        if port_default_vlan:"},{"line_number":444,"context_line":"            cmds +\u003d self._format_commands("},{"line_number":445,"context_line":"                self.UNPLUG_BOND_FROM_NETWORK,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fd5899a_76664376","line":442,"updated":"2025-10-14 18:28:10.000000000","message":"Just to confirm I understand the behavior:\n- if no default_vlan sent in the API request, use the one from ngs_config[\u0027ngs_port_default_vlan\u0027]\n- default_vlan comes from Ironic, likely from the config to put the machine back on the inspecetion vlan feature (I forget what config name we settled on for this)\n\nThis seems like a potential decoder ring scenario: an operator has to know the contents of a conductor config file and the NGS config file to divine the behavior here. I suspect this conundrum is unavoidable, but it\u0027s confusing nonetheless.","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"4740f5d38e69ca46e793cf7ee0df4ba7907ada58","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        cmds \u003d []"},{"line_number":440,"context_line":"        if self._disable_inactive_ports() and self.ENABLE_BOND:"},{"line_number":441,"context_line":"            cmds +\u003d self._format_commands(self.ENABLE_BOND, bond\u003dbond)"},{"line_number":442,"context_line":"        port_default_vlan \u003d default_vlan or self._get_port_default_vlan()"},{"line_number":443,"context_line":"        if port_default_vlan:"},{"line_number":444,"context_line":"            cmds +\u003d self._format_commands("},{"line_number":445,"context_line":"                self.UNPLUG_BOND_FROM_NETWORK,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfe0fdd7_dd97803c","line":442,"in_reply_to":"3fd5899a_76664376","updated":"2025-10-14 18:38:39.000000000","message":"yes, your understanding is correct.  Order of preference is:\n\n1) api parameter\n2) driver config\n3) None","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"}],"networking_generic_switch/generic_switch_ironic.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"07fffd99dd51df1274e493a8c0e4b7c3bdd935a1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright 2025 Openstack"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"6610050b_fbc4e5e7","line":1,"updated":"2025-10-14 18:07:07.000000000","message":"This should be your employer, or just not set at all.","commit_id":"d64d7cf98a5a972524f7e6268afc949391a5ccc2"}],"networking_generic_switch/tests/unit/netmiko/test_netmiko_base.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8f2581a0d143a6c79b37165ace770d4b82b088c2","unresolved":true,"context_lines":[{"line_number":249,"context_line":"    @mock.patch(\u0027networking_generic_switch.devices.netmiko_devices.\u0027"},{"line_number":250,"context_line":"                \u0027NetmikoSwitch.check_output\u0027, autospec\u003dTrue)"},{"line_number":251,"context_line":"    def test_plug_port_with_per_port_default_vlan(self, m_check, m_sctd):"},{"line_number":252,"context_line":"        switch \u003d self._make_switch_device({\u0027ngs_port_default_vlan\u0027: \u002720\u0027})"},{"line_number":253,"context_line":"        switch.plug_port_to_network(2222, 22, default_vlan\u003d30)"},{"line_number":254,"context_line":"        m_sctd.assert_called_with(switch, ["},{"line_number":255,"context_line":"            \u0027delete port 2222 from network 30\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"aca5bef0_e85b1c9b","line":252,"updated":"2025-10-14 19:26:35.000000000","message":"this covers the case I was worried about","commit_id":"2db0a815775e3e2843d7f6874edb56011df61226"}],"requirements.txt":[{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"49eb0d4598917e42f7ab5b04a149774b0e85e053","unresolved":true,"context_lines":[{"line_number":13,"context_line":"oslo.utils\u003e\u003d3.40.2 # Apache-2.0"},{"line_number":14,"context_line":"tenacity\u003e\u003d6.0.0 # Apache-2.0"},{"line_number":15,"context_line":"tooz\u003e\u003d2.5.1 # Apache-2.0"},{"line_number":16,"context_line":"ironic\u003e\u003d32.0.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":6,"id":"ed173f8f_cf748bfe","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":27},"updated":"2025-10-07 13:09:18.000000000","message":"Regarding the CI failure, I wonder if this is overriding the `Depends-On`.","commit_id":"3ac27f1efb5debae77a551ee41b56a0f2965f0fd"}]}
