def test_user_migration(self):
        user_name = "tester"
        user_to_migrate = self.ks_source.users.create(user_name,
                                                      password="******")

        self.reset_value()
        self.value['users_to_move'].append(user_name)
        flow.execute(self.value)

        user_target = None
        values_u = [user_name, self.s_cloud_name, self.t_cloud_name]
        try:
            user_target = self.ks_target.users.find(name=user_name)

            self.assertIsNotNone(user_target)

            all_users = self.ks_target.users.list()
            self.assertIn(user_target, all_users)

            user_data = users.get_migrated_user(values_u)

            self.assertEqual("completed", user_data['state'])

        except ks_exceptions.NotFound, e:
            self.fail(e)
    def test_keypair_migration(self):
        keypair_name = 'keypair_test'

        keypair_to_migrate = self.\
            nv_source.keypairs.create(name=keypair_name)
        keypair_fingerprint = keypair_to_migrate.fingerprint
        self.reset_value()
        self.value['keypairs_to_move'].append(keypair_fingerprint)
        flow.execute(self.value)
        migrated_keypair = None
        try:

            migrated_keypair = self.nv_target.keypairs.find(
                fingerprint=keypair_fingerprint)

            self.assertEqual(keypair_to_migrate.name, migrated_keypair.name)

        except Exception as e:
            self.fail(e)
        finally:
            self.nv_source.keypairs.delete(keypair_to_migrate)
            filter_values = [
                keypair_to_migrate.fingerprint, cfg.CONF.SOURCE.os_cloud_name,
                cfg.CONF.TARGET.os_cloud_name
            ]
            keypairs.delete_keypairs(filter_values)

            if migrated_keypair:
                self.nv_target.keypairs.delete(migrated_keypair)
    def test_image_migration(self):
        image_name = 'image_test'
        image_to_migrate = self.gl_source.images.create(
            name=image_name,
            disk_format='qcow2',
            container_format='bare',
            is_public=True,
            location='http://cloud-images.ubuntu.com/releases/12.04.2/release/'
            'ubuntu-12.04-server-cloudimg-amd64-disk1.img')
        self.reset_value()
        self.value['images_to_migrate'].append(image_to_migrate.id)
        flow.execute(self.value)
        migrated_image = None
        try:
            filters = {
                "src_image_name": image_name,
                "src_uuid": image_to_migrate.id,
                "src_cloud": self.s_cloud_name,
                "dst_cloud": self.t_cloud_name
            }
            image_migration_record = images.get_migrated_image(filters)
            dest_id = image_migration_record[0]['dst_uuid']
            dest_image = self.gl_target.images.get(dest_id)

            self.assertEqual(image_to_migrate.name, dest_image.name)
            self.assertEqual(image_to_migrate.disk_format,
                             dest_image.disk_format)
            self.assertEqual(image_to_migrate.container_format,
                             dest_image.container_format)
            self.assertEqual(image_to_migrate.is_public, dest_image.is_public)

        except Exception, e:
            self.fail(e)
    def test_user_migration(self):
        user_name = "tester"
        user_to_migrate = self.ks_source.users.create(
            user_name, password="******")

        self.reset_value()
        self.value['users_to_move'].append(user_name)
        flow.execute(self.value)

        user_target = None
        values_u = [user_name, self.s_cloud_name, self.t_cloud_name]
        try:
            user_target = self.ks_target.users.find(name=user_name)

            self.assertIsNotNone(user_target)

            all_users = self.ks_target.users.list()
            self.assertIn(user_target, all_users)

            user_data = users.get_migrated_user(values_u)

            self.assertEqual("completed", user_data['state'])

        except ks_exceptions.NotFound, e:
            self.fail(e)
    def test_image_migration(self):
        image_name = 'image_test'
        image_to_migrate = self.gl_source.images.create(
            name=image_name,
            disk_format='qcow2',
            container_format='bare',
            is_public=True,
            location='http://cloud-images.ubuntu.com/releases/12.04.2/release/'
                     'ubuntu-12.04-server-cloudimg-amd64-disk1.img')
        self.reset_value()
        self.value['images_to_migrate'].append(image_to_migrate.id)
        flow.execute(self.value)
        migrated_image = None
        try:
            filters = {"src_image_name": image_name,
                       "src_uuid": image_to_migrate.id,
                       "src_cloud": self.s_cloud_name,
                       "dst_cloud": self.t_cloud_name}
            image_migration_record = images.get_migrated_image(filters)
            dest_id = image_migration_record[0]['dst_uuid']
            dest_image = self.gl_target.images.get(dest_id)

            self.assertEqual(image_to_migrate.name, dest_image.name)
            self.assertEqual(image_to_migrate.disk_format,
                             dest_image.disk_format)
            self.assertEqual(image_to_migrate.container_format,
                             dest_image.container_format)
            self.assertEqual(image_to_migrate.is_public,
                             dest_image.is_public)

        except Exception, e:
            self.fail(e)
    def test_keypair_migration(self):
        keypair_name = 'keypair_test'

        keypair_to_migrate = self.\
            nv_source.keypairs.create(name=keypair_name)
        keypair_fingerprint = keypair_to_migrate.fingerprint
        self.reset_value()
        self.value['keypairs_to_move'].append(keypair_fingerprint)
        flow.execute(self.value)
        migrated_keypair = None
        try:

            migrated_keypair = self.nv_target.keypairs.find(
                fingerprint=keypair_fingerprint)

            self.assertEqual(keypair_to_migrate.name, migrated_keypair.name)

        except Exception as e:
            self.fail(e)
        finally:
            self.nv_source.keypairs.delete(keypair_to_migrate)
            filter_values = [keypair_to_migrate.fingerprint,
                             cfg.CONF.SOURCE.os_cloud_name,
                             cfg.CONF.TARGET.os_cloud_name]
            keypairs.delete_keypairs(filter_values)

            if migrated_keypair:
                self.nv_target.keypairs.delete(migrated_keypair)
    def test_flavor_migration(self):
        flavor_name = 'flavor_test'
        test_flavor_details = {'name': flavor_name,
                               'ram': 512,
                               'vcpus': 1,
                               'disk': 1,
                               'ephemeral': 0,
                               'swap': 0,
                               'rxtx_factor': 1.0,
                               'is_public': 'True'}

        flavor_to_migrate = self.\
            nv_source.flavors.create(**test_flavor_details)
        self.reset_value()
        self.value['flavors_to_migrate'].append(flavor_name)
        flow.execute(self.value)
        migrated_flavor = None
        try:

            migrated_flavor = self.nv_target.flavors.find(
                name=flavor_name)

            self.assertEqual(flavor_to_migrate.name, migrated_flavor.name)

        except Exception as e:
            self.fail(e)
        finally:
            self.nv_source.flavors.delete(flavor_to_migrate)
            filter_values = [flavor_to_migrate.name, flavor_to_migrate.id,
                             cfg.CONF.SOURCE.os_cloud_name,
                             cfg.CONF.TARGET.os_cloud_name]
            flavors.delete_migration_record(filter_values)

            if migrated_flavor:
                self.nv_target.flavors.delete(migrated_flavor)
    def test_role_migration(self):
        role_name = "tester"
        role_to_migrate = self.ks_source.roles.create(role_name)

        self.reset_value()
        self.value['roles_to_migrate'].append(role_name)
        flow.execute(self.value)

        role_target = None
        try:
            role_target = self.ks_target.roles.find(name=role_name)

            self.assertIsNotNone(role_target)

            all_roles = self.ks_target.roles.list()
            self.assertIn(role_target, all_roles)

        except ks_exceptions.NotFound, e:
            self.fail(e)
    def test_role_migration(self):
        role_name = "tester"
        role_to_migrate = self.ks_source.roles.create(role_name)

        self.reset_value()
        self.value['roles_to_migrate'].append(role_name)
        flow.execute(self.value)

        role_target = None
        try:
            role_target = self.ks_target.roles.find(name=role_name)

            self.assertIsNotNone(role_target)

            all_roles = self.ks_target.roles.list()
            self.assertIn(role_target, all_roles)

        except ks_exceptions.NotFound, e:
            self.fail(e)
    def test_tenant_migration(self):
        tenant_name = "tenant_test"
        tenant_to_migrate = self.ks_source.tenants.create(
            tenant_name, "for testing", True)

        self.reset_value()
        self.value['tenants_to_move'].append(tenant_name)
        flow.execute(self.value)

        tenant_target = None
        values_t = [tenant_name, self.s_cloud_name, self.t_cloud_name]
        try:
            tenant_target = self.ks_target.tenants.find(name=tenant_name)

            self.assertIsNotNone(tenant_target)

            tenant_data = tenants.get_migrated_tenant(values_t)

            self.assertEqual("proxy_created", tenant_data['state'])

        except ks_exceptions.NotFound, e:
            self.fail(e)
    def test_tenant_migration(self):
        tenant_name = "tenant_test"
        tenant_to_migrate = self.ks_source.tenants.create(
            tenant_name, "for testing", True)

        self.reset_value()
        self.value['tenants_to_move'].append(tenant_name)
        flow.execute(self.value)

        tenant_target = None
        values_t = [tenant_name, self.s_cloud_name, self.t_cloud_name]
        try:
            tenant_target = self.ks_target.tenants.find(name=tenant_name)

            self.assertIsNotNone(tenant_target)

            tenant_data = tenants.get_migrated_tenant(values_t)

            self.assertEqual("proxy_created", tenant_data['state'])

        except ks_exceptions.NotFound, e:
            self.fail(e)
    def test_flavor_migration(self):
        flavor_name = 'flavor_test'
        test_flavor_details = {
            'name': flavor_name,
            'ram': 512,
            'vcpus': 1,
            'disk': 1,
            'ephemeral': 0,
            'swap': 0,
            'rxtx_factor': 1.0,
            'is_public': 'True'
        }

        flavor_to_migrate = self.\
            nv_source.flavors.create(**test_flavor_details)
        self.reset_value()
        self.value['flavors_to_migrate'].append(flavor_name)
        flow.execute(self.value)
        migrated_flavor = None
        try:

            migrated_flavor = self.nv_target.flavors.find(name=flavor_name)

            self.assertEqual(flavor_to_migrate.name, migrated_flavor.name)

        except Exception as e:
            self.fail(e)
        finally:
            self.nv_source.flavors.delete(flavor_to_migrate)
            filter_values = [
                flavor_to_migrate.name, flavor_to_migrate.id,
                cfg.CONF.SOURCE.os_cloud_name, cfg.CONF.TARGET.os_cloud_name
            ]
            flavors.delete_migration_record(filter_values)

            if migrated_flavor:
                self.nv_target.flavors.delete(migrated_flavor)