def stub_volume_get_all_by_project(context, project_id, marker,
                                    limit, sort_keys=None,
                                    sort_dirs=None, filters=None,
                                    viewable_admin_meta=False,
                                    offset=None):
     return [
         stubs.stub_volume(fake.VOLUME_ID, display_name='vol1'),
         stubs.stub_volume(fake.VOLUME2_ID, display_name='vol2'),
     ]
Beispiel #2
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,
                                    offset=None):
     return [
         stubs.stub_volume(fake.VOLUME_ID, display_name='vol1'),
         stubs.stub_volume(fake.VOLUME2_ID, display_name='vol2'),
     ]
Beispiel #3
0
    def test_volume_show_with_admin_metadata(self):
        volume = stubs.stub_volume(fake.VOLUME_ID)
        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(),
                                        fake.VOLUME_ID,
                                        {"readonly": "True",
                                         "invisible_key": "invisible_value"},
                                        False)
        values = {'volume_id': fake.VOLUME_ID, }
        attachment = db.volume_attach(context.get_admin_context(), values)
        db.volume_attached(context.get_admin_context(),
                           attachment['id'], fake.INSTANCE_ID, None, '/')

        req = fakes.HTTPRequest.blank('/v1/volumes/%s' % fake.VOLUME_ID)
        admin_ctx = context.RequestContext(fake.USER_ID, fake.PROJECT_ID, True)
        req.environ['cinder.context'] = admin_ctx
        res_dict = self.controller.show(req, fake.VOLUME_ID)
        expected = {'volume': {'status': 'in-use',
                               'display_description': 'displaydesc',
                               'availability_zone': 'fakeaz',
                               'display_name': 'displayname',
                               'encrypted': False,
                               'attachments': [
                                   {'attachment_id': attachment['id'],
                                    'device': '/',
                                    'server_id': fake.INSTANCE_ID,
                                    'host_name': None,
                                    'id': fake.VOLUME_ID,
                                    'volume_id': fake.VOLUME_ID}],
                               'multiattach': 'false',
                               'bootable': 'false',
                               'volume_type': None,
                               'snapshot_id': None,
                               'source_volid': None,
                               'metadata': {'key': 'value',
                                            'readonly': 'True'},
                               'id': fake.VOLUME_ID,
                               'created_at': datetime.datetime(
                                   1900, 1, 1, 1, 1, 1,
                                   tzinfo=iso8601.iso8601.Utc()),
                               'size': 1}}
        self.assertEqual(expected, res_dict)
    def test_volume_show_with_admin_metadata(self):
        volume = stubs.stub_volume(fake.VOLUME_ID)
        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(),
                                        fake.VOLUME_ID,
                                        {"readonly": "True",
                                         "invisible_key": "invisible_value"},
                                        False)
        values = {'volume_id': fake.VOLUME_ID, }
        attachment = db.volume_attach(context.get_admin_context(), values)
        db.volume_attached(context.get_admin_context(),
                           attachment['id'], fake.INSTANCE_ID, None, '/')

        req = fakes.HTTPRequest.blank('/v1/volumes/%s' % fake.VOLUME_ID)
        admin_ctx = context.RequestContext(fake.USER_ID, fake.PROJECT_ID, True)
        req.environ['cinder.context'] = admin_ctx
        res_dict = self.controller.show(req, fake.VOLUME_ID)
        expected = {'volume': {'status': 'in-use',
                               'display_description': 'displaydesc',
                               'availability_zone': 'fakeaz',
                               'display_name': 'displayname',
                               'encrypted': False,
                               'attachments': [
                                   {'attachment_id': attachment['id'],
                                    'device': '/',
                                    'server_id': fake.INSTANCE_ID,
                                    'host_name': None,
                                    'id': fake.VOLUME_ID,
                                    'volume_id': fake.VOLUME_ID}],
                               'multiattach': 'false',
                               'bootable': 'false',
                               'volume_type': None,
                               'snapshot_id': None,
                               'source_volid': None,
                               'metadata': {'key': 'value',
                                            'readonly': 'True'},
                               'id': fake.VOLUME_ID,
                               'created_at': datetime.datetime(
                                   1900, 1, 1, 1, 1, 1,
                                   tzinfo=iso8601.iso8601.Utc()),
                               'size': 1}}
        self.assertEqual(expected, res_dict)
Beispiel #5
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = (stubs.stub_volume(volume_id,
                              volume_glance_metadata=dict(foo='bar')))
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #6
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = stubs.stub_volume(
         volume_id, attach_status=fields.VolumeAttachStatus.DETACHED)
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #7
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = stubs.stub_volume(volume_id, encryption_key_id=fake.KEY_ID)
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #8
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = stubs.stub_volume(volume_id, attach_status='detached')
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #9
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = stubs.stub_volume(volume_id, encryption_key_id=fake.KEY_ID)
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #10
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = (stubs.stub_volume(volume_id,
            volume_glance_metadata=dict(foo='bar')))
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #11
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = stubs.stub_volume(volume_id, attach_status='detached')
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #12
0
 def stub_volume_get(self, context, volume_id, **kwargs):
     vol = stubs.stub_volume(
         volume_id,
         attach_status = fields.VolumeAttachStatus.DETACHED)
     return fake_volume.fake_volume_obj(context, **vol)
Beispiel #13
0
    def test_volume_update_with_admin_metadata(self):
        def stubs_volume_admin_metadata_get(context, volume_id):
            return {'key': 'value',
                    'readonly': 'True'}
        self.stubs.Set(db, 'volume_admin_metadata_get',
                       stubs_volume_admin_metadata_get)
        self.stubs.Set(volume_api.API, "update", stubs.stub_volume_update)

        volume = stubs.stub_volume(fake.volume_id)
        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(),
                                        fake.volume_id,
                                        {"readonly": "True",
                                         "invisible_key": "invisible_value"},
                                        False)
        values = {'volume_id': fake.volume_id, }
        attachment = db.volume_attach(context.get_admin_context(), values)
        db.volume_attached(context.get_admin_context(),
                           attachment['id'], fake.instance_id,
                           None, '/')

        updates = {
            "display_name": "Updated Test Name",
        }
        body = {"volume": updates}
        req = fakes.HTTPRequest.blank('/v1/volumes/%s' % fake.volume_id)
        self.assertEqual(0, len(self.notifier.notifications))
        admin_ctx = context.RequestContext(fake.user_id, fake.project_id, True)
        req.environ['cinder.context'] = admin_ctx
        res_dict = self.controller.update(req, fake.volume_id, 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': fake.volume_id,
                'volume_id': fake.volume_id,
                'server_id': fake.instance_id,
                'host_name': None,
                'device': '/'
            }],
            'multiattach': 'false',
            'bootable': 'false',
            'volume_type': None,
            'snapshot_id': None,
            'source_volid': None,
            'metadata': {'key': 'value',
                         'readonly': 'True'},
            'id': fake.volume_id,
            'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1,
                                            tzinfo=iso8601.iso8601.Utc()),
            'size': 1}}
        self.assertEqual(expected, res_dict)
        self.assertEqual(2, len(self.notifier.notifications))