def test_create_use_existing(self): volume_id = '00000000-0000-0000-0000-000000000000' volume_properties = { 'use_external_resource': True, 'device_name': '/dev/fake', 'resource_id': volume_id, } existing_volume_m = mock.Mock() existing_volume_m.id = volume_id existing_volume_m.status = volume.VOLUME_STATUS_AVAILABLE cinder_client_m = mock.Mock() cinder_client_m.volumes = mock.Mock() cinder_client_m.volumes.create = mock.Mock() cinder_client_m.cosmo_get_if_exists = mock.Mock( return_value=existing_volume_m) cinder_client_m.get_id_from_resource = mock.Mock( return_value=volume_id) ctx_m = cfy_mocks.MockCloudifyContext(node_id='a', properties=volume_properties) volume.create(cinder_client=cinder_client_m, ctx=ctx_m) self.assertFalse(cinder_client_m.volumes.create.called) self.assertEqual( volume_id, ctx_m.instance.runtime_properties[OPENSTACK_ID_PROPERTY]) self.assertEqual( volume.VOLUME_OPENSTACK_TYPE, ctx_m.instance.runtime_properties[OPENSTACK_TYPE_PROPERTY])
def test_create_use_existing(self): volume_id = '00000000-0000-0000-0000-000000000000' volume_properties = { 'use_external_resource': True, 'device_name': '/dev/fake', 'resource_id': volume_id, } existing_volume_m = mock.Mock() existing_volume_m.id = volume_id existing_volume_m.status = volume.VOLUME_STATUS_AVAILABLE cinder_client_m = mock.Mock() cinder_client_m.volumes = mock.Mock() cinder_client_m.volumes.create = mock.Mock() cinder_client_m.cosmo_get_if_exists = mock.Mock( return_value=existing_volume_m) cinder_client_m.get_id_from_resource = mock.Mock( return_value=volume_id) ctx_m = self._mock(node_id='a', properties=volume_properties) volume.create(cinder_client=cinder_client_m, args={}, ctx=ctx_m) self.assertFalse(cinder_client_m.volumes.create.called) self.assertEqual( volume_id, ctx_m.instance.runtime_properties[OPENSTACK_ID_PROPERTY]) self.assertEqual( volume.VOLUME_OPENSTACK_TYPE, ctx_m.instance.runtime_properties[OPENSTACK_TYPE_PROPERTY])
def test_create_new(self): volume_name = 'fake volume name' volume_description = 'fake volume' volume_id = '00000000-0000-0000-0000-000000000000' volume_size = 10 volume_properties = { 'volume': { 'size': volume_size, 'description': volume_description }, 'use_external_resource': False, 'device_name': '/dev/fake', 'resource_id': volume_name, } creating_volume_m = mock.Mock() creating_volume_m.id = volume_id creating_volume_m.status = volume.VOLUME_STATUS_CREATING available_volume_m = mock.Mock() available_volume_m.id = volume_id available_volume_m.status = volume.VOLUME_STATUS_AVAILABLE cinder_client_m = mock.Mock() cinder_client_m.volumes = mock.Mock() cinder_client_m.volumes.create = mock.Mock( return_value=creating_volume_m) cinder_client_m.volumes.get = mock.Mock( return_value=available_volume_m) ctx_m = self._mock(node_id='a', properties=volume_properties) volume.create(cinder_client=cinder_client_m, args={}, ctx=ctx_m, status_attempts=10, status_timeout=2) cinder_client_m.volumes.create.assert_called_once_with( size=volume_size, name=volume_name, description=volume_description) cinder_client_m.volumes.get.assert_called_once_with(volume_id) self.assertEqual( volume_id, ctx_m.instance.runtime_properties[OPENSTACK_ID_PROPERTY]) self.assertEqual( volume.VOLUME_OPENSTACK_TYPE, ctx_m.instance.runtime_properties[OPENSTACK_TYPE_PROPERTY])
def test_create_new(self): volume_name = 'fake volume name' volume_description = 'fake volume' volume_id = '00000000-0000-0000-0000-000000000000' volume_size = 10 volume_properties = { 'volume': { 'size': volume_size, 'description': volume_description }, 'use_external_resource': False, 'device_name': '/dev/fake', 'resource_id': volume_name, } creating_volume_m = mock.Mock() creating_volume_m.id = volume_id creating_volume_m.status = volume.VOLUME_STATUS_CREATING available_volume_m = mock.Mock() available_volume_m.id = volume_id available_volume_m.status = volume.VOLUME_STATUS_AVAILABLE cinder_client_m = mock.Mock() cinder_client_m.volumes = mock.Mock() cinder_client_m.volumes.create = mock.Mock( return_value=creating_volume_m) cinder_client_m.volumes.get = mock.Mock( return_value=available_volume_m) ctx_m = cfy_mocks.MockCloudifyContext(node_id='a', properties=volume_properties) volume.create(cinder_client=cinder_client_m, ctx=ctx_m) cinder_client_m.volumes.create.assert_called_once_with( size=volume_size, display_name=volume_name, description=volume_description) cinder_client_m.volumes.get.assert_called_once_with(volume_id) self.assertEqual( volume_id, ctx_m.instance.runtime_properties[OPENSTACK_ID_PROPERTY]) self.assertEqual( volume.VOLUME_OPENSTACK_TYPE, ctx_m.instance.runtime_properties[OPENSTACK_TYPE_PROPERTY])
def overrided_create_volume(cinder_client, status_attempts, status_timeout, args, **_): handle_external_resource() if(ctx.instance.runtime_properties[USE_EXTERNAL_RESOURCE_KEY]): handle_resource_ids() create(cinder_client, status_attempts, status_timeout, args, **_)