예제 #1
0
 def test_workload_ip_already_in_use(self):
     duplicate_ip = "192.168.168.168"
     Workload(ip=duplicate_ip,
              credentials=self.valid_credentials,
              storage=self.valid_mount_point_list)
     with self.assertRaises(ValueError):
         Workload(ip=duplicate_ip,
                  credentials=self.valid_credentials,
                  storage=self.valid_mount_point_list)
예제 #2
0
 def test_workload_credential_empty_password(self):
     credentials = self.valid_credentials
     credentials.password = None
     with self.assertRaises(ValueError):
         Workload(ip=self.valid_ip,
                  credentials=credentials,
                  storage=self.valid_mount_point_list)
예제 #3
0
 def test_migration_target_valid_cloud_type(self):
     workload = Workload(ip=self.valid_ip,
                         credentials=self.valid_credentials,
                         storage=self.valid_mount_point_list)
     credentials = self.valid_credentials
     valid_cloud_type = CloudType.azure
     MigrationTarget(cloud_type=valid_cloud_type,
                     cloud_credentials=credentials,
                     target_vm=workload)
예제 #4
0
    def test_migration_change_state(self):
        workload_source = Workload(ip=self.valid_ip_1,
                                   credentials=self.valid_credentials,
                                   storage=[self.valid_mount_point_list[0]])
        workload_target = Workload(ip=self.valid_ip_2,
                                   credentials=self.valid_credentials,
                                   storage=[self.valid_mount_point_list[0]])
        migration_target = MigrationTarget(
            cloud_type=CloudType.aws,
            cloud_credentials=self.valid_credentials,
            target_vm=workload_target)
        migration = Migration(
            selected_mount_points=self.valid_mount_point_list,
            source=workload_source,
            target=migration_target)

        with self.assertRaises(AttributeError):
            migration.state = MigrationState.success
예제 #5
0
 def test_migration_basic(self):
     workload_source = Workload(ip=self.valid_ip_1,
                                credentials=self.valid_credentials,
                                storage=self.valid_mount_point_list)
     workload_target = Workload(ip=self.valid_ip_2,
                                credentials=self.valid_credentials,
                                storage=[])
     migration_target = MigrationTarget(
         cloud_type=CloudType.aws,
         cloud_credentials=self.valid_credentials,
         target_vm=workload_target)
     migration = Migration(
         selected_mount_points=self.valid_mount_point_list,
         source=workload_source,
         target=migration_target)
     migration.__mock_wait_minutes__ = 0
     migration.run()
     self.assertEqual(migration.state, MigrationState.success)
예제 #6
0
    def test_migration_target_c_not_allowed(self):
        workload_source = Workload(ip=self.valid_ip_1,
                                   credentials=self.valid_credentials,
                                   storage=[self.valid_mount_point_list[1]])
        workload_target = Workload(ip=self.valid_ip_2,
                                   credentials=self.valid_credentials,
                                   storage=[self.valid_mount_point_list[1]])
        migration_target = MigrationTarget(
            cloud_type=CloudType.aws,
            cloud_credentials=self.valid_credentials,
            target_vm=workload_target)
        migration = Migration(
            selected_mount_points=[self.valid_mount_point_list[1]],
            source=workload_source,
            target=migration_target)

        with self.assertRaises(MigrationError):
            migration.run()
        self.assertEqual(migration.state, MigrationState.error)
예제 #7
0
    def test_migration_target_invalid_cloud_type(self):
        workload = Workload(ip=self.valid_ip,
                            credentials=self.valid_credentials,
                            storage=self.valid_mount_point_list)
        credentials = self.valid_credentials
        invalid_cloud_type = "invalid"

        with self.assertRaises(ValueError):
            MigrationTarget(cloud_type=invalid_cloud_type,
                            cloud_credentials=credentials,
                            target_vm=workload)
예제 #8
0
    def test_persistence(self):
        workload = Workload(ip=self.valid_ip,
                            credentials=self.valid_credentials,
                            storage=self.valid_mount_point_list)
        workload.save()

        loaded_workload = Workload.load()
        self.assertEqual(workload.ip, loaded_workload.ip)

        for i in range(len(workload.storage)):
            self.assertEqual(workload.storage[i].name,
                             loaded_workload.storage[i].name)
            self.assertEqual(workload.storage[i].size,
                             loaded_workload.storage[i].size)
        credentials = workload.credentials
        loaded_credentials = loaded_workload.credentials

        self.assertEqual(credentials.username, loaded_credentials.username)
        self.assertEqual(credentials.password, loaded_credentials.password)
        self.assertEqual(credentials.domain, loaded_credentials.domain)
        Workload.clear()
예제 #9
0
 def test_workload_ip_is_none(self):
     none_ip = None
     with self.assertRaises(ValueError):
         Workload(ip=none_ip,
                  credentials=self.valid_credentials,
                  storage=self.valid_mount_point_list)
예제 #10
0
 def test_workload_ip_change(self):
     workload = Workload(ip=self.valid_ip,
                         credentials=self.valid_credentials,
                         storage=self.valid_mount_point_list)
     with self.assertRaises(TypeError):
         workload.ip = "192.168.1.2"