コード例 #1
0
    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])
コード例 #2
0
    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])
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
    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])
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
 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)
コード例 #9
0
 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)
コード例 #10
0
    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)
コード例 #11
0
    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)