def test_metadata_upload_post_invalid(self): IMAGE_ID = u'1' METADATA_DATA = 'objectData' METADATA_FILE = tempfile.TemporaryFile() METADATA_FILE.write(METADATA_DATA) METADATA_FILE.flush() METADATA_FILE.seek(0) form_data = { 'method': 'UploadMetadata', 'image_meta_file': METADATA_FILE } self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IgnoreArg()) self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn(self.images) self.mox.ReplayAll() res = self.client.post( reverse('dash_images_metadata', args=[self.TEST_TENANT]), form_data) #self.assertIn('images', res.context) #images = res.context['images'] #self.assertEqual(len(images), 1) #self.assertEqual(images[0].name, 'visibleImage') self.mox.VerifyAll()
def test_index_no_images(self): self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn([]) self.mox.StubOutWithMock(messages, 'info') messages.info(IsA(http.HttpRequest), IsA(basestring)) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/images/index.html') self.mox.VerifyAll()
def test_index_client_conn_error(self): self.mox.StubOutWithMock(api, 'image_list_detailed') exception = glance_exception.ClientConnectionError('clientConnError') api.image_list_detailed(IsA(http.HttpRequest)).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(basestring)) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/images/index.html') self.mox.VerifyAll()
def test_index(self): self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn(self.images) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/images/index.html') self.assertIn('images', res.context) images = res.context['images'] self.assertEqual(len(images), 1) self.assertEqual(images[0].name, 'visibleImage') self.mox.VerifyAll()
def test_index_no_images(self): self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn([]) self.mox.StubOutWithMock(messages, 'info') messages.info(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'dash_images.html') self.mox.VerifyAll()
def test_index_no_images(self): self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn([]) self.mox.StubOutWithMock(messages, 'info') messages.info(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/images/index.html') self.mox.VerifyAll()
def index(request, tenant_id): tenant = api.token_get_tenant(request, request.user.tenant) all_images = [] try: all_images = api.image_list_detailed(request) if not all_images: messages.info(request, "There are currently no images.") except GlanceClientConnectionError, e: messages.error(request, "Error connecting to glance: %s" % e.message)
def test_index_client_conn_error(self): self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') exception = glance_exception.ClientConnectionError('clientConnError') api.image_list_detailed(IsA(http.HttpRequest)).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/images/index.html') self.mox.VerifyAll()
def test_index_glance_error(self): self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') exception = glance_exception.Error('glanceError') api.image_list_detailed(IsA(http.HttpRequest)).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'dash_images.html') self.mox.VerifyAll()
def test_index(self): self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn(self.images) self.mox.ReplayAll() res = self.client.get(reverse('dash_images', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/images/index.html') self.assertIn('images', res.context) images = res.context['images'] self.assertEqual(len(images), 1) self.assertEqual(images[0].name, 'visibleImage') self.mox.VerifyAll()
def index(request, tenant_id): form, handled = UploadMetadata.maybe_handle(request) if handled: return handled all_images = [] try: all_images = api.image_list_detailed(request) if not all_images: messages.info(request, "There are currently no images.") except glance_exception.ClientConnectionError, e: LOG.exception("Error connecting to glance") messages.error(request, "Error connecting to glance: %s" % str(e))
def test_image_list_detailed(self): images = (TEST_RETURN, TEST_RETURN + "2") glance_api = self.stub_glance_api() glance_api.get_images_detailed().AndReturn(images) self.mox.ReplayAll() ret_val = api.image_list_detailed(self.request) self.assertEqual(len(ret_val), len(images)) for image in ret_val: self.assertIsInstance(image, api.Image) self.assertIn(image._apidict, images) self.mox.VerifyAll()
def index(request, tenant_id): for f in (DeleteImage, ): unused, handled = f.maybe_handle(request) if handled: return handled delete_form = DeleteImage() all_images = [] try: all_images = api.image_list_detailed(request) if not all_images: messages.info(request, _("There are currently no images.")) except glance_exception.ClientConnectionError, e: LOG.exception("Error connecting to glance") messages.error(request, _("Error connecting to glance: %s") % str(e))
def index(request): for f in (DeleteImage, ToggleImage): _, handled = f.maybe_handle(request) if handled: return handled # We don't have any way of showing errors for these, so don't bother # trying to reuse the forms from above delete_form = DeleteImage() toggle_form = ToggleImage() images = [] try: images = api.image_list_detailed(request) if not images: messages.info(request, "There are currently no images.") except GlanceClientConnectionError, e: messages.error(request, "Error connecting to glance: %s" % e.message)
def index(request): for f in (DeleteImage, ToggleImage): _, handled = f.maybe_handle(request) if handled: return handled # We don't have any way of showing errors for these, so don't bother # trying to reuse the forms from above delete_form = DeleteImage() toggle_form = ToggleImage() images = [] try: images = api.image_list_detailed(request) if not images: messages.info(request, "There are currently no images.") except glance_exception.ClientConnectionError, e: LOG.error("Error connecting to glance", exc_info=True) messages.error(request, "Error connecting to glance: %s" % e.message)
for f in (DeleteImage, ): unused, handled = f.maybe_handle(request) if handled: return handled delete_form = DeleteImage() tenant = {} try: tenant = api.token_get_tenant(request, request.user.tenant_id) except api_exceptions.ApiException, e: messages.error( request, "Unable to retrienve tenant info\ from keystone: %s" % e.message) all_images = [] try: all_images = api.image_list_detailed(request) if not all_images: messages.info(request, "There are currently no images.") except glance_exception.ClientConnectionError, e: LOG.exception("Error connecting to glance") messages.error(request, "Error connecting to glance: %s" % str(e)) except glance_exception.Error, e: LOG.exception("Error retrieving image list") messages.error(request, "Error retrieving image list: %s" % str(e)) except api_exceptions.ApiException, e: msg = "Unable to retreive image info from glance: %s" % str(e) LOG.exception(msg) messages.error(request, msg) images = [ im for im in all_images
def index(request, tenant_id): for f in (DeleteImage, ): unused, handled = f.maybe_handle(request) if handled: return handled delete_form = DeleteImage() tenant = {} try: tenant = api.token_get_tenant(request, request.user.tenant_id) except api_exceptions.ApiException, e: messages.error(request, _("Unable to retrienve tenant info\ from keystone: %s") % e.message) all_images = [] try: all_images = api.image_list_detailed(request) if not all_images: messages.info(request, _("There are currently no images.")) except glance_exception.ClientConnectionError, e: LOG.exception("Error connecting to glance") messages.error(request, _("Error connecting to glance: %s") % str(e)) except glance_exception.Error, e: LOG.exception("Error retrieving image list") messages.error(request, _("Error retrieving image list: %s") % str(e)) except api_exceptions.ApiException, e: msg = _("Unable to retreive image info from glance: %s") % str(e) LOG.exception(msg) messages.error(request, msg) images = [im for im in all_images if im['container_format'] not in ['aki', 'ari']]
def test_metadata_upload_post(self): IMAGE_ID = u'1' METADATA_DATA = """ <image type="openstack-glance"> <name>visibleImage</name> <location>swift://localhost/AUTH_test/Cont</location> <format> <disk /> <container /> </format> <size>0</size> <info> <min_disk>0</min_disk> <min_ram>1G</min_ram> <properties /> </info> </image> """ METADATA_FILE = tempfile.TemporaryFile() METADATA_FILE.write(METADATA_DATA) METADATA_FILE.flush() METADATA_FILE.seek(0) image_dict = { 'name': 'visibleImage', 'container_format': 'novaImage', 'location': 'swift://localhost/', 'container_format': '', 'disk_format': '', 'image.size': '', 'image.min_disk': '', 'image.min_ram': '' } form_data = { 'method': 'UploadMetadata', 'image_meta_file': METADATA_FILE } image = api.Image(image_dict) self.visibleImage = api.Image(image_dict) #self.mox.StubOutWithMock(api, 'image_get_meta') #api.image_get_meta(IsA(http.HttpRequest), IMAGE_ID).AndReturn(image) self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT) self.mox.StubOutWithMock(api, 'image_list_detailed') api.image_list_detailed(IsA(http.HttpRequest)).AndReturn(self.images) self.mox.StubOutWithMock(api, 'image_create') api.image_create(IsA(http.HttpRequest), image, None) self.mox.ReplayAll() res = self.client.post( reverse('dash_images_metadata', args=[self.TEST_TENANT]), form_data) self.assertTemplateUsed( res, 'django_openstack/dash/images_metadata/index.html') #self.assertIn('images', res.context) #images = res.context['images'] #self.assertEqual(len(images), 1) #self.assertEqual(images[0].name, 'visibleImage') self.mox.VerifyAll()