Files
gce-api/gceapi/tests/unit/api/fake_glance_client.py
Andrey Pavlov 75905790e5 update gce api to current OpenStack
- add devstack plugin
- update openstack common
- move unit tests to unit folder
- update infrastructural files

Change-Id: Id72006f70110dbd1762f42b582470ac5f3439f2a
2015-09-03 17:16:30 +03:00

138 lines
3.8 KiB
Python

# Copyright 2014
# The Cloudscaling Group, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import copy
from glanceclient import exc as glance_exc
from oslo_utils import timeutils
from gceapi.tests.unit.api import fake_request
from gceapi.tests.unit.api import utils
_TIMESTAMP = timeutils.parse_isotime('2013-08-01T11:30:25')
FAKE_IMAGES = [utils.FakeObject({
'id': '60ff30c2-64b6-4a97-9c17-322eebc8bd60',
'name': 'fake-image-1',
'created_at': _TIMESTAMP,
'updated_at': _TIMESTAMP,
'deleted_at': None,
'deleted': False,
'status': 'active',
'is_public': False,
'container_format': 'bare',
'disk_format': 'raw',
'properties': {},
'owner': fake_request.PROJECT_ID,
'protected': False,
'min_ram': 0,
'checksum': u'50bdc35edb03a38d91b1b071afb20a3c',
'min_disk': 0,
'size': 1
}), utils.FakeObject({
'id': 'a2459075-d96c-40d5-893e-577ff92e721c',
'name': 'fake-image-2',
'created_at': _TIMESTAMP,
'updated_at': _TIMESTAMP,
'deleted_at': None,
'deleted': False,
'status': 'active',
'is_public': True,
'container_format': 'bare',
'disk_format': 'raw',
'properties': {},
'owner': fake_request.PROJECT_ID,
'protected': False,
'min_ram': 0,
'checksum': u'20bdc35edb03a38d91b1b071afb20a3c',
'min_disk': 0,
'size': 2,
}), utils.FakeObject({
'id': '0aa076e2-def4-43d1-ae81-c77a9f9279e6',
'name': 'image-to-delete',
'created_at': _TIMESTAMP,
'updated_at': _TIMESTAMP,
'deleted_at': None,
'deleted': False,
'status': 'active',
'is_public': True,
'container_format': 'bare',
'disk_format': 'raw',
'properties': {},
'owner': fake_request.PROJECT_ID,
'protected': False,
'min_ram': 0,
'checksum': u'20bdc35edb03a38d91b1b071afb20a3c',
'min_disk': 0,
'size': 2,
})]
FAKE_NEW_IMAGE = {
"new-image": {
"id": "6a8fd89a-e636-48a4-8095-5510eab696c4",
"created_at": timeutils.parse_isotime("2013-08-02T11:30:25"),
"size": 5,
}
}
class FakeImages(object):
def get(self, image):
image_id = utils.get_id(image)
for i in FAKE_IMAGES:
if i.id == image_id:
return i
raise glance_exc.HTTPNotFound()
def list(self, **kwargs):
filters = kwargs.get('filters', {})
if "name" in filters:
return [i for i in FAKE_IMAGES
if i.name == filters["name"]]
return FAKE_IMAGES
def delete(self, image):
image_id = utils.get_id(image)
image_index = 0
for image in FAKE_IMAGES:
if image.id != image_id:
image_index += 1
continue
del FAKE_IMAGES[image_index]
return True
raise glance_exc.HTTPNotFound()
def create(self, **kwargs):
image = copy.deepcopy(FAKE_NEW_IMAGE[kwargs["name"]])
image.update(kwargs)
image["updated_at"] = image["created_at"]
image.update({
"deleted_at": False,
"deleted": False,
"status": "active",
})
FAKE_IMAGES.append(utils.FakeObject(image))
return copy.deepcopy(utils.FakeObject(image))
class FakeGlanceClient(object):
def __init__(self, version, *args, **kwargs):
pass
@property
def images(self):
return FakeImages()