)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"c8c6c4aae6a6cf1dc042dca05642986d7aeec71f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0f0d48a9_4499110d","updated":"2022-02-28 19:29:51.000000000","message":"Adding SR-IOV Downstream test results:\n(overcloud) (.tempest) [stack@undercloud-0 tempest-dir]$ tempest run --serial --regex whitebox_tempest_plugin.api.compute.test_sriov\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVMigration.test_sriov_direct_live_migration [37.454842s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVMigration.test_sriov_macvtap_live_migration [34.497919s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVNumaAffinity.test_sriov_affinity_preferred [30.150691s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVNumaAffinity.test_sriov_affinity_required [19.639777s] ... ok\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 4 tests in 126.3546 sec.\n - Passed: 4\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 121.7432 sec.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWorker Balance\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n - Worker 0 (4 tests) \u003d\u003e 0:02:06.354635\n","commit_id":"287c09ba2f9a6d4839d3227610697c07e90a1170"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64102bfd663be619b5f60646d9991d5f7e574c2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cdce9698_123bbb9d","updated":"2022-03-01 19:11:02.000000000","message":"-1 for the max_compute_nodes thing","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"46a08dea785bf8d841f0f2cd074d7d9fbeb5817a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d5e6ffbd_893411e3","updated":"2022-03-01 19:07:12.000000000","message":"Downstream results:\n\n(.tempest) (undercloud) [stack@undercloud-0 tempest-dir]$ tempest run --serial --regex whitebox_tempest_plugin.api.compute.test_sriov.\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVMigration.test_sriov_direct_live_migration [32.487334s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVMigration.test_sriov_macvtap_live_migration [28.313167s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVNumaAffinity.test_sriov_affinity_preferred [24.202051s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVNumaAffinity.test_sriov_affinity_required [19.279536s] ... ok\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 4 tests in 108.9887 sec.\n - Passed: 4\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 104.2821 sec.\n","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"03e7f6b71367f9feb0a1549cafe22c901612bbd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"68208add_f13fdf03","updated":"2022-03-01 19:27:29.000000000","message":"Latest downstream results:\n(.tempest) (overcloud) [stack@undercloud-0 tempest-dir]$ tempest run --serial --regex whitebox_tempest_plugin.api.compute.test_sriov\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVMigration.test_sriov_direct_live_migration [31.719795s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVMigration.test_sriov_macvtap_live_migration [30.004166s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVNumaAffinity.test_sriov_affinity_preferred [23.702496s] ... ok\n{0} whitebox_tempest_plugin.api.compute.test_sriov.SRIOVNumaAffinity.test_sriov_affinity_required [17.000577s] ... ok\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 4 tests in 106.7599 sec.\n - Passed: 4\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 102.4270 sec.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWorker Balance\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n - Worker 0 (4 tests) \u003d\u003e 0:01:46.759860\n","commit_id":"4b48bd2b4102e054f629b714e951ff54bd8267e6"}],"whitebox_tempest_plugin/api/compute/test_sriov.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64102bfd663be619b5f60646d9991d5f7e574c2d","unresolved":true,"context_lines":[{"line_number":89,"context_line":"    def _create_sriov_subnet(self, network_id):"},{"line_number":90,"context_line":"        \"\"\"Create an IPv4 L2 vlan network.  Physical network provider comes"},{"line_number":91,"context_line":"        from sriov_physnet provided in tempest config"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        :param network_id: str, network id subnet will be associated with"},{"line_number":94,"context_line":"        :return net A dictionary describing details about the created network"},{"line_number":95,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1491e64f_36b249d0","side":"PARENT","line":92,"updated":"2022-03-01 19:11:02.000000000","message":"nit: accidentally unrelated whitespace?","commit_id":"3f229c8a308bdeec9b26ff8b239f12890891b94a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"fb8374e6364dd1f28262f0582b0daf14809189dc","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def _create_sriov_subnet(self, network_id):"},{"line_number":90,"context_line":"        \"\"\"Create an IPv4 L2 vlan network.  Physical network provider comes"},{"line_number":91,"context_line":"        from sriov_physnet provided in tempest config"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        :param network_id: str, network id subnet will be associated with"},{"line_number":94,"context_line":"        :return net A dictionary describing details about the created network"},{"line_number":95,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1af5122c_c551269f","side":"PARENT","line":92,"in_reply_to":"1491e64f_36b249d0","updated":"2022-03-01 19:14:43.000000000","message":"must be thanks","commit_id":"3f229c8a308bdeec9b26ff8b239f12890891b94a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64102bfd663be619b5f60646d9991d5f7e574c2d","unresolved":true,"context_lines":[{"line_number":462,"context_line":"        \"\"\""},{"line_number":463,"context_line":"        net_vlan \u003d \\"},{"line_number":464,"context_line":"            CONF.network_feature_enabled.provider_net_base_segmentation_id"},{"line_number":465,"context_line":"        hostname1, hostname2 \u003d self.list_compute_hosts()"},{"line_number":466,"context_line":"        flavor \u003d self.create_flavor()"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        port \u003d self._create_sriov_port("}],"source_content_type":"text/x-python","patch_set":3,"id":"4f8b632a_65fe27dc","side":"PARENT","line":465,"updated":"2022-03-01 19:11:02.000000000","message":"Oohh, I like this!","commit_id":"3f229c8a308bdeec9b26ff8b239f12890891b94a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"fb8374e6364dd1f28262f0582b0daf14809189dc","unresolved":false,"context_lines":[{"line_number":462,"context_line":"        \"\"\""},{"line_number":463,"context_line":"        net_vlan \u003d \\"},{"line_number":464,"context_line":"            CONF.network_feature_enabled.provider_net_base_segmentation_id"},{"line_number":465,"context_line":"        hostname1, hostname2 \u003d self.list_compute_hosts()"},{"line_number":466,"context_line":"        flavor \u003d self.create_flavor()"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        port \u003d self._create_sriov_port("}],"source_content_type":"text/x-python","patch_set":3,"id":"e7743273_0c8b352c","side":"PARENT","line":465,"in_reply_to":"4f8b632a_65fe27dc","updated":"2022-03-01 19:14:43.000000000","message":"Done","commit_id":"3f229c8a308bdeec9b26ff8b239f12890891b94a"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64102bfd663be619b5f60646d9991d5f7e574c2d","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    @classmethod"},{"line_number":49,"context_line":"    def setup_clients(cls):"},{"line_number":50,"context_line":"        super(SRIOVBase, cls).setup_clients()"},{"line_number":51,"context_line":"        cls.ports_client \u003d cls.os_primary.ports_client"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_expected_xml_interface_type(self, port):"},{"line_number":54,"context_line":"        \"\"\"Return expected domain xml interface type based on port vnic_type"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f7d7725_0ad854be","line":51,"range":{"start_line":51,"start_character":27,"end_line":51,"end_character":54},"updated":"2022-03-01 19:11:02.000000000","message":"You can just use this inline everywhere you would have used cls.ports_client, but OK.","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"fb8374e6364dd1f28262f0582b0daf14809189dc","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    @classmethod"},{"line_number":49,"context_line":"    def setup_clients(cls):"},{"line_number":50,"context_line":"        super(SRIOVBase, cls).setup_clients()"},{"line_number":51,"context_line":"        cls.ports_client \u003d cls.os_primary.ports_client"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_expected_xml_interface_type(self, port):"},{"line_number":54,"context_line":"        \"\"\"Return expected domain xml interface type based on port vnic_type"}],"source_content_type":"text/x-python","patch_set":3,"id":"5d933e01_4802f61d","line":51,"range":{"start_line":51,"start_character":27,"end_line":51,"end_character":54},"in_reply_to":"7f7d7725_0ad854be","updated":"2022-03-01 19:14:43.000000000","message":"Ack I\u0027ll go ahead and change this as well.","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64102bfd663be619b5f60646d9991d5f7e574c2d","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            \u0027provider:network_type\u0027: \u0027vlan\u0027,"},{"line_number":85,"context_line":"            \u0027provider:physical_network\u0027: physical_net,"},{"line_number":86,"context_line":"            \u0027provider:segmentation_id\u0027: vlan_id,"},{"line_number":87,"context_line":"            \u0027shared\u0027: True"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"        net \u003d self.os_admin.networks_client.create_network("},{"line_number":90,"context_line":"            name\u003dname_net,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f496c72_80287f31","line":87,"updated":"2022-03-01 19:11:02.000000000","message":"Aha, nice, and that allows the network to be used by users.","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"fb8374e6364dd1f28262f0582b0daf14809189dc","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            \u0027provider:network_type\u0027: \u0027vlan\u0027,"},{"line_number":85,"context_line":"            \u0027provider:physical_network\u0027: physical_net,"},{"line_number":86,"context_line":"            \u0027provider:segmentation_id\u0027: vlan_id,"},{"line_number":87,"context_line":"            \u0027shared\u0027: True"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"        net \u003d self.os_admin.networks_client.create_network("},{"line_number":90,"context_line":"            name\u003dname_net,"}],"source_content_type":"text/x-python","patch_set":3,"id":"2135320d_cbd1019f","line":87,"in_reply_to":"5f496c72_80287f31","updated":"2022-03-01 19:14:43.000000000","message":"Done","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64102bfd663be619b5f60646d9991d5f7e574c2d","unresolved":true,"context_lines":[{"line_number":444,"context_line":"    def skip_checks(cls):"},{"line_number":445,"context_line":"        super(SRIOVMigration, cls).skip_checks()"},{"line_number":446,"context_line":"        if (CONF.compute.min_compute_nodes \u003c 2 or"},{"line_number":447,"context_line":"                CONF.whitebox.max_compute_nodes \u003e 2):"},{"line_number":448,"context_line":"            raise cls.skipException(\u0027Exactly 2 compute nodes required.\u0027)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def _get_pci_status_count(self, status):"}],"source_content_type":"text/x-python","patch_set":3,"id":"44357cd7_f52e5cc0","line":447,"updated":"2022-03-01 19:11:02.000000000","message":"We can remove this now, right? Because we\u0027re no longer using list_compute_hosts() and assuming the length is 2?","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"fb8374e6364dd1f28262f0582b0daf14809189dc","unresolved":false,"context_lines":[{"line_number":444,"context_line":"    def skip_checks(cls):"},{"line_number":445,"context_line":"        super(SRIOVMigration, cls).skip_checks()"},{"line_number":446,"context_line":"        if (CONF.compute.min_compute_nodes \u003c 2 or"},{"line_number":447,"context_line":"                CONF.whitebox.max_compute_nodes \u003e 2):"},{"line_number":448,"context_line":"            raise cls.skipException(\u0027Exactly 2 compute nodes required.\u0027)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def _get_pci_status_count(self, status):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3096fd8a_cc7e3d0f","line":447,"in_reply_to":"44357cd7_f52e5cc0","updated":"2022-03-01 19:14:43.000000000","message":"Yup we just need the min_compute_nodes now.","commit_id":"9569ee2821f048a76cb1289a631cad7c0518e2cf"}]}
