Ejemplo n.º 1
0
    def test_cast_create_volume(self, mock_time):

        props = {}
        spec = {'volume_id': None,
                'source_volid': None,
                'snapshot_id': None,
                'image_id': None,
                'source_replicaid': None,
                'consistencygroup_id': None,
                'cgsnapshot_id': None}

        # Fake objects assert specs
        task = create_volume.VolumeCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeVolumeAPI(spec, self),
            fake_volume_api.FakeDb())

        task._cast_create_volume(self.ctxt, spec, props)

        spec = {'volume_id': 1,
                'source_volid': 2,
                'snapshot_id': 3,
                'image_id': 4,
                'source_replicaid': 5,
                'consistencygroup_id': 5,
                'cgsnapshot_id': None}

        # Fake objects assert specs
        task = create_volume.VolumeCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeVolumeAPI(spec, self),
            fake_volume_api.FakeDb())

        task._cast_create_volume(self.ctxt, spec, props)
    def test_cast_create_volume(self, consistencygroup_get_by_id, mock_time,
                                mock_extract_host, volume_get_by_id):
        mock_time.side_effect = self.time_inc
        volume = fake_volume.fake_volume_obj(self.ctxt)
        volume_get_by_id.return_value = volume
        props = {}
        cg_obj = (fake_consistencygroup.fake_consistencyobject_obj(
            self.ctxt, consistencygroup_id=1, host='host@backend#pool'))
        consistencygroup_get_by_id.return_value = cg_obj
        spec = {
            'volume_id': None,
            'volume': None,
            'source_volid': None,
            'snapshot_id': None,
            'image_id': None,
            'source_replicaid': None,
            'consistencygroup_id': None,
            'cgsnapshot_id': None,
            'group_id': None,
        }

        # Fake objects assert specs
        task = create_volume.VolumeCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeVolumeAPI(spec, self),
            fake_volume_api.FakeDb())

        task._cast_create_volume(self.ctxt, spec, props)

        spec = {
            'volume_id': volume.id,
            'volume': volume,
            'source_volid': 2,
            'snapshot_id': 3,
            'image_id': 4,
            'source_replicaid': 5,
            'consistencygroup_id': 5,
            'cgsnapshot_id': None,
            'group_id': None,
        }

        # Fake objects assert specs
        task = create_volume.VolumeCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeVolumeAPI(spec, self),
            fake_volume_api.FakeDb())

        task._cast_create_volume(self.ctxt, spec, props)
        consistencygroup_get_by_id.assert_called_once_with(self.ctxt, 5)
        mock_extract_host.assert_called_once_with('host@backend#pool')
Ejemplo n.º 3
0
    def test_cast_create_volume(self, consistencygroup_get_by_id, mock_time,
                                volume_get_by_id):
        volume = fake_volume.fake_volume_obj(self.ctxt)
        volume_get_by_id.return_value = volume

        props = {}
        consistencygroup_obj = \
            fake_consistencygroup.fake_consistencyobject_obj(
                self.ctxt, consistencygroup_id=1, host=None)
        consistencygroup_get_by_id.return_value = consistencygroup_obj
        spec = {
            'volume_id': None,
            'source_volid': None,
            'snapshot_id': None,
            'image_id': None,
            'source_replicaid': None,
            'consistencygroup_id': None,
            'cgsnapshot_id': None
        }

        # Fake objects assert specs
        task = create_volume.VolumeCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeVolumeAPI(spec, self),
            fake_volume_api.FakeDb())

        task._cast_create_volume(self.ctxt, spec, props)

        spec = {
            'volume_id': 1,
            'source_volid': 2,
            'snapshot_id': 3,
            'image_id': 4,
            'source_replicaid': 5,
            'consistencygroup_id': 5,
            'cgsnapshot_id': None
        }

        # Fake objects assert specs
        task = create_volume.VolumeCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeVolumeAPI(spec, self),
            fake_volume_api.FakeDb())

        task._cast_create_volume(self.ctxt, spec, props)
        consistencygroup_get_by_id.assert_called_once_with(self.ctxt, 5)
    def test_cast_manage_existing(self):

        volume = mock.MagicMock(return_value=None)
        spec = {
            'name': 'name',
            'description': 'description',
            'host': 'host',
            'ref': 'ref',
            'volume_type': 'volume_type',
            'metadata': 'metadata',
            'availability_zone': 'availability_zone',
            'bootable': 'bootable'
        }

        # Fake objects assert specs
        task = manage_existing.ManageCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeDb())

        create_what = spec.copy()
        create_what.update({'volume': volume})
        task.execute(self.ctxt, **create_what)

        volume = mock.MagicMock(return_value={'id': 1})

        spec = {
            'name': 'name',
            'description': 'description',
            'host': 'host',
            'ref': 'ref',
            'volume_type': 'volume_type',
            'metadata': 'metadata',
            'availability_zone': 'availability_zone',
            'bootable': 'bootable'
        }

        # Fake objects assert specs
        task = manage_existing.ManageCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeDb())

        create_what = spec.copy()
        create_what.update({'volume': volume})
        task.execute(self.ctxt, **create_what)
Ejemplo n.º 5
0
    def test_cast_manage_existing_revert(self):
        volume = fake_volume.fake_volume_obj(self.ctxt)
        volume.save = mock.MagicMock()

        # Fake objects assert specs
        task = manage_existing.ManageCastTask(
            fake_volume_api.FakeSchedulerRpcAPI({}, self),
            fake_volume_api.FakeDb())
        flow_failures = [mock.MagicMock()]
        task.revert(self.ctxt, {}, flow_failures, volume)

        # Check that volume status is updated and saved
        self.assertEqual('error_managing', volume.status)
        volume.save.assert_called_once()
Ejemplo n.º 6
0
    def test_cast_manage_existing(self):
        volume = fake_volume.fake_volume_obj(self.ctxt)

        spec = {
            'name': 'name',
            'description': 'description',
            'host': 'host',
            'ref': 'ref',
            'volume_type': 'volume_type',
            'metadata': 'metadata',
            'availability_zone': 'availability_zone',
            'bootable': 'bootable',
            'volume_id': volume.id,
        }

        # Fake objects assert specs
        task = manage_existing.ManageCastTask(
            fake_volume_api.FakeSchedulerRpcAPI(spec, self),
            fake_volume_api.FakeDb())

        create_what = spec.copy()
        create_what.update({'volume': volume})
        create_what.pop('volume_id')
        task.execute(self.ctxt, **create_what)