Esempio n. 1
0
    def test_reject_out_of_sync_serveradmin(self):
        obj = Query({'hostname': VM_HOSTNAME}, ['disk_size_gib']).get()
        obj['disk_size_gib'] += 1
        obj.commit()

        with self.assertRaises(InconsistentAttributeError):
            vm_migrate(VM_HOSTNAME)
Esempio n. 2
0
 def test_offline_migration_netcat(self):
     vm_migrate(
         VM_HOSTNAME,
         offline=True,
         offline_transport='netcat',
     )
     self.check_vm_present()
Esempio n. 3
0
    def test_igvm_migration_log(self, performance_value, mock_time):
        for hv in self.hvs:
            hv.dataset_obj['igvm_migration_log'].clear()
            hv.dataset_obj.commit()

        src_hv = self.vm.hypervisor.dataset_obj['hostname']
        cpu_usage_vm_src = self.vm.hypervisor.estimate_vm_cpu_usage(self.vm)
        timestamp = 1234567890

        vm_migrate(
            VM_HOSTNAME,
            offline=True,
            offline_transport='drbd',
        )

        src_hv_obj = (Query({
            'hostname': src_hv
        }, ['igvm_migration_log']).get())

        self.assertEqual(list(src_hv_obj['igvm_migration_log']),
                         ['{} -{}'.format(timestamp, round(cpu_usage_vm_src))])

        with _get_vm(VM_HOSTNAME) as vm:
            dest_hv_obj = (Query(
                {
                    'hostname': vm.hypervisor.dataset_obj['hostname']
                }, ['igvm_migration_log']).get())
            cpu_usage_vm_dest = vm.hypervisor.estimate_vm_cpu_usage(vm)
            self.assertEqual(
                list(dest_hv_obj['igvm_migration_log']),
                ['{} +{}'.format(timestamp, round(cpu_usage_vm_dest))])
Esempio n. 4
0
    def test_rollback_drbd(self):
        obj = Query({'hostname': VM_HOSTNAME}, ['puppet_environment']).get()
        obj['puppet_environment'] = 'doesnotexist'
        obj.commit()

        with self.assertRaises(IGVMError):
            vm_migrate(
                VM_HOSTNAME,
                offline=True,
                run_puppet=True,
                offline_transport='drbd',
            )

        self.check_vm_present()
Esempio n. 5
0
    def test_rollback_netcat(self):
        # TODO: consider the usage of self.vm_obj instead of new Query
        obj = Query({'hostname': VM_HOSTNAME}, ['puppet_environment']).get()
        obj['puppet_environment'] = 'doesnotexist'
        obj.commit()

        with self.assertRaises(IGVMError):
            vm_migrate(
                VM_HOSTNAME,
                offline=True,
                run_puppet=True,
                offline_transport='netcat',
            )

        self.check_vm_present()
Esempio n. 6
0
 def _xfs_migrate_wrapper(self, *args, **kwargs):
     """
     xfs dump/restore cause the corrupted files on restored disk from time
     to time. This is relatively rare case and I am not able to find the
     root reason yet. The rollback works quite good, but it fails to
     migrate. This wrapper do two retries on this particullar error
     """
     for _ in range(3):
         try:
             vm_migrate(*args, **kwargs)
             return
         except XfsMigrationError as e:
             exc = e
             if e.args[0] == 'xfs dump/restore caused warnings':
                 continue
             raise exc
     raise BaseException('xfs migration failed in 3 attempts')
Esempio n. 7
0
 def test_reject_online_with_puppet(self):
     with self.assertRaises(IGVMError):
         vm_migrate(VM_HOSTNAME, run_puppet=True)
Esempio n. 8
0
 def test_online_migration(self):
     vm_migrate(VM_HOSTNAME)
     self.check_vm_present()