Пример #1
0
class UploadMetadata(forms.SelfHandlingForm):
    image_meta_file = forms.FileField(label="Image Metadata File",
                                      required=True)

    def handle(self, request, data):

        if self.files['image_meta_file'].size > 1024 * 1024 * 256:
            messages.error(request,
                           'Metadata content is too big (more than 256MB)')

        data = self.files['image_meta_file'].read()

        try:
            data.encode('ascii')
        except UnicodeEncodeError, e:
            messages.error(
                request,
                'Metadata content contains non ASCII character : %s' % str(e))
            return

        try:
            root = etree.XML(data)
        except etree.XMLSyntaxError, e:
            messages.error(request, 'Metadata content is invalid %s' % str(e))
            return
Пример #2
0
class UploadObject(forms.SelfHandlingForm):
    name = forms.CharField(max_length="255", label="Object Name")
    object_file = forms.FileField(label="File")
    container_name = forms.CharField(widget=forms.HiddenInput())

    def handle(self, request, data):
        try:
            file = self.files['object_file']
            cont = data['container_name']
            cont = cont.encode('utf-8')
            obj = data['name']
            obj = obj.encode('utf-8')
            obj = obj.replace('/', '%2F')
            api.swift_upload_object_with_manifest(
                request, cont, obj, file,
                request.session.get('storage_url', None))
            messages.success(request, "Object was successfully uploaded.")
        except Exception as e:
            messages.error(request, "Upload Object was failed (%s)" % str(e))
        finally:
            try:
                if getattr(file, 'temporary_file_path', None):
                    name = file.temporary_file_path()
                    file.close()
                    os.remove(name)
            except Exception, e:
                LOG.exception('file delete failed %s' % str(e))

        return None
Пример #3
0
class UploadMetadata(forms.SelfHandlingForm):
    image_meta_file = forms.FileField(label="Image Metadata File", required=True)

    def handle(self, request, data):
        data = self.files['image_meta_file'].read()

        try:
            root = etree.XML(data)
        except etree.XMLSyntaxError, e:
            messages.error(request, 'Metadata content is invalid')
            return

        image = {}

        image['name'] = root.findtext("name")
        image['location'] = root.findtext("location")
        image['is_public'] = True
        image['owner'] = request.user.username
        disk_format = root.findtext("format/disk")
        container_format = root.findtext("format/container")
        min_disk = root.findtext("info/min_disk")
        min_ram = root.findtext("info/min_ram")

        try:
            api.image_create(request, image, None)
            messages.success(request, "Image Metadata was successfully registerd")
        except glance_exception.BadStoreUri as e:
            messages.error(request, 'hogehoge %s' % str(e))
        
        return shortcuts.redirect(request.build_absolute_uri())
Пример #4
0
class UploadObject(forms.SelfHandlingForm):
    name = forms.CharField(max_length="255", label=_("Object Name"))
    object_file = forms.FileField(label=_("File"))
    container_name = forms.CharField(widget=forms.HiddenInput())

    def handle(self, request, data):
        api.swift_upload_object(request, data['container_name'], data['name'],
                                self.files['object_file'].read())

        messages.success(request, _("Object was successfully uploaded."))
        return shortcuts.redirect(request.build_absolute_uri())
Пример #5
0
class UploadObject(forms.SelfHandlingForm):
    name = forms.CharField(max_length="255", label="Object Name")
    object_file = forms.FileField(label="File")
    container_name = forms.CharField(widget=forms.HiddenInput())

    def handle(self, request, data):
        try:
            file = self.files['object_file']
            cont = data['container_name']
            cont = cont.encode('utf-8')
            obj = data['name']
            obj = obj.encode('utf-8')
            api.swift_upload_object_with_manifest(request, cont, obj, file)
            messages.success(request, "Object was successfully uploaded.")
        except Exception as e:
            messages.error(request, "Upload Object was failed (%s)" % str(e))
        return shortcuts.redirect(request.build_absolute_uri())