def test_list_for_project(self): tcs = mock_client_set(self.mox) tenant = self.tenants[1] self.fake_client_set.identity_admin.tenants.get(tenant.id)\ .AndReturn(tenant) images.auth.client_set_for_tenant(tenant.id, fallback_to_api=True) \ .AndReturn(tcs) tcs.image.images.list(filters={'is_public': None}) \ .AndReturn(['ii1', 'ii2']) images._image_to_view('ii1', self.tenants[0]).AndReturn('I1') images._image_to_view('ii2', self.tenants[1]).AndReturn('I2') expected = { u'collection': { u'name': u'images', u'size': 2 }, u'images': [ 'I1', 'I2' ] } self.mox.ReplayAll() rv = self.client.get(u'/v1/images/?project:for=%s' % tenant.id) data = self.check_and_parse_response(rv) self.assertEquals(data, expected)
def test_create_ami_image(self): params = { u'name': u'TestImage', u'global': True, u'disk-format': u'ami', u'container-format': u'ami', u'kernel': u'KERNEL_ID', u'ramdisk': u'RAMDISK_ID' } images.auth.assert_admin() self.fake_client_set.image.images.create( name=u'TestImage', disk_format=u'ami', container_format=u'ami', is_public=True, properties={ u'kernel_id': u'KERNEL_ID', u'ramdisk_id': u'RAMDISK_ID' }).AndReturn('QueuedImage') images._image_to_view('QueuedImage').AndReturn('REPLY') self.mox.ReplayAll() data = self.interact(params) self.assertEquals(data, 'REPLY')
def test_update_image_name(self): image = doubles.make(self.mox, doubles.Image, id=u"IMAGE", owner=u"PID") images._fetch_image(image.id, to_modify=True).AndReturn(image) image.update(name="UPDATED") images._fetch_image(image.id, to_modify=False).AndReturn("UPDATED IMAGE") images._image_to_view("UPDATED IMAGE").AndReturn("REPLY") self.mox.ReplayAll() data = self.interact(image.id, {"name": "UPDATED"}) self.assertEquals(data, "REPLY")
def test_list_for_project(self): tcs = mock_client_set(self.mox) self.fake_client_set.identity_admin.tenants.get(self.tenant.id).AndReturn(self.tenant) images.auth.client_set_for_tenant(self.tenant.id, fallback_to_api=False).AndReturn(tcs) tcs.image.images.list(filters={"is_public": None}).AndReturn(["ii1"]) images._image_to_view("ii1", self.tenant).AndReturn("I1") self.mox.ReplayAll() rv = self.client.get(u"/v1/images/?project:for=%s" % self.tenant.id) data = self.check_and_parse_response(rv) self.assertEquals(data.get("images"), ["I1"])
def test_get_image_works(self): client = self.fake_client_set image = self.images[-1] client.image.images.get(image.id).AndReturn(image) images.auth.default_tenant_id().AndReturn('SYS') images._image_to_view(image).AndReturn('REPLY') self.mox.ReplayAll() rv = self.client.get(u'/v1/images/%s' % image.id) data = self.check_and_parse_response(rv) self.assertEquals(data, 'REPLY')
def test_get_image_works(self): client = self.fake_client_set image = self.images[-1] client.image.images.get(image.id).AndReturn(image) images.auth.default_tenant_id().AndReturn("SYS") images._image_to_view(image).AndReturn("REPLY") self.mox.ReplayAll() rv = self.client.get(u"/v1/images/%s" % image.id) data = self.check_and_parse_response(rv) self.assertEquals(data, "REPLY")
def test_create_global_image(self): params = {u"name": u"TestImage", u"global": True, u"disk-format": u"raw", u"container-format": u"bare"} images.auth.assert_admin() self.fake_client_set.image.images.create( name=u"TestImage", disk_format=u"raw", container_format=u"bare", is_public=True, properties={} ).AndReturn("QueuedImage") images._image_to_view("QueuedImage").AndReturn("REPLY") self.mox.ReplayAll() data = self.interact(params) self.assertEquals(data, "REPLY")
def test_update_image_name(self): image = doubles.make(self.mox, doubles.Image, id=u'IMAGE', owner=u'PID') images._fetch_image(image.id, to_modify=True).AndReturn(image) image.update(name='UPDATED') images._fetch_image(image.id, to_modify=False)\ .AndReturn('UPDATED IMAGE') images._image_to_view('UPDATED IMAGE').AndReturn('REPLY') self.mox.ReplayAll() data = self.interact(image.id, {'name': 'UPDATED'}) self.assertEquals(data, 'REPLY')
def test_list_in_project(self): # differs with previous only in request argument tcs = mock_client_set(self.mox) fake_image_dict = {"name": "I1", "project": {"id": self.tenant.id}} self.fake_client_set.identity_admin.tenants.get(self.tenant.id).AndReturn(self.tenant) images.auth.client_set_for_tenant(self.tenant.id, fallback_to_api=False).AndReturn(tcs) tcs.image.images.list(filters={"is_public": False}).AndReturn(["ii1"]) images._image_to_view("ii1", self.tenant).AndReturn(fake_image_dict) self.mox.ReplayAll() rv = self.client.get(u"/v1/images/?project:in=%s" % self.tenant.id) data = self.check_and_parse_response(rv) self.assertEquals(data.get("images"), [fake_image_dict])
def test_list_for_project(self): tcs = mock_client_set(self.mox) self.fake_client_set.identity_admin.tenants.get(self.tenant.id)\ .AndReturn(self.tenant) images.auth.client_set_for_tenant(self.tenant.id, fallback_to_api=False) \ .AndReturn(tcs) tcs.image.images.list(filters={'is_public': None}) \ .AndReturn(['ii1']) images._image_to_view('ii1', self.tenant).AndReturn('I1') self.mox.ReplayAll() rv = self.client.get(u'/v1/images/?project:for=%s' % self.tenant.id) data = self.check_and_parse_response(rv) self.assertEquals(data.get('images'), ['I1'])
def test_list_for_project(self): tcs = mock_client_set(self.mox) tenant = self.tenants[1] self.fake_client_set.identity_admin.tenants.get(tenant.id).AndReturn(tenant) images.auth.client_set_for_tenant(tenant.id, fallback_to_api=True).AndReturn(tcs) tcs.image.images.list(filters={"is_public": None}).AndReturn(["ii1", "ii2"]) images._image_to_view("ii1", self.tenants[0]).AndReturn("I1") images._image_to_view("ii2", self.tenants[1]).AndReturn("I2") expected = {u"collection": {u"name": u"images", u"size": 2}, u"images": ["I1", "I2"]} self.mox.ReplayAll() rv = self.client.get(u"/v1/images/?project:for=%s" % tenant.id) data = self.check_and_parse_response(rv) self.assertEquals(data, expected)
def test_create_local_image(self): params = { u"name": u"TestImage", u"project": u"PROJECT_ID", u"disk-format": u"raw", u"container-format": u"bare", } tcs = mock_client_set(self.mox) images.auth.client_set_for_tenant(u"PROJECT_ID").AndReturn(tcs) tcs.image.images.create( name=u"TestImage", disk_format=u"raw", container_format=u"bare", is_public=False, properties={} ).AndReturn("QueuedImage") images._image_to_view("QueuedImage").AndReturn("REPLY") self.mox.ReplayAll() data = self.interact(params) self.assertEquals(data, "REPLY")
def test_list_in_project(self): # differs with previous only in request argument tcs = mock_client_set(self.mox) fake_image_dict = { 'name': 'I1', 'project': { 'id': self.tenant.id } } self.fake_client_set.identity_admin.tenants.get(self.tenant.id)\ .AndReturn(self.tenant) images.auth.client_set_for_tenant(self.tenant.id, fallback_to_api=False) \ .AndReturn(tcs) tcs.image.images.list(filters={'is_public': False}) \ .AndReturn(['ii1']) images._image_to_view('ii1', self.tenant).AndReturn(fake_image_dict) self.mox.ReplayAll() rv = self.client.get(u'/v1/images/?project:in=%s' % self.tenant.id) data = self.check_and_parse_response(rv) self.assertEquals(data.get('images'), [fake_image_dict])
def test_global_ami_image_to_view(self): image_properties = { u'image_location': u'local', u'kernel_id': u'KERNEL', u'ramdisk_id': u'RAMDISK', u'architecture': u'x86_64', } image = doubles.make(self.mox, doubles.Image, id=u'IMAGE', name=u'TestImage', size=123456, owner=None, created_at='2012-10-15T01:43:00', disk_format=u'ami', container_format=u'ami', checksum='831a05f7bdeadbabe5l1k3133715e7ea', status=u'active', properties=image_properties) kernel = doubles.make(self.mox, doubles.Image, id=u'KERNEL', name=u'TestKernel', disk_format=u'aki', container_format=u'aki') ramdisk = doubles.make(self.mox, doubles.Image, id=u'RAMDISK', name=u'TestRamdisk', disk_format=u'ari', container_format=u'ari') expected = { u'id': u'IMAGE', u'href': '/v1/images/IMAGE', u'data-href': '/v1/images/IMAGE/data', u'name': u'TestImage', u'global': True, u'created': datetime(2012, 10, 15, 01, 43, 00), u'disk-format': u'ami', u'container-format': u'ami', u'md5sum': '831a05f7bdeadbabe5l1k3133715e7ea', u'size': 123456, u'status': u'active', u'kernel': { u'id': u'KERNEL', u'name': u'TestKernel', u'href': '/v1/images/KERNEL' }, u'ramdisk': { u'id': u'RAMDISK', u'name': u'TestRamdisk', u'href': '/v1/images/RAMDISK' } } images_mgr = self.fake_client_set.image.images images_mgr.get(u'KERNEL').AndReturn(kernel) images_mgr.get(u'RAMDISK').AndReturn(ramdisk) self.mox.ReplayAll() with self.app.test_request_context(): self.install_fake_auth() image.owner = images.auth.default_tenant_id() data = images._image_to_view(image) self.assertEquals(data, expected)
def test_create_local_image(self): params = { u'name': u'TestImage', u'project': u'PROJECT_ID', u'disk-format': u'raw', u'container-format': u'bare', } tcs = mock_client_set(self.mox) images.auth.client_set_for_tenant(u'PROJECT_ID').AndReturn(tcs) tcs.image.images.create( name=u'TestImage', disk_format=u'raw', container_format=u'bare', is_public=False, properties={}).AndReturn('QueuedImage') images._image_to_view('QueuedImage').AndReturn('REPLY') self.mox.ReplayAll() data = self.interact(params) self.assertEquals(data, 'REPLY')
def test_list_works(self): client = self.fake_client_set client.identity_public.tenants.list().AndReturn([self.tenant]) images.auth.default_tenant_id().AndReturn('SYS') client.image.images.list(filters={'is_public': None})\ .AndReturn(self.images) images._image_to_view(self.images[0], None).AndReturn('I1') images._image_to_view(self.images[1], self.tenant).AndReturn('I2') images._image_to_view(self.images[2], self.tenant).AndReturn('I3') expected = { u'collection': { u'name': u'images', u'size': 3 }, u'images': [ 'I1', 'I2', 'I3' ] } self.mox.ReplayAll() rv = self.client.get(u'/v1/images/') data = self.check_and_parse_response(rv) self.assertEquals(data, expected)
def test_list_works(self): client = self.fake_client_set client.identity_public.tenants.list().AndReturn([self.tenant]) images.auth.default_tenant_id().AndReturn("SYS") client.image.images.list(filters={"is_public": None}).AndReturn(self.images) images._image_to_view(self.images[0], None).AndReturn("I1") images._image_to_view(self.images[1], self.tenant).AndReturn("I2") images._image_to_view(self.images[2], self.tenant).AndReturn("I3") expected = {u"collection": {u"name": u"images", u"size": 3}, u"images": ["I1", "I2", "I3"]} self.mox.ReplayAll() rv = self.client.get(u"/v1/images/") data = self.check_and_parse_response(rv) self.assertEquals(data, expected)
u'id': u'TENANT', u'name': u'TestTenant', u'href': '/v1/projects/TENANT' }, u'created': datetime(2012, 10, 15, 01, 43, 00), u'disk-format': u'raw', u'container-format': u'bare', u'md5sum': '831a05f7bdeadbabe5l1k3133715e7ea', u'size': 123456, u'status': u'active', } self.mox.ReplayAll() with self.app.test_request_context(): self.install_fake_auth() data = images._image_to_view(image, tenant) self.assertEquals(data, expected) def test_global_image_to_view(self): image = doubles.make(self.mox, doubles.Image, id=u'IMAGE', name=u'TestImage', size=123456, owner=None, created_at='2012-10-15T01:43:00', disk_format=u'raw', container_format=u'bare', checksum='831a05f7bdeadbabe5l1k3133715e7ea', status=u'active') expected = { u'id': u'IMAGE', u'href': '/v1/images/IMAGE', u'data-href': '/v1/images/IMAGE/data', u'name': u'TestImage', u'global': True,
u"data-href": "/v1/images/IMAGE/data", u"name": u"TestImage", u"global": False, u"project": {u"id": u"TENANT", u"name": u"TestTenant", u"href": "/v1/projects/TENANT"}, u"created": datetime(2012, 10, 15, 01, 43, 00), u"disk-format": u"raw", u"container-format": u"bare", u"md5sum": "831a05f7bdeadbabe5l1k3133715e7ea", u"size": 123456, u"status": u"active", } self.mox.ReplayAll() with self.app.test_request_context(): self.install_fake_auth() data = images._image_to_view(image, tenant) self.assertEquals(data, expected) def test_global_image_to_view(self): image = doubles.make( self.mox, doubles.Image, id=u"IMAGE", name=u"TestImage", size=123456, owner=None, created_at="2012-10-15T01:43:00", disk_format=u"raw", container_format=u"bare", checksum="831a05f7bdeadbabe5l1k3133715e7ea", status=u"active",