)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c1fb6298c32e0d7dc4ab8cd4a8dee3a26beb0bd1","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     René Ribaud \u003crribaud@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-11-27 14:09:45 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add virt/libvirt error test cases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch add libvirt functional tests to test error cases."},{"line_number":10,"context_line":"It also change the libvirt fixture to handre libvirt filesystems that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":64,"id":"db889ef9_e2e10d00","line":7,"updated":"2024-12-09 14:09:07.000000000","message":"I would have been more specific by adding context of the test cases added.","commit_id":"1f756657d85de7900a207485ca657f788c3ee024"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d9729f2d01a2a6b08d9b804e44f135a017aed22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":58,"id":"204a09db_a458eb3a","updated":"2024-11-05 14:21:57.000000000","message":"thanks for the test coverage, I appreciate it.\n\nI have couple of suggestions inline.","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bf1978bf33f7e9ed4fe14087c8f9f8cc47b8d01b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":59,"id":"3b3d525f_0c2e4028","updated":"2024-11-15 10:54:35.000000000","message":"Test nit remains. Please propose a follow up then I will upgrade my vote.","commit_id":"4e5411d89131742edf20afb03865f689567deea3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"833e861c31a9554152c5e44433f0f55aa4cfe965","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":60,"id":"88aa2a2c_d6b50f3d","updated":"2024-11-21 08:58:43.000000000","message":"FUP is in the works so I\u0027m upgrading my vote.","commit_id":"db1c742c66d8efd651dc03c585938087d98a1b27"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9962fc417fd60d45f146682c4ff268657b66805e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":63,"id":"adbbe198_768fcb82","updated":"2024-11-22 16:42:42.000000000","message":"all good","commit_id":"7fcb8b1a98985a3ef84c40d5f93cbcdf38ee20e4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e8f57d3653fdd8071c75692eb01ced0a41aaecdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"226cd946_d89b9510","updated":"2024-12-11 12:24:29.000000000","message":"recheck ancestor","commit_id":"1f756657d85de7900a207485ca657f788c3ee024"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"5accedb456c22db64ad8ec4caab83c3ffc724751","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"64541d19_db039324","updated":"2024-12-13 09:29:32.000000000","message":"recheck https://review.opendev.org/852086 is now merged","commit_id":"1f756657d85de7900a207485ca657f788c3ee024"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"666c957a44821f5348af9dde5e73a4877bd7e5a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"da2a4adb_ee2c8804","updated":"2024-12-09 10:30:44.000000000","message":"recheck parent merged","commit_id":"1f756657d85de7900a207485ca657f788c3ee024"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2e2ff3169cc9c1b72761deb9c6088e8e8460149e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"13fa829d_3aca2f8e","updated":"2024-12-10 12:41:47.000000000","message":"recheck requeue after ancestor rechecked","commit_id":"1f756657d85de7900a207485ca657f788c3ee024"}],"nova/tests/functional/libvirt/test_server_shares.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d9729f2d01a2a6b08d9b804e44f135a017aed22","unresolved":true,"context_lines":[{"line_number":143,"context_line":"    def test_server_share_metadata_with_tag(self):"},{"line_number":144,"context_line":"        \"\"\"Verify that share metadata are available with the provided tag\"\"\""},{"line_number":145,"context_line":"        with mock.patch("},{"line_number":146,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver.\u0027"},{"line_number":147,"context_line":"            \u0027disconnect_volume\u0027"},{"line_number":148,"context_line":"        ), mock.patch("},{"line_number":149,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver.\u0027"},{"line_number":150,"context_line":"            \u0027connect_volume\u0027"},{"line_number":151,"context_line":"        ):"},{"line_number":152,"context_line":"            traits \u003d self._get_provider_traits("},{"line_number":153,"context_line":"                self.compute_rp_uuids[self.compute])"},{"line_number":154,"context_line":"            for trait in ("}],"source_content_type":"text/x-python","patch_set":58,"id":"af1ac640_894a2d5e","line":151,"range":{"start_line":146,"start_character":1,"end_line":151,"end_character":10},"updated":"2024-11-05 14:21:57.000000000","message":"as it is alway mocked mock it in the base calls via the fixture MockPatch way.","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"1c28af33fe34708dcd2df9364f95387d0c502809","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    def test_server_share_metadata_with_tag(self):"},{"line_number":144,"context_line":"        \"\"\"Verify that share metadata are available with the provided tag\"\"\""},{"line_number":145,"context_line":"        with mock.patch("},{"line_number":146,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver.\u0027"},{"line_number":147,"context_line":"            \u0027disconnect_volume\u0027"},{"line_number":148,"context_line":"        ), mock.patch("},{"line_number":149,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver.\u0027"},{"line_number":150,"context_line":"            \u0027connect_volume\u0027"},{"line_number":151,"context_line":"        ):"},{"line_number":152,"context_line":"            traits \u003d self._get_provider_traits("},{"line_number":153,"context_line":"                self.compute_rp_uuids[self.compute])"},{"line_number":154,"context_line":"            for trait in ("}],"source_content_type":"text/x-python","patch_set":58,"id":"bd945d1c_c6d048d1","line":151,"range":{"start_line":146,"start_character":1,"end_line":151,"end_character":10},"in_reply_to":"af1ac640_894a2d5e","updated":"2024-11-25 08:52:29.000000000","message":"Done","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d9729f2d01a2a6b08d9b804e44f135a017aed22","unresolved":true,"context_lines":[{"line_number":261,"context_line":"    def test_server_share_mount_failure(self):"},{"line_number":262,"context_line":"        os.environ[\u0027OS_DEBUG\u0027] \u003d \"true\""},{"line_number":263,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"},{"line_number":264,"context_line":"        for trait in (\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027):"},{"line_number":265,"context_line":"            self.assertIn(trait, traits)"},{"line_number":266,"context_line":"        with mock.patch("},{"line_number":267,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":268,"context_line":"            \u0027.connect_volume\u0027,"}],"source_content_type":"text/x-python","patch_set":58,"id":"308ee4ef_22dc1bb9","line":265,"range":{"start_line":264,"start_character":0,"end_line":265,"end_character":40},"updated":"2024-11-05 14:21:57.000000000","message":"nit: you can compute the intersection of the two sets and then assert that is equal with your list of traits. :)\n```\nexpect_traits \u003d {\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027}\nself.assertEqual(expected_traits, expected_traits.intersection(traits))\n```\nbut with two traits inlineing the loop to two assertIn would be totally OK too. :)","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"1c28af33fe34708dcd2df9364f95387d0c502809","unresolved":false,"context_lines":[{"line_number":261,"context_line":"    def test_server_share_mount_failure(self):"},{"line_number":262,"context_line":"        os.environ[\u0027OS_DEBUG\u0027] \u003d \"true\""},{"line_number":263,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"},{"line_number":264,"context_line":"        for trait in (\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027):"},{"line_number":265,"context_line":"            self.assertIn(trait, traits)"},{"line_number":266,"context_line":"        with mock.patch("},{"line_number":267,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":268,"context_line":"            \u0027.connect_volume\u0027,"}],"source_content_type":"text/x-python","patch_set":58,"id":"e5afa33c_c4d67304","line":265,"range":{"start_line":264,"start_character":0,"end_line":265,"end_character":40},"in_reply_to":"308ee4ef_22dc1bb9","updated":"2024-11-25 08:52:29.000000000","message":"Thanks for the suggestion about set.\nThis is done, and I extracted it into a function to avoid repetition.","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d9729f2d01a2a6b08d9b804e44f135a017aed22","unresolved":true,"context_lines":[{"line_number":263,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"},{"line_number":264,"context_line":"        for trait in (\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027):"},{"line_number":265,"context_line":"            self.assertIn(trait, traits)"},{"line_number":266,"context_line":"        with mock.patch("},{"line_number":267,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":268,"context_line":"            \u0027.connect_volume\u0027,"},{"line_number":269,"context_line":"            side_effect\u003dprocessutils.ProcessExecutionError"},{"line_number":270,"context_line":"        ):"},{"line_number":271,"context_line":"            server \u003d self._create_server(networks\u003d\u0027auto\u0027)"},{"line_number":272,"context_line":"            self._stop_server(server)"},{"line_number":273,"context_line":""}],"source_content_type":"text/x-python","patch_set":58,"id":"50026a71_88557c3c","line":270,"range":{"start_line":266,"start_character":0,"end_line":270,"end_character":10},"updated":"2024-11-05 14:21:57.000000000","message":"by mocking it in the base class, you can store the mock in a variable and via that you can just change the side_effect of the mock here","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"1c28af33fe34708dcd2df9364f95387d0c502809","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"},{"line_number":264,"context_line":"        for trait in (\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027):"},{"line_number":265,"context_line":"            self.assertIn(trait, traits)"},{"line_number":266,"context_line":"        with mock.patch("},{"line_number":267,"context_line":"            \u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":268,"context_line":"            \u0027.connect_volume\u0027,"},{"line_number":269,"context_line":"            side_effect\u003dprocessutils.ProcessExecutionError"},{"line_number":270,"context_line":"        ):"},{"line_number":271,"context_line":"            server \u003d self._create_server(networks\u003d\u0027auto\u0027)"},{"line_number":272,"context_line":"            self._stop_server(server)"},{"line_number":273,"context_line":""}],"source_content_type":"text/x-python","patch_set":58,"id":"bc565742_fbeb1b5e","line":270,"range":{"start_line":266,"start_character":0,"end_line":270,"end_character":10},"in_reply_to":"50026a71_88557c3c","updated":"2024-11-25 08:52:29.000000000","message":"Done","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d9729f2d01a2a6b08d9b804e44f135a017aed22","unresolved":true,"context_lines":[{"line_number":421,"context_line":"                self.context, server[\u0027id\u0027])"},{"line_number":422,"context_line":"            self.assertEqual(self.instance.vm_state, \u0027active\u0027)"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":425,"context_line":"                \u0027.disconnect_volume\u0027,"},{"line_number":426,"context_line":"                side_effect\u003dprocessutils.ProcessExecutionError)"},{"line_number":427,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":428,"context_line":"                \u0027.connect_volume\u0027)"},{"line_number":429,"context_line":"    def test_server_share_umount_failure(self, mock_mount, mock_umount):"},{"line_number":430,"context_line":"        os.environ[\u0027OS_DEBUG\u0027] \u003d \"true\""},{"line_number":431,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"}],"source_content_type":"text/x-python","patch_set":58,"id":"40815593_34206dca","line":428,"range":{"start_line":424,"start_character":0,"end_line":428,"end_character":34},"updated":"2024-11-05 14:21:57.000000000","message":"ditto move it to base class","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"1c28af33fe34708dcd2df9364f95387d0c502809","unresolved":false,"context_lines":[{"line_number":421,"context_line":"                self.context, server[\u0027id\u0027])"},{"line_number":422,"context_line":"            self.assertEqual(self.instance.vm_state, \u0027active\u0027)"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":425,"context_line":"                \u0027.disconnect_volume\u0027,"},{"line_number":426,"context_line":"                side_effect\u003dprocessutils.ProcessExecutionError)"},{"line_number":427,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.volume.nfs.LibvirtNFSVolumeDriver\u0027"},{"line_number":428,"context_line":"                \u0027.connect_volume\u0027)"},{"line_number":429,"context_line":"    def test_server_share_umount_failure(self, mock_mount, mock_umount):"},{"line_number":430,"context_line":"        os.environ[\u0027OS_DEBUG\u0027] \u003d \"true\""},{"line_number":431,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"}],"source_content_type":"text/x-python","patch_set":58,"id":"8000e432_c76502ef","line":428,"range":{"start_line":424,"start_character":0,"end_line":428,"end_character":34},"in_reply_to":"40815593_34206dca","updated":"2024-11-25 08:52:29.000000000","message":"Done","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4d9729f2d01a2a6b08d9b804e44f135a017aed22","unresolved":true,"context_lines":[{"line_number":429,"context_line":"    def test_server_share_umount_failure(self, mock_mount, mock_umount):"},{"line_number":430,"context_line":"        os.environ[\u0027OS_DEBUG\u0027] \u003d \"true\""},{"line_number":431,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"},{"line_number":432,"context_line":"        for trait in (\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027):"},{"line_number":433,"context_line":"            self.assertIn(trait, traits)"},{"line_number":434,"context_line":"        server \u003d self._create_server(networks\u003d\u0027auto\u0027)"},{"line_number":435,"context_line":"        self._stop_server(server)"},{"line_number":436,"context_line":""}],"source_content_type":"text/x-python","patch_set":58,"id":"faf1e9c1_18157000","line":433,"range":{"start_line":432,"start_character":1,"end_line":433,"end_character":40},"updated":"2024-11-05 14:21:57.000000000","message":"do we need this in more than one test case?","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"1c28af33fe34708dcd2df9364f95387d0c502809","unresolved":true,"context_lines":[{"line_number":429,"context_line":"    def test_server_share_umount_failure(self, mock_mount, mock_umount):"},{"line_number":430,"context_line":"        os.environ[\u0027OS_DEBUG\u0027] \u003d \"true\""},{"line_number":431,"context_line":"        traits \u003d self._get_provider_traits(self.compute_rp_uuids[self.compute])"},{"line_number":432,"context_line":"        for trait in (\u0027COMPUTE_STORAGE_VIRTIO_FS\u0027, \u0027COMPUTE_MEM_BACKING_FILE\u0027):"},{"line_number":433,"context_line":"            self.assertIn(trait, traits)"},{"line_number":434,"context_line":"        server \u003d self._create_server(networks\u003d\u0027auto\u0027)"},{"line_number":435,"context_line":"        self._stop_server(server)"},{"line_number":436,"context_line":""}],"source_content_type":"text/x-python","patch_set":58,"id":"8c432d23_14eed0e2","line":433,"range":{"start_line":432,"start_character":1,"end_line":433,"end_character":40},"in_reply_to":"faf1e9c1_18157000","updated":"2024-11-25 08:52:29.000000000","message":"I have kept this into several tests. I don\u0027t think it hurts.","commit_id":"04d3976d29a91b83ba3cfd848531d443710a6f15"}]}
