Esempio n. 1
0
 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'),
     ]
Esempio n. 2
0
 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'
                           }]),
     ]
Esempio n. 3
0
 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'),
     ]
Esempio n. 4
0
 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'),
     ]
Esempio n. 5
0
 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'),
     ]
Esempio n. 6
0
 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'),
     ]
Esempio n. 7
0
 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'),
     ]
Esempio n. 8
0
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
Esempio n. 9
0
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
Esempio n. 10
0
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
Esempio n. 11
0
 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'}]),
     ]
Esempio n. 12
0
    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)
Esempio n. 13
0
    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)
Esempio n. 14
0
    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)
Esempio n. 15
0
 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()
Esempio n. 16
0
    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)
Esempio n. 17
0
 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()
Esempio n. 18
0
    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)
Esempio n. 19
0
    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)
Esempio n. 20
0
    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)
Esempio n. 21
0
    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)
Esempio n. 22
0
    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)
Esempio n. 23
0
 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'),
     ]
Esempio n. 24
0
 def stub_volume_get(self, context, volume_id):
     return (stubs.stub_volume(volume_id,
                               volume_glance_metadata=dict(foo='bar')))
Esempio n. 25
0
 def stub_volume_get(self, context, volume_id):
     return stubs.stub_volume(volume_id, attach_status='detached')
Esempio n. 26
0
 def stub_volume_get(self, context, volume_id):
     return stubs.stub_volume(volume_id, encryption_key_id='fake_id')
Esempio n. 27
0
 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"),
     ]
Esempio n. 28
0
 def stub_volume_get(self, context, volume_id):
     return stubs.stub_volume(volume_id, attach_status='detached')
Esempio n. 29
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     return stubs.stub_volume(volume_id, encryption_key_id=None)
Esempio n. 30
0
 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"),
     ]
Esempio n. 31
0
 def stub_volume_get(self, context, volume_id):
     return stubs.stub_volume(volume_id, encryption_key_id='fake_id')
Esempio n. 32
0
 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'),
     ]
Esempio n. 33
0
 def stub_volume_get(self, context, volume_id):
     return (stubs.stub_volume(volume_id,
             volume_glance_metadata=dict(foo='bar')))
Esempio n. 34
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     return stubs.stub_volume(volume_id, encryption_key_id=None)