def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name='vol1'), stubs.stub_volume(2, display_name='vol2'), stubs.stub_volume(3, display_name='vol3'), ]
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name='vol1', status='available', volume_metadata=[{ 'key': 'key1', 'value': 'value1' }]), stubs.stub_volume(2, display_name='vol2', status='available', volume_metadata=[{ 'key': 'key1', 'value': 'value2' }]), stubs.stub_volume(3, display_name='vol3', status='in-use', volume_metadata=[{ 'key': 'key1', 'value': 'value2' }]), ]
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name='vol1', status='available'), stubs.stub_volume(2, display_name='vol2', status='available'), stubs.stub_volume(3, display_name='vol3', status='in-use'), ]
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name='vol1'), stubs.stub_volume(2, display_name='vol2'), stubs.stub_volume(3, display_name='vol3'), ]
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name='vol1', status='available'), stubs.stub_volume(2, display_name='vol2', status='available'), stubs.stub_volume(3, display_name='vol3', status='in-use'), ]
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir, filters=None, viewable_admin_meta=False): return [ stubs.stub_volume(1, display_name='vol1'), stubs.stub_volume(2, display_name='vol2'), ]
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_keys=None, sort_dirs=None, filters=None, viewable_admin_meta=False): return [ stubs.stub_volume(1, display_name='vol1'), stubs.stub_volume(2, display_name='vol2'), ]
def stub_volume_get(self, context, volume_id): volume = stubs.stub_volume(volume_id) if volume_id == 5: volume['status'] = 'in-use' else: volume['status'] = 'available' return volume
def stub_volume_get(self, context, volume_id): volume = stubs.stub_volume(volume_id) if volume_id == 5: volume["status"] = "in-use" else: volume["status"] = "available" return volume
def stub_volume_get(self, context, volume_id): volume = stubs.stub_volume(volume_id) if volume_id == 5: volume['status'] = 'in-use' else: volume['status'] = 'available' return volume
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name='vol1', status='available', volume_metadata=[{'key': 'key1', 'value': 'value1'}]), stubs.stub_volume(2, display_name='vol2', status='available', volume_metadata=[{'key': 'key1', 'value': 'value2'}]), stubs.stub_volume(3, display_name='vol3', status='in-use', volume_metadata=[{'key': 'key1', 'value': 'value2'}]), ]
def test_volume_create_with_type(self): vol_type = FLAGS.default_volume_type db.volume_type_create(context.get_admin_context(), dict(name=vol_type, extra_specs={})) db_vol_type = db.volume_type_get_by_name(context.get_admin_context(), vol_type) vol = { "size": 100, "name": "Volume Test Name", "display_description": "Volume Test Desc", "availability_zone": "zone1:host1", "volume_type": db_vol_type["name"], } body = {"volume": vol} req = fakes.HTTPRequest.blank("/v2/volumes") res_dict = self.controller.create(req, body) volume_id = res_dict["volume"]["id"] self.assertEquals(len(res_dict), 1) self.stubs.Set( volume_api.API, "get_all", lambda *args, **kwargs: [stubs.stub_volume(volume_id, volume_type={"name": vol_type})], ) req = fakes.HTTPRequest.blank("/v2/volumes/detail") res_dict = self.controller.detail(req)
def test_volume_create_with_type(self): vol_type = db.volume_type_create( context.get_admin_context(), dict(name=CONF.default_volume_type, extra_specs={}) ) db_vol_type = db.volume_type_get(context.get_admin_context(), vol_type.id) vol = { "size": 100, "name": "Volume Test Name", "description": "Volume Test Desc", "availability_zone": "zone1:host1", "volume_type": db_vol_type['id'], } body = {"volume": vol} req = fakes.HTTPRequest.blank('/v2/volumes') res_dict = self.controller.create(req, body) volume_id = res_dict['volume']['id'] self.assertEquals(len(res_dict), 1) self.stubs.Set(volume_api.API, 'get_all', lambda *args, **kwargs: [stubs.stub_volume(volume_id, volume_type={'name': vol_type})]) req = fakes.HTTPRequest.blank('/v2/volumes/detail') res_dict = self.controller.detail(req)
def test_volume_create_with_type(self): vol_type = db.volume_type_create( context.get_admin_context(), dict(name=FLAGS.default_volume_type, extra_specs={})) db_vol_type = db.volume_type_get(context.get_admin_context(), vol_type.id) vol = { "size": 100, "name": "Volume Test Name", "description": "Volume Test Desc", "availability_zone": "zone1:host1", "volume_type": db_vol_type['id'], } body = {"volume": vol} req = fakes.HTTPRequest.blank('/v2/volumes') res_dict = self.controller.create(req, body) volume_id = res_dict['volume']['id'] self.assertEquals(len(res_dict), 1) self.stubs.Set( volume_api.API, 'get_all', lambda *args, **kwargs: [stubs.stub_volume(volume_id, volume_type={'name': vol_type})]) req = fakes.HTTPRequest.blank('/v2/volumes/detail') res_dict = self.controller.detail(req)
def setUp(self): super(SchedulerHintsTestCase, self).setUp() self.fake_instance = stubs.stub_volume(1, uuid=UUID) self.fake_instance['created_at'] =\ datetime.datetime(2013, 1, 1, 1, 1, 1) self.flags( osapi_volume_extension=['cinder.api.contrib.select_extensions'], osapi_volume_ext_list=['Scheduler_hints']) self.app = fakes.wsgi_app()
def test_volume_show_with_admin_metadata(self): volume = stubs.stub_volume("1") del volume['name'] del volume['volume_type'] del volume['volume_type_id'] volume['metadata'] = {'key': 'value'} db.volume_create(context.get_admin_context(), volume) db.volume_admin_metadata_update(context.get_admin_context(), "1", { "readonly": "True", "invisible_key": "invisible_value" }, False) req = fakes.HTTPRequest.blank('/v1/volumes/1') admin_ctx = context.RequestContext('admin', 'fakeproject', True) req.environ['cinder.context'] = admin_ctx res_dict = self.controller.show(req, '1') expected = { 'volume': { 'status': 'fakestatus', 'display_description': 'displaydesc', 'availability_zone': 'fakeaz', 'display_name': 'displayname', 'encrypted': False, 'attachments': [{ 'device': '/', 'server_id': 'fakeuuid', 'host_name': None, 'id': '1', 'volume_id': '1' }], 'bootable': 'false', 'volume_type': None, 'snapshot_id': None, 'source_volid': None, 'metadata': { 'key': 'value', 'readonly': 'True' }, 'id': '1', 'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1), 'size': 1 } } self.assertEqual(res_dict, expected)
def setUp(self): super(SchedulerHintsTestCase, self).setUp() self.fake_instance = stubs.stub_volume(1, uuid=UUID) self.fake_instance['created_at'] =\ datetime.datetime(2013, 1, 1, 1, 1, 1) self.flags( osapi_volume_extension=[ 'cinder.api.contrib.select_extensions'], osapi_volume_ext_list=['Scheduler_hints']) self.app = fakes.wsgi_app()
def test_volume_update_with_admin_metadata(self): self.stubs.Set(volume_api.API, "update", stubs.stub_volume_update) volume = stubs.stub_volume("1") del volume['name'] del volume['volume_type'] del volume['volume_type_id'] volume['metadata'] = {'key': 'value'} db.volume_create(context.get_admin_context(), volume) db.volume_admin_metadata_update(context.get_admin_context(), "1", {"readonly": "True", "invisible_key": "invisible_value"}, False) values = {'volume_id': '1', } attachment = db.volume_attach(context.get_admin_context(), values) db.volume_attached(context.get_admin_context(), attachment['id'], stubs.FAKE_UUID, None, '/') updates = { "display_name": "Updated Test Name", } body = {"volume": updates} req = fakes.HTTPRequest.blank('/v1/volumes/1') self.assertEqual(len(fake_notifier.NOTIFICATIONS), 0) admin_ctx = context.RequestContext('admin', 'fakeproject', True) req.environ['cinder.context'] = admin_ctx res_dict = self.controller.update(req, '1', body) expected = {'volume': { 'status': 'in-use', 'display_description': 'displaydesc', 'availability_zone': 'fakeaz', 'display_name': 'Updated Test Name', 'encrypted': False, 'attachments': [{ 'attachment_id': attachment['id'], 'id': '1', 'volume_id': '1', 'server_id': stubs.FAKE_UUID, 'host_name': None, 'device': '/' }], 'multiattach': 'false', 'bootable': 'false', 'volume_type': None, 'snapshot_id': None, 'source_volid': None, 'metadata': {'key': 'value', 'readonly': 'True'}, 'id': '1', 'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1), 'size': 1}} self.assertEqual(res_dict, expected) self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
def test_volume_update_with_admin_metadata(self): self.stubs.Set(volume_api.API, "update", stubs.stub_volume_update) volume = stubs.stub_volume("1") del volume['name'] del volume['volume_type'] del volume['volume_type_id'] volume['metadata'] = {'key': 'value'} db.volume_create(context.get_admin_context(), volume) db.volume_admin_metadata_update(context.get_admin_context(), "1", {"readonly": "True", "invisible_key": "invisible_value"}, False) updates = { "display_name": "Updated Test Name", } body = {"volume": updates} req = fakes.HTTPRequest.blank('/v1/volumes/1') self.assertEqual(len(fake_notifier.NOTIFICATIONS), 0) admin_ctx = context.RequestContext('admin', 'fakeproject', True) req.environ['cinder.context'] = admin_ctx res_dict = self.controller.update(req, '1', body) expected = {'volume': { 'status': 'fakestatus', 'display_description': 'displaydesc', 'availability_zone': 'fakeaz', 'display_name': 'Updated Test Name', 'encrypted': False, 'attachments': [{ 'id': '1', 'volume_id': '1', 'server_id': 'fakeuuid', 'host_name': None, 'device': '/' }], 'bootable': 'false', 'volume_type': 'None', 'snapshot_id': None, 'source_volid': None, 'metadata': {'key': 'value', 'readonly': 'True'}, 'id': '1', 'created_at': datetime.datetime(1, 1, 1, 1, 1, 1), 'size': 1}} self.assertEqual(res_dict, expected) self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
def test_force_delete_snapshot(self, volume_get, snapshot_get, get_by_id, delete_snapshot): ctx = context.RequestContext('admin', 'fake', True) volume = stubs.stub_volume(1) snapshot = stubs.stub_snapshot(1) snapshot_obj = fake_snapshot.fake_snapshot_obj(ctx, **snapshot) volume_get.return_value = volume snapshot_get.return_value = snapshot get_by_id.return_value = snapshot_obj path = '/v2/fake/snapshots/%s/action' % snapshot['id'] req = webob.Request.blank(path) req.method = 'POST' req.headers['content-type'] = 'application/json' req.body = jsonutils.dumps({'os-force_delete': {}}) # attach admin context to request req.environ['cinder.context'] = ctx resp = req.get_response(app()) self.assertEqual(resp.status_int, 202)
def test_force_delete_snapshot(self, volume_get, snapshot_get, get_by_id, delete_snapshot): ctx = context.RequestContext('admin', 'fake', True) volume = stubs.stub_volume(1) snapshot = stubs.stub_snapshot(1) snapshot_obj = fake_snapshot.fake_snapshot_obj(ctx, **snapshot) volume_get.return_value = volume snapshot_get.return_value = snapshot get_by_id.return_value = snapshot_obj path = '/v2/fake/snapshots/%s/action' % snapshot['id'] req = webob.Request.blank(path) req.method = 'POST' req.headers['content-type'] = 'application/json' req.body = jsonutils.dumps({'os-force_delete': {}}) # attach admin context to request req.environ['cinder.context'] = ctx resp = req.get_response(app()) self.assertEqual(resp.status_int, 202)
def test_volume_show_with_admin_metadata(self): volume = stubs.stub_volume("1") del volume['name'] del volume['volume_type'] del volume['volume_type_id'] volume['metadata'] = {'key': 'value'} db.volume_create(context.get_admin_context(), volume) db.volume_admin_metadata_update(context.get_admin_context(), "1", {"readonly": "True", "invisible_key": "invisible_value"}, False) req = fakes.HTTPRequest.blank('/v1/volumes/1') admin_ctx = context.RequestContext('admin', 'fakeproject', True) req.environ['cinder.context'] = admin_ctx res_dict = self.controller.show(req, '1') expected = {'volume': {'status': 'fakestatus', 'display_description': 'displaydesc', 'availability_zone': 'fakeaz', 'display_name': 'displayname', 'encrypted': False, 'attachments': [{'device': '/', 'server_id': 'fakeuuid', 'host_name': None, 'id': '1', 'volume_id': '1'}], 'bootable': 'false', 'volume_type': None, 'snapshot_id': None, 'source_volid': None, 'metadata': {'key': 'value', 'readonly': 'True'}, 'id': '1', 'created_at': datetime.datetime(1, 1, 1, 1, 1, 1), 'size': 1}} self.assertEqual(res_dict, expected)
def stub_volume_get_all_by_project(context, project_id): return [ stubs.stub_volume(1, display_name='vol1', status='available'), stubs.stub_volume(2, display_name='vol2', status='available'), stubs.stub_volume(3, display_name='vol3', status='in-use'), ]
def stub_volume_get(self, context, volume_id): return (stubs.stub_volume(volume_id, volume_glance_metadata=dict(foo='bar')))
def stub_volume_get(self, context, volume_id): return stubs.stub_volume(volume_id, attach_status='detached')
def stub_volume_get(self, context, volume_id): return stubs.stub_volume(volume_id, encryption_key_id='fake_id')
def stub_volume_get_all_by_project(context, project_id): return [ stubs.stub_volume(1, display_name="vol1", status="available"), stubs.stub_volume(2, display_name="vol2", status="available"), stubs.stub_volume(3, display_name="vol3", status="in-use"), ]
def stub_volume_get(self, context, volume_id): return stubs.stub_volume(volume_id, attach_status='detached')
def stub_volume_get(self, context, volume_id, **kwargs): return stubs.stub_volume(volume_id, encryption_key_id=None)
def stub_volume_get_all_by_project(context, project_id, marker, limit, sort_key, sort_dir): return [ stubs.stub_volume(1, display_name="vol1", status="available"), stubs.stub_volume(2, display_name="vol2", status="available"), stubs.stub_volume(3, display_name="vol3", status="in-use"), ]
def stub_volume_get(self, context, volume_id): return stubs.stub_volume(volume_id, encryption_key_id='fake_id')
def stub_volume_get_all_by_project(context, project_id): return [ stubs.stub_volume(1, display_name='vol1'), stubs.stub_volume(2, display_name='vol2'), stubs.stub_volume(3, display_name='vol3'), ]
def stub_volume_get(self, context, volume_id): return (stubs.stub_volume(volume_id, volume_glance_metadata=dict(foo='bar')))
def stub_volume_get(self, context, volume_id, **kwargs): return stubs.stub_volume(volume_id, encryption_key_id=None)