def test_available_volume_retype_with_migration(self): keys_with_no_change = ('id', 'size', 'description', 'name', 'user_id', 'os-vol-tenant-attr:tenant_id') keys_with_change = ('volume_type', 'os-vol-host-attr:host') volume_source = self.admin_volume_client.show_volume( self.src_vol['id'])['volume'] # TODO(erlon): change this to volumes_client client after Bug # #1657806 is fixed self.admin_volume_client.retype_volume( self.src_vol['id'], new_type=self.dst_vol_type['name'], migration_policy='on-demand') waiters.wait_for_volume_retype(self.volumes_client, self.src_vol['id'], self.dst_vol_type['name']) volume_dest = self.admin_volume_client.show_volume( self.src_vol['id'])['volume'] # Check the volume information after the migration. self.assertEqual('success', volume_dest['os-vol-mig-status-attr:migstat']) self.assertEqual('success', volume_dest['migration_status']) for key in keys_with_no_change: self.assertEqual(volume_source[key], volume_dest[key]) for key in keys_with_change: self.assertNotEqual(volume_source[key], volume_dest[key])
def _retype_volume(self, volume): keys_with_no_change = ('id', 'size', 'description', 'name', 'user_id', 'os-vol-tenant-attr:tenant_id') keys_with_change = ('volume_type', 'os-vol-host-attr:host') volume_source = self.admin_volume_client.show_volume( volume['id'])['volume'] self.volumes_client.retype_volume( volume['id'], new_type=self.dst_vol_type['name'], migration_policy='on-demand') self.addCleanup(self._wait_for_internal_volume_cleanup, volume) waiters.wait_for_volume_retype(self.volumes_client, volume['id'], self.dst_vol_type['name']) volume_dest = self.admin_volume_client.show_volume( volume['id'])['volume'] # Check the volume information after the migration. self.assertEqual('success', volume_dest['os-vol-mig-status-attr:migstat']) self.assertEqual('success', volume_dest['migration_status']) for key in keys_with_no_change: self.assertEqual(volume_source[key], volume_dest[key]) for key in keys_with_change: self.assertNotEqual(volume_source[key], volume_dest[key])
def _volume_retype_with_migration(self, volume_id, new_volume_type): migration_policy = 'on-demand' self.admin_volumes_client.retype_volume( volume_id, new_type=new_volume_type, migration_policy=migration_policy) waiters.wait_for_volume_retype(self.volumes_client, volume_id, new_volume_type)
def _volume_retype_with_migration(self, volume_id, new_volume_type): migration_policy = 'on-demand' self.volumes_client.retype_volume(volume_id, new_type=new_volume_type, migration_policy=migration_policy) waiters.wait_for_volume_retype(self.volumes_client, volume_id, new_volume_type)
def test_available_volume_retype_with_migration(self): keys_with_no_change = ('id', 'size', 'description', 'name', 'user_id', 'os-vol-tenant-attr:tenant_id') keys_with_change = ('volume_type', 'os-vol-host-attr:host') volume_source = self.admin_volume_client.show_volume( self.src_vol['id'])['volume'] self.volumes_client.retype_volume( self.src_vol['id'], new_type=self.dst_vol_type['name'], migration_policy='on-demand') waiters.wait_for_volume_retype(self.volumes_client, self.src_vol['id'], self.dst_vol_type['name']) volume_dest = self.admin_volume_client.show_volume( self.src_vol['id'])['volume'] # Check the volume information after the migration. self.assertEqual('success', volume_dest['os-vol-mig-status-attr:migstat']) self.assertEqual('success', volume_dest['migration_status']) for key in keys_with_no_change: self.assertEqual(volume_source[key], volume_dest[key]) for key in keys_with_change: self.assertNotEqual(volume_source[key], volume_dest[key])
def test_volume_retype(self): vol_type = self.create_volume_type()['name'] volume = self.create_volume() with self.override_role(): self.volumes_client.retype_volume(volume['id'], new_type=vol_type) waiters.wait_for_volume_retype(self.volumes_client, volume['id'], vol_type)
def test_volume_retype(self): vol_type = self.create_volume_type()['name'] volume = self.create_volume() self.rbac_utils.switch_role(self, toggle_rbac_role=True) self.volumes_client.retype_volume(volume['id'], new_type=vol_type) waiters.wait_for_volume_retype(self.admin_volumes_client, volume['id'], vol_type)
def _volume_retype_with_migration(self, volume_id, new_volume_type): # NOTE: The 'on-demand' migration requires admin operation, so # admin_volumes_client() should be used here. migration_policy = 'on-demand' self.admin_volumes_client.retype_volume( volume_id, new_type=new_volume_type, migration_policy=migration_policy) waiters.wait_for_volume_retype(self.volumes_client, volume_id, new_volume_type)
def _volume_retype_with_migration(self, volume_id, new_volume_type): # NOTE: The 'on-demand' migration requires admin operation, so # admin_volumes_client() should be used here. migration_policy = 'on-demand' self.admin_volumes_client.retype_volume( volume_id, new_type=new_volume_type, migration_policy=migration_policy) waiters.wait_for_volume_retype(self.volumes_client, volume_id, new_volume_type)
def _retype_volume(self, volume, migration_policy): volume_source = self.admin_volume_client.show_volume( volume['id'])['volume'] self.volumes_client.retype_volume(volume['id'], new_type=self.dst_vol_type['name'], migration_policy=migration_policy) self.addCleanup(self._wait_for_internal_volume_cleanup, volume) waiters.wait_for_volume_retype(self.volumes_client, volume['id'], self.dst_vol_type['name']) volume_dest = self.admin_volume_client.show_volume( volume['id'])['volume'] self._verify_migration(volume_source, volume_dest)
def _retype_volume(self, volume, migration_policy): volume_source = self.admin_volume_client.show_volume( volume['id'])['volume'] self.volumes_client.retype_volume( volume['id'], new_type=self.dst_vol_type['name'], migration_policy=migration_policy) self.addCleanup(self._wait_for_internal_volume_cleanup, volume) waiters.wait_for_volume_retype(self.volumes_client, volume['id'], self.dst_vol_type['name']) volume_dest = self.admin_volume_client.show_volume( volume['id'])['volume'] self._verify_migration(volume_source, volume_dest)