def handle(self, request, data):
     image_id = data['image_id']
     try:
         api.image_delete(request, image_id)
     except glance_exception.ClientConnectionError, e:
         LOG.error("Error connecting to glance", exc_info=True)
         messages.error(request,
                        "Error connecting to glance: %s" % e.message)
Exemple #2
0
 def handle(self, request, data):
     image_id = data['image_id']
     try:
         api.image_delete(request, image_id)
     except glance_exception.ClientConnectionError, e:
         LOG.error("Error connecting to glance", exc_info=True)
         messages.error(request,
                        "Error connecting to glance: %s" % e.message)
Exemple #3
0
 def handle(self, request, data):
     image_id = data['image_id']
     tenant_id = request.user.tenant_id
     try:
         image = api.image_get(request, image_id)
         if image.owner == request.user.username:
             api.image_delete(request, image_id)
         else:
             messages.info(request, _("Unable to delete image, you are not \
                                      its owner."))
             return redirect('dash_images_update', tenant_id, image_id)
     except glance_exception.ClientConnectionError, e:
         LOG.exception("Error connecting to glance")
         messages.error(request, _("Error connecting to glance: %s")
                                 % e.message)
Exemple #4
0
 def handle(self, request, data):
     image_id = data['image_id']
     tenant_id = request.user.tenant_id
     try:
         image = api.image_get(request, image_id)
         if image.owner == request.user.username:
             api.image_delete(request, image_id)
         else:
             messages.info(
                 request, "Unable to delete image, you are not \
                                    its owner.")
             return redirect('dash_images_update', tenant_id, image_id)
     except glance_exception.ClientConnectionError, e:
         LOG.exception("Error connecting to glance")
         messages.error(request,
                        "Error connecting to glance: %s" % e.message)
    def test_image_delete(self):
        IMAGE_ID = "1"

        glance_api = self.stub_glance_api()
        glance_api.delete_image(IMAGE_ID).AndReturn(TEST_RETURN)

        self.mox.ReplayAll()

        ret_val = api.image_delete(self.request, IMAGE_ID)

        self.assertEqual(ret_val, TEST_RETURN)

        self.mox.VerifyAll()
 def handle(self, request, data):
     image_id = data['image_id']
     try:
         api.image_delete(request, image_id)
     except GlanceClientConnectionError, e:
         messages.error(request, "Error connecting to glance: %s" % e.message)
Exemple #7
0
        for key, value in meta.iteritems():
            if not value:
                continue
            meta_send[key] = value
        LOG.info('sending meta %s' % meta_send)
        try:
            upload_image = api.image_create(request, image, None)
            try:
                update_image = api.image_update(request, upload_image.id,
                                                meta_send)
            except glance_exception.Invalid as e:
                messages.error(request,
                               'Image Metadata has invalid data %s' % str(e))
                update_image = api.image_update(request, upload_image.id,
                                                {'location': ''})
                api.image_delete(request, upload_image.id)
                return shortcuts.redirect(request.build_absolute_uri())
            messages.success(request,
                             "Image Metadata was successfully registerd")
        except glance_exception.BadStoreUri as e:
            messages.error(request, 'Metadata has bad location %s' % str(e))

        return shortcuts.redirect(request.build_absolute_uri())


# utility
def _parse_location(url):
    image_loc = urlparse.urlparse(url)
    location = image_loc.netloc.split('@', 1)[-1]
    if location.startswith('['):
        location = location[1:].split(']')[0]
Exemple #8
0
        meta['properties'] = prop

        meta_send = {}
        for key,value in meta.iteritems():
            if not value:
               continue
            meta_send[key] = value
        LOG.info('sending meta %s' % meta_send) 
        try:
            upload_image = api.image_create(request, image, None)
            try:
                update_image = api.image_update(request, upload_image.id , meta_send)
            except glance_exception.Invalid as e:
                messages.error(request, 'Image Metadata has invalid data %s' % str(e))
                update_image = api.image_update(request, upload_image.id, { 'location' : '' })
                api.image_delete(request, upload_image.id)
                return shortcuts.redirect(request.build_absolute_uri())
            messages.success(request, "Image Metadata was successfully registerd")
        except glance_exception.BadStoreUri as e:
            messages.error(request, 'Metadata has bad location %s' % str(e))

        return shortcuts.redirect(request.build_absolute_uri())

# utility
def _parse_location(url):
    image_loc = urlparse.urlparse(url)
    location = image_loc.netloc.split('@', 1)[-1]
    if location.startswith('['):
       location = location[1:].split(']')[0]
    return image_loc.scheme, location, image_loc.path