Пример #1
0
class CreateVolumeFromImageTest(BaseVolumeTest):
    def __init__(self):
        try:
            self.volume = Base()
            self.image_client = Manager().image_client_v2
        except Exception as e:
            LOG.warning(
                _LW('Init test env failed, msg: %(msg)s, traceback: '
                    '%(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
            raise exceptions.InitFailed

    def test_create_volume_from_image(self):
        try:
            image_name = CONF.compute.image_name
            params = {"name": image_name}
            images = self.image_client.list_images(params)
            volume_created = self.volume.\
                create_volume(imageRef=images[0].get('id'))
            status = self.volume._get_volume_status(volume_created['id'])
            if status != "available":
                raise exceptions.VolumeBuildErrorException()
        except Exception as e:
            LOG.warning(
                _LW('Create volume from image failed, '
                    'msg: %(msg)s, traceback: %(tb)s.'), {
                        'msg': e,
                        'tb': traceback.format_exc()
                    })
            raise e
        finally:
            self.volume.delete_all()
class CreateVolumeFromSnapshotTest(BaseVolumeTest):

    def __init__(self):
        try:
            self.volume = Base()
        except Exception as e:
            LOG.warning(_LW('Init test env failed, msg: %(msg)s, traceback: '
                        '%(tb)s.'), {'msg': e, 'tb': traceback.format_exc()})
            raise exceptions.InitFailed

    def test_create_volume_from_image(self):
        try:
            volume_created = \
                self.volume.create_volume()
        except Exception as e:
            LOG.warning(_LW('Create volume before snapshot failed, '
                            'msg: %(msg)s, traceback: %(tb)s.'),
                        {'msg': e, 'tb': traceback.format_exc()})
            self.volume.delete_all()
            raise exceptions.VolumeBuildErrorException()

        try:
            kwargs = dict(force=True)
            snapshot = self.volume.create_snapshot(volume_created['id'],
                                                   **kwargs)
        except Exception as e:
            LOG.warning(_LE('create volume snapshot failed, msg: '
                            '%(msg)s, traceback: %(tb)s.'),
                        {'msg': e, 'tb': traceback.format_exc()})
            self.volume.delete_all()
            raise exceptions.SnapshotBuildErrorException()

        try:
            volume_created = self.volume.\
                create_volume(snapshot_id=snapshot.get('id'))
            status = self.volume._get_volume_status(volume_created['id'])
            if status != "available":
                raise exceptions.VolumeBuildErrorException()
        except Exception as e:
            LOG.warning(_LW('Create volume from snapshot failed, '
                            'msg: %(msg)s, traceback: %(tb)s.'),
                        {'msg': e, 'tb': traceback.format_exc()})
            raise e
        finally:
            self.volume.delete_all()