)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"67588e5a616381bcb9fee96702713d0092d58df6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bf2703ab_659a85f7","updated":"2021-10-14 14:40:54.000000000","message":"I might forget but can you please point out where we run these tests, in tempest gate it is skipped\n\n- https://zuul.opendev.org/t/openstack/build/a92c87ec1ced4d299adfe6582672a1f0/log/job-output.txt#27740","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"60315328323fd456d88819f447dc27978c2d0f93","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9f36a663_3361baa9","updated":"2021-10-13 18:01:21.000000000","message":"makes sense, although let\u0027s wait until the neutron patch is merged - https://review.opendev.org/c/openstack/neutron/+/805637","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ba1ec62f674cbb1f42fa3f0e8d69cab5f05c248","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e4acaf0f_412c065e","in_reply_to":"0d2b61b9_945f7324","updated":"2021-10-19 10:57:43.000000000","message":"We have this enabled with a depends on in https://review.opendev.org/c/openstack/neutron/+/805637\n\nHere is the latest run that shows this tempest change works with the new Neutron API extension https://30d2b6e5c99136cdb7aa-4618d4984c12b0deb307a39ef9d3145f.ssl.cf1.rackcdn.com/805637/11/check/neutron-ovs-tempest-multinode-full/1c66f8c/testr_results.html","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"47069422f04b2d2267ba3ad5391a9cb194498342","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0d2b61b9_945f7324","in_reply_to":"bf2703ab_659a85f7","updated":"2021-10-14 14:57:34.000000000","message":"I remember now, it is enabled and run in neutron-ovs-tempest-multinode-full job, can we have a DNM patch to see the result.","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"720341bb445fba521dd0ac53f81531b081cc1f36","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cb056e41_c497d065","updated":"2021-10-26 17:38:40.000000000","message":"lgtm, let\u0027 use the utils method to check extension. ","commit_id":"8013cf659083592ea0254e399d434ea40f141860"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c76943c6d4da5f7c5fb3c71687301ceed3070da2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"edd3632e_4a46a8ca","updated":"2021-10-28 14:17:17.000000000","message":"Martin is on PTO, let\u0027s merge it. ","commit_id":"20514ef504ce71e252601006c919cf40b1e5d8b5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b22949a870a5194b823d52ce4ac1ab06c80b40b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9320c3f7_9dfa1dfb","updated":"2021-10-28 01:00:04.000000000","message":"lgtm.","commit_id":"20514ef504ce71e252601006c919cf40b1e5d8b5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c37a02e3e0b6a01fff4d47f4dc296c5068aead7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9addbff8_885d21ee","updated":"2021-10-27 22:21:14.000000000","message":"recheck","commit_id":"20514ef504ce71e252601006c919cf40b1e5d8b5"}],"tempest/scenario/test_minbw_allocation_placement.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"247b520aa65721030030928952716ef2b50579ab","unresolved":true,"context_lines":[{"line_number":198,"context_line":"                    \u0027allocation\u0027]"},{"line_number":199,"context_line":"                # NOTE(gibi): the format of the allocation key depends on the"},{"line_number":200,"context_line":"                # existence of port-resource-request-groups API extension."},{"line_number":201,"context_line":"                # TODO(gibi): drop the else branch once tempest does not need"},{"line_number":202,"context_line":"                # to support Xena release any more."},{"line_number":203,"context_line":"                if isinstance(port_binding_alloc, dict):"},{"line_number":204,"context_line":"                    self.assertEqual("},{"line_number":205,"context_line":"                        {allocation_rp},"}],"source_content_type":"text/x-python","patch_set":1,"id":"38d2e482_b544cbf9","line":202,"range":{"start_line":201,"start_character":64,"end_line":202,"end_character":33},"updated":"2021-09-20 15:28:42.000000000","message":"that\u0027s a long story (I hope) :-)","commit_id":"80b18c69f25190ff558ff5954a903c04aa9a67c3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ba1ec62f674cbb1f42fa3f0e8d69cab5f05c248","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                    \u0027allocation\u0027]"},{"line_number":199,"context_line":"                # NOTE(gibi): the format of the allocation key depends on the"},{"line_number":200,"context_line":"                # existence of port-resource-request-groups API extension."},{"line_number":201,"context_line":"                # TODO(gibi): drop the else branch once tempest does not need"},{"line_number":202,"context_line":"                # to support Xena release any more."},{"line_number":203,"context_line":"                if isinstance(port_binding_alloc, dict):"},{"line_number":204,"context_line":"                    self.assertEqual("},{"line_number":205,"context_line":"                        {allocation_rp},"}],"source_content_type":"text/x-python","patch_set":1,"id":"ca52aea8_e3266bcb","line":202,"range":{"start_line":201,"start_character":64,"end_line":202,"end_character":33},"in_reply_to":"38d2e482_b544cbf9","updated":"2021-10-19 10:57:43.000000000","message":"Ack","commit_id":"80b18c69f25190ff558ff5954a903c04aa9a67c3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"67588e5a616381bcb9fee96702713d0092d58df6","unresolved":true,"context_lines":[{"line_number":193,"context_line":"                port \u003d self.os_admin.ports_client.show_port(port_id)"},{"line_number":194,"context_line":"                port_binding_alloc \u003d port[\u0027port\u0027][\u0027binding:profile\u0027]["},{"line_number":195,"context_line":"                    \u0027allocation\u0027]"},{"line_number":196,"context_line":"                # NOTE(gibi): the format of the allocation key depends on the"},{"line_number":197,"context_line":"                # existence of port-resource-request-groups API extension."},{"line_number":198,"context_line":"                # TODO(gibi): drop the else branch once tempest does not need"},{"line_number":199,"context_line":"                # to support Xena release any more."},{"line_number":200,"context_line":"                if isinstance(port_binding_alloc, dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"a8e94ba7_08ebfdda","line":197,"range":{"start_line":196,"start_character":29,"end_line":197,"end_character":73},"updated":"2021-10-14 14:40:54.000000000","message":"in this case we should check if port-resource-request-groups extension is enabled or not. because even in newer neutron version (\u003estable/xexa) this extension can be disabled right? I hope in that case we the format tested in else(original assert) part.","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"274a946bbd69ae872d8a201f47c82d2e3cc7c79e","unresolved":true,"context_lines":[{"line_number":193,"context_line":"                port \u003d self.os_admin.ports_client.show_port(port_id)"},{"line_number":194,"context_line":"                port_binding_alloc \u003d port[\u0027port\u0027][\u0027binding:profile\u0027]["},{"line_number":195,"context_line":"                    \u0027allocation\u0027]"},{"line_number":196,"context_line":"                # NOTE(gibi): the format of the allocation key depends on the"},{"line_number":197,"context_line":"                # existence of port-resource-request-groups API extension."},{"line_number":198,"context_line":"                # TODO(gibi): drop the else branch once tempest does not need"},{"line_number":199,"context_line":"                # to support Xena release any more."},{"line_number":200,"context_line":"                if isinstance(port_binding_alloc, dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ad2b8058_eac1b7fe","line":197,"range":{"start_line":196,"start_character":29,"end_line":197,"end_character":73},"in_reply_to":"a8e94ba7_08ebfdda","updated":"2021-10-14 14:42:14.000000000","message":"even if else condition will be safe guard in that case but I will suggest we assert on new format if port-resource-request-groups extension is enabled to detect if that new extensions works fine or not.","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ba1ec62f674cbb1f42fa3f0e8d69cab5f05c248","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                port \u003d self.os_admin.ports_client.show_port(port_id)"},{"line_number":194,"context_line":"                port_binding_alloc \u003d port[\u0027port\u0027][\u0027binding:profile\u0027]["},{"line_number":195,"context_line":"                    \u0027allocation\u0027]"},{"line_number":196,"context_line":"                # NOTE(gibi): the format of the allocation key depends on the"},{"line_number":197,"context_line":"                # existence of port-resource-request-groups API extension."},{"line_number":198,"context_line":"                # TODO(gibi): drop the else branch once tempest does not need"},{"line_number":199,"context_line":"                # to support Xena release any more."},{"line_number":200,"context_line":"                if isinstance(port_binding_alloc, dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"0bb0116b_c2e1a572","line":197,"range":{"start_line":196,"start_character":29,"end_line":197,"end_character":73},"in_reply_to":"ad2b8058_eac1b7fe","updated":"2021-10-19 10:57:43.000000000","message":"I don\u0027t think port-resource-request-groups can be disabled after Yoga. Still you are right that tempest should work with older deployments where the extension might not exists and therefore the old format is used. \n\nI changed this to depend on the extension instead of looking into the type.","commit_id":"6be75cba57e0d2f2c170489f0eb8b1dd09bde529"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"720341bb445fba521dd0ac53f81531b081cc1f36","unresolved":true,"context_lines":[{"line_number":83,"context_line":"    def setUp(self):"},{"line_number":84,"context_line":"        super(MinBwAllocationPlacementTest, self).setUp()"},{"line_number":85,"context_line":"        self._check_if_allocation_is_possible()"},{"line_number":86,"context_line":"        extensions \u003d self.network_extension_client.list_extensions("},{"line_number":87,"context_line":"            )[\u0027extensions\u0027]"},{"line_number":88,"context_line":"        extension_aliases \u003d [ext[\u0027alias\u0027] for ext in extensions]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.port_resource_request_groups_extension_available \u003d ("},{"line_number":91,"context_line":"            \u0027port-resource-request-groups\u0027 in extension_aliases)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _create_policy_and_min_bw_rule(self, name_prefix, min_kbps):"},{"line_number":94,"context_line":"        policy \u003d self.qos_client.create_qos_policy("}],"source_content_type":"text/x-python","patch_set":3,"id":"35477e85_10754ba5","line":91,"range":{"start_line":86,"start_character":0,"end_line":91,"end_character":64},"updated":"2021-10-26 17:38:40.000000000","message":"we have the utils method to check the configured extensions, let\u0027s use that and even directly at L207\n\n https://github.com/openstack/tempest/blob/7e96c8e854386f43604ad098a6ec7606ee676145/tempest/common/utils/__init__.py#L94","commit_id":"8013cf659083592ea0254e399d434ea40f141860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3646ed04c0d1012ba8c3a4cfdd9039d2af67414a","unresolved":true,"context_lines":[{"line_number":83,"context_line":"    def setUp(self):"},{"line_number":84,"context_line":"        super(MinBwAllocationPlacementTest, self).setUp()"},{"line_number":85,"context_line":"        self._check_if_allocation_is_possible()"},{"line_number":86,"context_line":"        extensions \u003d self.network_extension_client.list_extensions("},{"line_number":87,"context_line":"            )[\u0027extensions\u0027]"},{"line_number":88,"context_line":"        extension_aliases \u003d [ext[\u0027alias\u0027] for ext in extensions]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.port_resource_request_groups_extension_available \u003d ("},{"line_number":91,"context_line":"            \u0027port-resource-request-groups\u0027 in extension_aliases)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _create_policy_and_min_bw_rule(self, name_prefix, min_kbps):"},{"line_number":94,"context_line":"        policy \u003d self.qos_client.create_qos_policy("}],"source_content_type":"text/x-python","patch_set":3,"id":"f9824f8e_228a7976","line":91,"range":{"start_line":86,"start_character":0,"end_line":91,"end_character":64},"in_reply_to":"35477e85_10754ba5","updated":"2021-10-27 16:33:41.000000000","message":"Could you explain why we need a tempest configuration based detection of extensions instead of using the API directly to detect the available extensions? It is automatic now, but if I change this to tempest config driven then I have to also modify devstack to configure tempest with the extra extension. I don\u0027t see what is the benefit of this extra indirection.","commit_id":"8013cf659083592ea0254e399d434ea40f141860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"151efe83169a4fb4e743d6a290a8403e3366ed40","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    def setUp(self):"},{"line_number":84,"context_line":"        super(MinBwAllocationPlacementTest, self).setUp()"},{"line_number":85,"context_line":"        self._check_if_allocation_is_possible()"},{"line_number":86,"context_line":"        extensions \u003d self.network_extension_client.list_extensions("},{"line_number":87,"context_line":"            )[\u0027extensions\u0027]"},{"line_number":88,"context_line":"        extension_aliases \u003d [ext[\u0027alias\u0027] for ext in extensions]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.port_resource_request_groups_extension_available \u003d ("},{"line_number":91,"context_line":"            \u0027port-resource-request-groups\u0027 in extension_aliases)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _create_policy_and_min_bw_rule(self, name_prefix, min_kbps):"},{"line_number":94,"context_line":"        policy \u003d self.qos_client.create_qos_policy("}],"source_content_type":"text/x-python","patch_set":3,"id":"2ec19241_fd21a924","line":91,"range":{"start_line":86,"start_character":0,"end_line":91,"end_character":64},"in_reply_to":"bb65c0c9_eadff456","updated":"2021-10-28 09:51:13.000000000","message":"Thanks for the explanation I think I got it now","commit_id":"8013cf659083592ea0254e399d434ea40f141860"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"dc91ef6e98291271211cff17b7b7b24cb51fa46b","unresolved":true,"context_lines":[{"line_number":83,"context_line":"    def setUp(self):"},{"line_number":84,"context_line":"        super(MinBwAllocationPlacementTest, self).setUp()"},{"line_number":85,"context_line":"        self._check_if_allocation_is_possible()"},{"line_number":86,"context_line":"        extensions \u003d self.network_extension_client.list_extensions("},{"line_number":87,"context_line":"            )[\u0027extensions\u0027]"},{"line_number":88,"context_line":"        extension_aliases \u003d [ext[\u0027alias\u0027] for ext in extensions]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.port_resource_request_groups_extension_available \u003d ("},{"line_number":91,"context_line":"            \u0027port-resource-request-groups\u0027 in extension_aliases)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _create_policy_and_min_bw_rule(self, name_prefix, min_kbps):"},{"line_number":94,"context_line":"        policy \u003d self.qos_client.create_qos_policy("}],"source_content_type":"text/x-python","patch_set":3,"id":"bb65c0c9_eadff456","line":91,"range":{"start_line":86,"start_character":0,"end_line":91,"end_character":64},"in_reply_to":"f9824f8e_228a7976","updated":"2021-10-27 17:20:09.000000000","message":"The main goal is to test the expected cloud-config via tempest configuration instead of automatically detecting what is there is cloud return. With the desired configured extensions (or any other config like resize is enabled or not) in Tempest, the test will assert if service API returns that way otherwise fail. For example, if list extensions API does not return \u0027port-resource-request-groups (due to some neutron erorr or misconfiguration in cloud) then we will assert different API responses, and test will pass. And if we use Tempest configured extensions that have \u0027port-resource-request-groups\u0027 then the test will fail as expected.","commit_id":"8013cf659083592ea0254e399d434ea40f141860"}]}
