Beispiel #1
0
    def handle(self, request, data):
        index = "horizon:hpcloud:containers:index"
        orig_container = data['orig_container_name']
        orig_object = data['orig_object_name']
        new_container = data['new_container_name']
        new_object = data['new_object_name']
        path = data['path']
        if path and not path.endswith("/"):
            path = path + "/"
        new_path = "%s%s" % (path, new_object)

        # Now copy the object itself.
        try:
            api.swift.swift_copy_object(request, orig_container, orig_object,
                                        new_container, new_path)
            dest = "%s/%s" % (new_container, path)
            vals = {
                "dest": dest.rstrip("/"),
                "orig": orig_object.split("/")[-1],
                "new": new_object
            }
            messages.success(
                request,
                _('Copied "%(orig)s" to "%(dest)s" as "%(new)s".') % vals)
            return True
        except exceptions.HorizonException as exc:
            messages.error(request, exc)
            raise exceptions.Http302(
                reverse(index, args=[tables.wrap_delimiter(orig_container)]))
        except Exception:
            redirect = reverse(index,
                               args=[tables.wrap_delimiter(orig_container)])
            exceptions.handle(request,
                              _("Unable to copy object."),
                              redirect=redirect)
    def handle(self, request, data):
        index = "horizon:hpcloud:containers:index"
        orig_container = data['orig_container_name']
        orig_object = data['orig_object_name']
        new_container = data['new_container_name']
        new_object = data['new_object_name']
        path = data['path']
        if path and not path.endswith("/"):
            path = path + "/"
        new_path = "%s%s" % (path, new_object)

        # Now copy the object itself.
        try:
            api.swift.swift_copy_object(request,
                                        orig_container,
                                        orig_object,
                                        new_container,
                                        new_path)
            dest = "%s/%s" % (new_container, path)
            vals = {"dest": dest.rstrip("/"),
                    "orig": orig_object.split("/")[-1],
                    "new": new_object}
            messages.success(request,
                             _('Copied "%(orig)s" to "%(dest)s" as "%(new)s".')
                             % vals)
            return True
        except exceptions.HorizonException as exc:
            messages.error(request, exc)
            raise exceptions.Http302(reverse(index,
                args=[tables.wrap_delimiter(orig_container)]))
        except Exception:
            redirect = reverse(index,
                               args=[tables.wrap_delimiter(orig_container)])
            exceptions.handle(request,
                              _("Unable to copy object."),
                              redirect=redirect)
Beispiel #3
0
 def get_success_url(self):
     new_container_name = self.request.POST['new_container_name']
     return reverse(self.success_url,
                    args=(tables.wrap_delimiter(new_container_name),
                          tables.wrap_delimiter(
                              self.request.POST.get('path', ''))))
 def get_success_url(self):
     new_container_name = self.request.POST['new_container_name']
     return reverse(self.success_url,
                    args=(tables.wrap_delimiter(new_container_name),
                          tables.wrap_delimiter(
                              self.request.POST.get('path', ''))))