Esempio n. 1
0
    def test_create_from_snapshot_error(self):
        stack_name = 'test_volume_stack'
        fv = FakeVolumeWithStateTransition('restoring-backup', 'error')
        fvbr = FakeBackupRestore('vol-123')

        # create script
        clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
            self.cinder_fc)
        self.m.StubOutWithMock(self.cinder_fc.restores, 'restore')
        self.cinder_fc.restores.restore('backup-123').AndReturn(fvbr)
        self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
        self.m.StubOutWithMock(fv, 'update')
        vol_name = utils.PhysName(stack_name, 'DataVolume')
        fv.update(
            display_description=vol_name,
            display_name=vol_name)

        self.m.ReplayAll()

        t = template_format.parse(volume_template)
        t['Resources']['DataVolume']['Properties']['SnapshotId'] = 'backup-123'
        t['Resources']['DataVolume']['Properties']['AvailabilityZone'] = 'nova'
        stack = utils.parse_stack(t, stack_name=stack_name)

        rsrc = vol.Volume('DataVolume',
                          t['Resources']['DataVolume'],
                          stack)
        create = scheduler.TaskRunner(rsrc.create)
        self.assertRaises(exception.ResourceFailure, create)

        self.m.VerifyAll()
Esempio n. 2
0
 def create_volume(self, t, stack, resource_name):
     resource = vol.Volume(resource_name, t['Resources'][resource_name],
                           stack)
     self.assertEqual(None, resource.validate())
     self.assertEqual(None, resource.create())
     self.assertEqual(vol.Volume.CREATE_COMPLETE, resource.state)
     return resource
Esempio n. 3
0
    def test_snapshot_no_volume(self):
        stack_name = 'test_volume_stack'
        fv = FakeVolume('creating', 'error')

        # create script
        clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
            self.cinder_fc)
        vol_name = utils.PhysName(stack_name, 'DataVolume')
        self.cinder_fc.volumes.create(size=u'1',
                                      availability_zone='nova',
                                      display_description=vol_name,
                                      display_name=vol_name).AndReturn(fv)

        self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
        self.cinder_fc.volumes.delete('vol-123').AndReturn(None)

        self.m.ReplayAll()

        t = template_format.parse(volume_template)
        t['Resources']['DataVolume']['DeletionPolicy'] = 'Snapshot'
        t['Resources']['DataVolume']['Properties']['AvailabilityZone'] = 'nova'
        stack = parse_stack(t, stack_name=stack_name)
        rsrc = vol.Volume('DataVolume', t['Resources']['DataVolume'], stack)

        create = scheduler.TaskRunner(rsrc.create)
        self.assertRaises(exception.ResourceFailure, create)

        self.assertEqual(rsrc.destroy(), None)

        self.m.VerifyAll()
Esempio n. 4
0
    def test_snapshot_no_volume(self):
        stack_name = 'test_volume_stack'
        fv = FakeVolume('creating', 'error')

        self._mock_create_volume(fv, stack_name)

        self.cinder_fc.volumes.get('vol-123').AndReturn(fv)

        self.m.ReplayAll()

        t = template_format.parse(volume_template)
        t['Resources']['DataVolume']['DeletionPolicy'] = 'Snapshot'
        t['Resources']['DataVolume']['Properties']['AvailabilityZone'] = 'nova'
        stack = utils.parse_stack(t, stack_name=stack_name)
        rsrc = vol.Volume('DataVolume',
                          t['Resources']['DataVolume'],
                          stack)

        create = scheduler.TaskRunner(rsrc.create)
        self.assertRaises(exception.ResourceFailure, create)

        self._stubout_delete_volume(fv)
        scheduler.TaskRunner(rsrc.destroy)()

        self.m.VerifyAll()
Esempio n. 5
0
 def create_volume(self, t, stack, resource_name):
     data = t['Resources'][resource_name]
     data['Properties']['AvailabilityZone'] = 'nova'
     rsrc = vol.Volume(resource_name, data, stack)
     self.assertEqual(rsrc.validate(), None)
     scheduler.TaskRunner(rsrc.create)()
     self.assertEqual(rsrc.state, (rsrc.CREATE, rsrc.COMPLETE))
     return rsrc
Esempio n. 6
0
    def test_volume_bad_tags(self):
        t = template_format.parse(volume_template)
        t['Resources']['DataVolume']['Properties']['Tags'] = [{'Foo': 'bar'}]
        stack = utils.parse_stack(t, stack_name='test_volume_bad_tags_stack')

        rsrc = vol.Volume('DataVolume', t['Resources']['DataVolume'], stack)
        self.assertRaises(exception.StackValidationFailed, rsrc.validate)

        self.m.VerifyAll()
Esempio n. 7
0
 def test_volume_size_constraint_aws(self):
     t = template_format.parse(volume_template)
     t['Resources']['DataVolume']['Properties']['Size'] = '0'
     stack = utils.parse_stack(t)
     rsrc = vol.Volume('DataVolume', t['Resources']['DataVolume'], stack)
     error = self.assertRaises(exception.StackValidationFailed,
                               rsrc.validate)
     self.assertEqual(
         "Property error : DataVolume: Size 0 is out of "
         "range (min: 1, max: None)", str(error))
Esempio n. 8
0
    def test_volume_create_error(self):
        fv = FakeVolume('creating', 'error')
        stack_name = 'test_volume_create_error_stack'

        self._mock_create_volume(fv, stack_name)

        self.m.ReplayAll()

        t = template_format.parse(volume_template)
        t['Resources']['DataVolume']['Properties']['AvailabilityZone'] = 'nova'
        stack = utils.parse_stack(t, stack_name=stack_name)

        rsrc = vol.Volume('DataVolume', t['Resources']['DataVolume'], stack)
        create = scheduler.TaskRunner(rsrc.create)
        self.assertRaises(exception.ResourceFailure, create)

        self.m.VerifyAll()
Esempio n. 9
0
    def test_volume_create_error(self):

        fv = FakeVolume('creating', 'error')

        # create script
        vol.Volume.nova('volume').AndReturn(self.fc)
        self.fc.volumes.create(
            u'1',
            display_description='test_stack.DataVolume',
            display_name='test_stack.DataVolume').AndReturn(fv)

        eventlet.sleep(1).AndReturn(None)

        self.m.ReplayAll()

        t = self.load_template()
        stack = self.parse_stack(t)

        resource = vol.Volume('DataVolume', t['Resources']['DataVolume'],
                              stack)
        self.assertEqual('error', resource.create())

        self.m.VerifyAll()
Esempio n. 10
0
    def test_volume_create_error(self):
        fv = FakeVolume('creating', 'error')
        stack_name = 'test_volume_create_error_stack'

        # create script
        clients.OpenStackClients.cinder().AndReturn(self.fc)
        self.fc.volumes.create(
            u'1', display_description='%s.DataVolume' % stack_name,
            display_name='%s.DataVolume' % stack_name).AndReturn(fv)

        eventlet.sleep(1).AndReturn(None)

        self.m.ReplayAll()

        t = self.load_template()
        stack = self.parse_stack(t, stack_name)

        resource = vol.Volume('DataVolume',
                              t['Resources']['DataVolume'],
                              stack)
        self.assertEqual(resource.create(), 'error')

        self.m.VerifyAll()
Esempio n. 11
0
    def test_volume_create_error(self):
        fv = FakeVolume('creating', 'error')
        stack_name = 'test_volume_create_error_stack'

        # create script
        clients.OpenStackClients.cinder().AndReturn(self.cinder_fc)
        vol_name = utils.PhysName(stack_name, 'DataVolume')
        self.cinder_fc.volumes.create(size=u'1',
                                      availability_zone='nova',
                                      display_description=vol_name,
                                      display_name=vol_name).AndReturn(fv)

        self.m.ReplayAll()

        t = template_format.parse(volume_template)
        t['Resources']['DataVolume']['Properties']['AvailabilityZone'] = 'nova'
        stack = parse_stack(t, stack_name=stack_name)

        rsrc = vol.Volume('DataVolume', t['Resources']['DataVolume'], stack)
        create = scheduler.TaskRunner(rsrc.create)
        self.assertRaises(exception.ResourceFailure, create)

        self.m.VerifyAll()