Lines Matching refs:self

41     def setUp(self) -> None:  argument
42 self.vm_a = iotests.VM(path_suffix='-a')
43 self.vm_a.add_blockdev(f'node-name={self.src_node_name},'
45 self.vm_a.launch()
47 self.vm_b = iotests.VM(path_suffix='-b')
48 self.vm_b.add_blockdev(f'node-name={self.dst_node_name},'
50 self.vm_b.add_incoming(f'unix:{mig_sock}')
51 self.vm_b.launch()
53 self.vm_a.cmd('block-dirty-bitmap-add',
54 node=self.src_node_name,
55 name=self.src_bmap_name)
60 self.vm_a.hmp_qemu_io(self.src_node_name, f'discard {mb_ofs}M 1M')
62 result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
63 node=self.src_node_name,
64 name=self.src_bmap_name)
65 self.bitmap_hash_reference = result['return']['sha256']
70 for vm in (self.vm_a, self.vm_b):
73 def tearDown(self) -> None: argument
74 self.vm_a.shutdown()
75 self.vm_b.shutdown()
81 def check_bitmap(self, bitmap_name_valid: bool) -> None: argument
82 result = self.vm_b.qmp('x-debug-block-dirty-bitmap-sha256',
83 node=self.dst_node_name,
84 name=self.dst_bmap_name)
86 self.assert_qmp(result, 'return/sha256',
87 self.bitmap_hash_reference)
89 self.assert_qmp(result, 'error/desc',
92 def migrate(self, bitmap_name_valid: bool = True, argument
94 self.vm_a.cmd('migrate', uri=f'unix:{mig_sock}')
97 self.assertEqual(self.vm_a.wait_migration('postmigrate'),
99 self.assertEqual(self.vm_b.wait_migration('running'),
103 self.check_bitmap(bitmap_name_valid)
105 def verify_dest_error(self, msg: Optional[str]) -> None: argument
111 self.vm_b.shutdown()
113 log = self.vm_b.get_log()
117 self.assertNotIn('qemu-system-', log)
119 self.assertIn(msg, log)
133 def set_mapping(self, vm: iotests.VM, mapping: BlockBitmapMapping, argument
146 self.assert_qmp(result, 'return', {})
155 self.assertEqual(hmp_mapping, self.to_hmp_mapping(mapping))
157 self.assert_qmp(result, 'error/desc', error)
179 def test_migration_without_alias(self) -> None: argument
180 self.migrate(self.src_node_name == self.dst_node_name and
181 self.src_bmap_name == self.dst_bmap_name)
184 if self.src_node_name != self.dst_node_name:
185 self.verify_dest_error(f"Cannot find "
189 self.verify_dest_error(None)
191 def test_alias_on_src_migration(self) -> None: argument
192 mapping = self.mapping(self.src_node_name, self.dst_node_name,
193 self.src_bmap_name, self.dst_bmap_name)
195 self.set_mapping(self.vm_a, mapping)
196 self.migrate()
197 self.verify_dest_error(None)
199 def test_alias_on_dst_migration(self) -> None: argument
200 mapping = self.mapping(self.dst_node_name, self.src_node_name,
201 self.dst_bmap_name, self.src_bmap_name)
203 self.set_mapping(self.vm_b, mapping)
204 self.migrate()
205 self.verify_dest_error(None)
207 def test_alias_on_both_migration(self) -> None: argument
208 src_map = self.mapping(self.src_node_name, 'node-alias',
209 self.src_bmap_name, 'bmap-alias')
211 dst_map = self.mapping(self.dst_node_name, 'node-alias',
212 self.dst_bmap_name, 'bmap-alias')
214 self.set_mapping(self.vm_a, src_map)
215 self.set_mapping(self.vm_b, dst_map)
216 self.migrate()
217 self.verify_dest_error(None)
244 def test_migration_without_alias(self) -> None: argument
247 def test_alias_on_src_migration(self) -> None: argument
250 def test_alias_on_dst_migration(self) -> None: argument
264 def test_non_injective_node_mapping(self) -> None: argument
284 self.set_mapping(self.vm_a, mapping,
288 def test_non_injective_bitmap_mapping(self) -> None: argument
304 self.set_mapping(self.vm_a, mapping,
309 def test_ambiguous_node_mapping(self) -> None: argument
329 self.set_mapping(self.vm_a, mapping,
333 def test_ambiguous_bitmap_mapping(self) -> None: argument
349 self.set_mapping(self.vm_a, mapping,
353 def test_migratee_node_is_not_mapped_on_src(self) -> None: argument
354 self.set_mapping(self.vm_a, [])
356 self.migrate(False)
357 self.verify_dest_error(None)
359 def test_migratee_node_is_not_mapped_on_dst(self) -> None: argument
360 self.set_mapping(self.vm_b, [])
361 self.migrate(False)
362 self.verify_dest_error(f"Unknown node alias '{self.src_node_name}'")
364 def test_migratee_bitmap_is_not_mapped_on_src(self) -> None: argument
366 'node-name': self.src_node_name,
367 'alias': self.dst_node_name,
371 self.set_mapping(self.vm_a, mapping)
373 self.migrate(False)
374 self.verify_dest_error(None)
376 def test_migratee_bitmap_is_not_mapped_on_dst(self) -> None: argument
378 'node-name': self.dst_node_name,
379 'alias': self.src_node_name,
383 self.set_mapping(self.vm_b, mapping)
384 self.migrate(False)
385 self.verify_dest_error(f"Unknown bitmap alias "
390 def test_unused_mapping_on_dst(self) -> None: argument
392 self.set_mapping(self.vm_a, [])
395 self.set_mapping(self.vm_b, [])
399 self.migrate(False)
400 self.verify_dest_error(None)
402 def test_non_wellformed_node_alias(self) -> None: argument
406 'node-name': self.src_node_name,
411 self.set_mapping(self.vm_a, mapping,
415 def test_node_alias_too_long(self) -> None: argument
419 'node-name': self.src_node_name,
424 self.set_mapping(self.vm_a, mapping,
428 def test_bitmap_alias_too_long(self) -> None: argument
431 mapping = self.mapping(self.src_node_name, self.dst_node_name,
432 self.src_bmap_name, alias)
434 self.set_mapping(self.vm_a, mapping,
439 def test_bitmap_name_too_long(self) -> None: argument
442 self.vm_a.cmd('block-dirty-bitmap-add',
443 node=self.src_node_name,
446 self.migrate(False, False)
449 self.vm_a.shutdown()
451 log = self.vm_a.get_log()
454 self.assertIn(f"Cannot migrate bitmap '{name}' on node "
460 self.vm_b.wait()
461 rc = self.vm_b.exitcode()
464 def test_aliased_bitmap_name_too_long(self) -> None: argument
466 self.dst_bmap_name = 'a' * 1024
468 mapping = self.mapping(self.dst_node_name, self.src_node_name,
469 self.dst_bmap_name, self.src_bmap_name)
474 self.set_mapping(self.vm_b, mapping,
479 def test_node_name_too_long(self) -> None: argument
481 self.dst_node_name = 'a' * 32
483 mapping = self.mapping(self.dst_node_name, self.src_node_name,
484 self.dst_bmap_name, self.src_bmap_name)
489 self.set_mapping(self.vm_b, mapping,
512 def setUp(self) -> None: argument
513 TestDirtyBitmapMigration.setUp(self)
516 self.vm_a.cmd('blockdev-add',
519 self.vm_b.cmd('blockdev-add',
527 self.vm_a.cmd('block-dirty-bitmap-add',
563 def verify_dest_has_all_bitmaps(self) -> None: argument
564 bitmaps = self.vm_b.query_bitmaps()
570 self.assertEqual(bitmaps,
574 def test_alias_on_src(self) -> None: argument
575 self.set_mapping(self.vm_a, self.cross_mapping())
579 self.migrate()
580 self.verify_dest_has_all_bitmaps()
581 self.verify_dest_error(None)
583 def test_alias_on_dst(self) -> None: argument
584 self.set_mapping(self.vm_b, self.cross_mapping())
588 self.migrate()
589 self.verify_dest_has_all_bitmaps()
590 self.verify_dest_error(None)
603 def setUp(self) -> None: argument
604 TestDirtyBitmapMigration.setUp(self)
607 self.vm_a.cmd('blockdev-add',
611 self.vm_b.cmd('blockdev-add',
620 self.vm_a.cmd('block-dirty-bitmap-add',
660 def verify_dest_bitmap_state(self) -> None: argument
661 bitmaps = self.vm_b.query_bitmaps()
667 self.assertEqual(bitmaps,
671 def test_transform_on_src(self) -> None: argument
672 self.set_mapping(self.vm_a, self.transform_mapping())
674 self.migrate()
675 self.verify_dest_bitmap_state()
676 self.verify_dest_error(None)
678 def test_transform_on_dst(self) -> None: argument
679 self.set_mapping(self.vm_b, self.transform_mapping())
681 self.migrate()
682 self.verify_dest_bitmap_state()
683 self.verify_dest_error(None)