)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"dd5134ad8f6f2304f81733efee69abdeb3c3cf22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8705da72_f928c061","updated":"2026-06-08 14:31:58.000000000","message":"Same comment: missing the `Related-Bug` reference and the topic.\n\nQuestion: are we adding API tests? To create/update network with the pvlan flag and ports with community and type.","commit_id":"ed9d8937577b4705f5e30f9e21ae37771305d099"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"24f193dd0ca8e6df935fa175a8c2d6e6c81e63b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2c243bcf_62c6d094","in_reply_to":"8705da72_f928c061","updated":"2026-06-08 14:53:03.000000000","message":"Hi, yes with this patch: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/990739","commit_id":"ed9d8937577b4705f5e30f9e21ae37771305d099"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"95f8badbe88e39e53110da75311ec9e05644a334","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"75c9e3ee_4a9611fa","updated":"2026-06-08 15:31:51.000000000","message":"The patch: https://review.opendev.org/c/openstack/neutron/+/992215 was updated.\nrecheck","commit_id":"8768a861572317b16b8f5487a6babb8bb386ba94"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"faf4abc4a44325b0eca72d358181a6a8ab2840d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"38303369_cfc59d4d","updated":"2026-06-09 04:35:39.000000000","message":"recheck depends-on updated","commit_id":"8768a861572317b16b8f5487a6babb8bb386ba94"}],"neutron_tempest_plugin/scenario/test_pvlan_connectivity.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0971b6c5ce90dad4d7b2da5d7729beab99794d76","unresolved":true,"context_lines":[{"line_number":81,"context_line":"    if pvlan_type \u003d\u003d pvlan_const.COMMUNITY_TYPE:"},{"line_number":82,"context_line":"        spec[pvlan_const.PVLAN_COMMUNITY] \u003d pvlan_community"},{"line_number":83,"context_line":"    else:"},{"line_number":84,"context_line":"        spec[pvlan_const.PVLAN_COMMUNITY] \u003d None"},{"line_number":85,"context_line":"    return spec"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"6f4841e9_fd9fa2be","line":84,"updated":"2026-06-08 09:46:26.000000000","message":"nitty nit: you can make it shorter by doing:\n\n    spec[pvlan_const.PVLAN_COMMUNITY] \u003d None\n    if pvlan_type \u003d\u003d pvlan_const.COMMUNITY_TYPE:\n        spec[pvlan_const.PVLAN_COMMUNITY] \u003d pvlan_community","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"97c2a24ce3f36f46ca1e8438ad0d9ccf03e4b958","unresolved":true,"context_lines":[{"line_number":81,"context_line":"    if pvlan_type \u003d\u003d pvlan_const.COMMUNITY_TYPE:"},{"line_number":82,"context_line":"        spec[pvlan_const.PVLAN_COMMUNITY] \u003d pvlan_community"},{"line_number":83,"context_line":"    else:"},{"line_number":84,"context_line":"        spec[pvlan_const.PVLAN_COMMUNITY] \u003d None"},{"line_number":85,"context_line":"    return spec"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a2dee99_230ca444","line":84,"in_reply_to":"6f4841e9_fd9fa2be","updated":"2026-06-08 10:36:59.000000000","message":"Thank you, I\u0027ve updated it","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"e6722b366c62a90e0b0826c33ee50fc1122f141a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    if pvlan_type \u003d\u003d pvlan_const.COMMUNITY_TYPE:"},{"line_number":82,"context_line":"        spec[pvlan_const.PVLAN_COMMUNITY] \u003d pvlan_community"},{"line_number":83,"context_line":"    else:"},{"line_number":84,"context_line":"        spec[pvlan_const.PVLAN_COMMUNITY] \u003d None"},{"line_number":85,"context_line":"    return spec"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"710dc86e_6df1fdeb","line":84,"in_reply_to":"9a2dee99_230ca444","updated":"2026-06-08 10:37:51.000000000","message":"Done","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0971b6c5ce90dad4d7b2da5d7729beab99794d76","unresolved":true,"context_lines":[{"line_number":148,"context_line":"                \u0027PVLAN scenario tests require an ML2/OVN deployment.\u0027)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @classmethod"},{"line_number":151,"context_line":"    def _skip_unless_pvlan_network_api(cls):"},{"line_number":152,"context_line":"        \"\"\"Skip if the API rejects pvlan on network create.\"\"\""},{"line_number":153,"context_line":"        probe_name \u003d data_utils.rand_name(\u0027pvlan-probe-\u0027)"},{"line_number":154,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1324eb17_4ef0e837","line":151,"updated":"2026-06-08 09:46:26.000000000","message":"do we need that check? Wouldn\u0027t it be enough to make sure that we have required API extension loaded?","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"97c2a24ce3f36f46ca1e8438ad0d9ccf03e4b958","unresolved":true,"context_lines":[{"line_number":148,"context_line":"                \u0027PVLAN scenario tests require an ML2/OVN deployment.\u0027)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @classmethod"},{"line_number":151,"context_line":"    def _skip_unless_pvlan_network_api(cls):"},{"line_number":152,"context_line":"        \"\"\"Skip if the API rejects pvlan on network create.\"\"\""},{"line_number":153,"context_line":"        probe_name \u003d data_utils.rand_name(\u0027pvlan-probe-\u0027)"},{"line_number":154,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"c66aa223_3c712266","line":151,"in_reply_to":"1324eb17_4ef0e837","updated":"2026-06-08 10:36:59.000000000","message":"I\u0027ve removed it","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"e6722b366c62a90e0b0826c33ee50fc1122f141a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                \u0027PVLAN scenario tests require an ML2/OVN deployment.\u0027)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @classmethod"},{"line_number":151,"context_line":"    def _skip_unless_pvlan_network_api(cls):"},{"line_number":152,"context_line":"        \"\"\"Skip if the API rejects pvlan on network create.\"\"\""},{"line_number":153,"context_line":"        probe_name \u003d data_utils.rand_name(\u0027pvlan-probe-\u0027)"},{"line_number":154,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ccc7d5b9_1ad58194","line":151,"in_reply_to":"c66aa223_3c712266","updated":"2026-06-08 10:37:51.000000000","message":"Done","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0971b6c5ce90dad4d7b2da5d7729beab99794d76","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def setUp(self):"},{"line_number":190,"context_line":"        super().setUp()"},{"line_number":191,"context_line":"        self.__class__._skip_unless_pvlan_supported()"},{"line_number":192,"context_line":"        if not getattr(self.__class__, \u0027vms\u0027, None):"},{"line_number":193,"context_line":"            self._setup_vms()"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"742e5dd3_f1c45934","line":191,"updated":"2026-06-08 09:46:26.000000000","message":"you have this check in `resource_setup()` method already. Do you need it in here too?","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"e6722b366c62a90e0b0826c33ee50fc1122f141a","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def setUp(self):"},{"line_number":190,"context_line":"        super().setUp()"},{"line_number":191,"context_line":"        self.__class__._skip_unless_pvlan_supported()"},{"line_number":192,"context_line":"        if not getattr(self.__class__, \u0027vms\u0027, None):"},{"line_number":193,"context_line":"            self._setup_vms()"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0c306c1a_415a265f","line":191,"in_reply_to":"26702fc6_73c05000","updated":"2026-06-08 10:37:51.000000000","message":"Done","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"97c2a24ce3f36f46ca1e8438ad0d9ccf03e4b958","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def setUp(self):"},{"line_number":190,"context_line":"        super().setUp()"},{"line_number":191,"context_line":"        self.__class__._skip_unless_pvlan_supported()"},{"line_number":192,"context_line":"        if not getattr(self.__class__, \u0027vms\u0027, None):"},{"line_number":193,"context_line":"            self._setup_vms()"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"26702fc6_73c05000","line":191,"in_reply_to":"742e5dd3_f1c45934","updated":"2026-06-08 10:36:59.000000000","message":"I\u0027ve removed it","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0971b6c5ce90dad4d7b2da5d7729beab99794d76","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def _setup_vms(self):"},{"line_number":196,"context_line":"        \"\"\"Create PVLAN ports and boot servers (instance methods only).\"\"\""},{"line_number":197,"context_line":"        self.__class__._skip_unless_pvlan_supported()"},{"line_number":198,"context_line":"        sg \u003d [{\u0027name\u0027: self.secgroup[\u0027name\u0027]}]"},{"line_number":199,"context_line":"        server_params \u003d {"},{"line_number":200,"context_line":"            \u0027flavor_ref\u0027: CONF.compute.flavor_ref,"}],"source_content_type":"text/x-python","patch_set":2,"id":"41e956cc_8d107903","line":197,"updated":"2026-06-08 09:46:26.000000000","message":"same question","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"e6722b366c62a90e0b0826c33ee50fc1122f141a","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def _setup_vms(self):"},{"line_number":196,"context_line":"        \"\"\"Create PVLAN ports and boot servers (instance methods only).\"\"\""},{"line_number":197,"context_line":"        self.__class__._skip_unless_pvlan_supported()"},{"line_number":198,"context_line":"        sg \u003d [{\u0027name\u0027: self.secgroup[\u0027name\u0027]}]"},{"line_number":199,"context_line":"        server_params \u003d {"},{"line_number":200,"context_line":"            \u0027flavor_ref\u0027: CONF.compute.flavor_ref,"}],"source_content_type":"text/x-python","patch_set":2,"id":"c9b3a0df_aa8e58a6","line":197,"in_reply_to":"41e956cc_8d107903","updated":"2026-06-08 10:37:51.000000000","message":"Done","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0971b6c5ce90dad4d7b2da5d7729beab99794d76","unresolved":true,"context_lines":[{"line_number":202,"context_line":"            \u0027key_name\u0027: self.keypair[\u0027name\u0027],"},{"line_number":203,"context_line":"            \u0027security_groups\u0027: sg,"},{"line_number":204,"context_line":"        }"},{"line_number":205,"context_line":"        self.__class__.vms \u003d {}"},{"line_number":206,"context_line":"        for name, pvlan_kwargs in INITIAL_PORT_SPECS:"},{"line_number":207,"context_line":"            port \u003d self.create_port("},{"line_number":208,"context_line":"                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fabf64f6_28ccc3f2","line":205,"updated":"2026-06-08 09:46:26.000000000","message":"why you are using `vms` as class parameter and not simply use object parameter with ``self.vms`` ?","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"e6722b366c62a90e0b0826c33ee50fc1122f141a","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            \u0027key_name\u0027: self.keypair[\u0027name\u0027],"},{"line_number":203,"context_line":"            \u0027security_groups\u0027: sg,"},{"line_number":204,"context_line":"        }"},{"line_number":205,"context_line":"        self.__class__.vms \u003d {}"},{"line_number":206,"context_line":"        for name, pvlan_kwargs in INITIAL_PORT_SPECS:"},{"line_number":207,"context_line":"            port \u003d self.create_port("},{"line_number":208,"context_line":"                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"228cd059_169a1e9f","line":205,"in_reply_to":"c57b957c_a9deae51","updated":"2026-06-08 10:37:51.000000000","message":"Done","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"97c2a24ce3f36f46ca1e8438ad0d9ccf03e4b958","unresolved":true,"context_lines":[{"line_number":202,"context_line":"            \u0027key_name\u0027: self.keypair[\u0027name\u0027],"},{"line_number":203,"context_line":"            \u0027security_groups\u0027: sg,"},{"line_number":204,"context_line":"        }"},{"line_number":205,"context_line":"        self.__class__.vms \u003d {}"},{"line_number":206,"context_line":"        for name, pvlan_kwargs in INITIAL_PORT_SPECS:"},{"line_number":207,"context_line":"            port \u003d self.create_port("},{"line_number":208,"context_line":"                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"c57b957c_a9deae51","line":205,"in_reply_to":"fabf64f6_28ccc3f2","updated":"2026-06-08 10:36:59.000000000","message":"I\u0027ve modified it, Thank you.","commit_id":"cb738870b49bb7ad58bc8ab60f7213eeafc67504"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"28d32a47c7718b611fb3c1b0e9a3bed8d94f6266","unresolved":true,"context_lines":[{"line_number":141,"context_line":"    @classmethod"},{"line_number":142,"context_line":"    def _skip_unless_ovn_backend(cls):"},{"line_number":143,"context_line":"        if not cls._is_driver_ovn():"},{"line_number":144,"context_line":"            raise cls.skipTest("},{"line_number":145,"context_line":"                \u0027PVLAN scenario tests require an ML2/OVN deployment.\u0027)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"c101d5de_db6ea2d1","line":144,"range":{"start_line":144,"start_character":22,"end_line":144,"end_character":30},"updated":"2026-06-08 14:43:01.000000000","message":"`skipTest` is defined in `TestCase` as:\n```\ndef skipTest(self, reason):\n```\n\nIf you call it here, it will take the string \"PVLAN scenario...\" as selk.\n\nCall `cls.skipException(msg)`","commit_id":"ed9d8937577b4705f5e30f9e21ae37771305d099"},{"author":{"_account_id":34777,"name":"Fiorella Yanac","email":"fyanac@redhat.com","username":"fyanac"},"change_message_id":"24f193dd0ca8e6df935fa175a8c2d6e6c81e63b3","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    @classmethod"},{"line_number":142,"context_line":"    def _skip_unless_ovn_backend(cls):"},{"line_number":143,"context_line":"        if not cls._is_driver_ovn():"},{"line_number":144,"context_line":"            raise cls.skipTest("},{"line_number":145,"context_line":"                \u0027PVLAN scenario tests require an ML2/OVN deployment.\u0027)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"813d8a6c_a8d65629","line":144,"range":{"start_line":144,"start_character":22,"end_line":144,"end_character":30},"in_reply_to":"c101d5de_db6ea2d1","updated":"2026-06-08 14:53:03.000000000","message":"Thank you, I\u0027ve updated it","commit_id":"ed9d8937577b4705f5e30f9e21ae37771305d099"}]}
