Example #1
0
    def handle(self, request, data):

        values = {}
        values['orig_cont'] = data['orig_container_name']
        values['orig_obj']  = data['orig_object_name']
        values['new_cont'] = data['new_container_name']
        values['new_obj'] = data['new_object_name']

        escaped = {}
        for key, value in values.iteritems():
            escaped[key] = value.encode('utf-8').replace('/', '%2F')
            #escaped[key] = value.encode('utf-8')


        try:
            api.swift_copy_object(request, escaped['orig_cont'],
                                  escaped['orig_obj'] , escaped['new_cont'],
                                  escaped['new_obj'],
                                  request.session.get('storage_url', None))
 
            messages.success(request,
                             'Object was successfully copied to %s/%s' %
                             (values['new_cont'], values['new_obj']))
        except NoSuchContainer, e:
            messages.error(request, 'Object copy is failed. %s' % str(e))
    def handle(self, request, data):
        orig_container_name = data["orig_container_name"]
        orig_object_name = data["orig_object_name"]
        new_container_name = data["new_container_name"]
        new_object_name = data["new_object_name"]

        api.swift_copy_object(request, orig_container_name, orig_object_name, new_container_name, new_object_name)

        messages.success(request, "Object was successfully copied to %s\%s" % (new_container_name, new_object_name))

        return shortcuts.redirect(request.build_absolute_uri())
Example #3
0
    def handle(self, request, data):
        orig_container_name = data['orig_container_name']
        orig_object_name = data['orig_object_name']
        new_container_name = data['new_container_name']
        new_object_name = data['new_object_name']

        api.swift_copy_object(request, orig_container_name, orig_object_name,
                              new_container_name, new_object_name)

        messages.success(
            request, 'Object was successfully copied to %s\%s' %
            (new_container_name, new_object_name))

        return shortcuts.redirect(request.build_absolute_uri())
Example #4
0
    def handle(self, request, data):
        orig_container_name = data["orig_container_name"]
        orig_object_name = data["orig_object_name"]
        new_container_name = data["new_container_name"]
        new_object_name = data["new_object_name"]

        api.swift_copy_object(request, orig_container_name, orig_object_name, new_container_name, new_object_name)

        messages.success(
            request,
            _("Object was successfully copied to %(container)s\%(obj)s")
            % {"container": new_container_name, "obj": new_object_name},
        )

        return shortcuts.redirect(request.build_absolute_uri())
    def test_swift_copy_object(self):
        CONTAINER_NAME = 'containerName'
        OBJECT_NAME = 'objectName'

        swift_api = self.stub_swift_api()
        container = self.mox.CreateMock(cloudfiles.container.Container)
        self.mox.StubOutWithMock(api, 'swift_object_exists')

        swift_object = self.mox.CreateMock(cloudfiles.Object)

        swift_api.get_container(CONTAINER_NAME).AndReturn(container)
        api.swift_object_exists(self.request,
                                CONTAINER_NAME,
                                OBJECT_NAME).AndReturn(False)

        container.get_object(OBJECT_NAME).AndReturn(swift_object)
        swift_object.copy_to(CONTAINER_NAME, OBJECT_NAME)

        self.mox.ReplayAll()

        ret_val = api.swift_copy_object(self.request, CONTAINER_NAME,
                                        OBJECT_NAME, CONTAINER_NAME,
                                        OBJECT_NAME)

        self.assertIsNone(ret_val)
        self.mox.VerifyAll()
Example #6
0
    def handle(self, request, data):
        orig_container_name = data['orig_container_name']
        orig_object_name = data['orig_object_name']
        new_container_name = data['new_container_name']
        new_object_name = data['new_object_name']

        api.swift_copy_object(request, orig_container_name, orig_object_name,
                              new_container_name, new_object_name)

        messages.success(
            request,
            _('Object was successfully copied to %(container)s\%(obj)s') % {
                "container": new_container_name,
                "obj": new_object_name
            })

        return shortcuts.redirect(request.build_absolute_uri())
Example #7
0
    def test_copy(self):
        NEW_CONTAINER_NAME = self.CONTAINER_NAME
        NEW_OBJECT_NAME = 'newObjectName'
        ORIG_CONTAINER_NAME = 'origContainerName'
        ORIG_OBJECT_NAME = 'origObjectName'

        formData = {
            'method': 'CopyObject',
            'new_container_name': NEW_CONTAINER_NAME,
            'new_object_name': NEW_OBJECT_NAME,
            'orig_container_name': ORIG_CONTAINER_NAME,
            'orig_object_name': ORIG_OBJECT_NAME
        }

        container = self.mox.CreateMock(api.Container)
        container.name = self.CONTAINER_NAME

        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(IsA(http.HttpRequest)).AndReturn([container])

        self.mox.StubOutWithMock(api, 'swift_copy_object')
        api.swift_copy_object(IsA(http.HttpRequest), ORIG_CONTAINER_NAME,
                              ORIG_OBJECT_NAME, NEW_CONTAINER_NAME,
                              NEW_OBJECT_NAME)

        self.mox.ReplayAll()

        res = self.client.post(
            reverse(
                'dash_object_copy',
                args=[self.TEST_TENANT, ORIG_CONTAINER_NAME,
                      ORIG_OBJECT_NAME]), formData)

        self.assertRedirectsNoFollow(
            res,
            reverse(
                'dash_object_copy',
                args=[self.TEST_TENANT, ORIG_CONTAINER_NAME,
                      ORIG_OBJECT_NAME]))

        self.mox.VerifyAll()
Example #8
0
    def test_copy(self):
        NEW_CONTAINER_NAME = self.CONTAINER_NAME
        NEW_OBJECT_NAME = 'newObjectName'
        ORIG_CONTAINER_NAME = 'origContainerName'
        ORIG_OBJECT_NAME = 'origObjectName'

        formData = {'method': 'CopyObject',
                    'new_container_name': NEW_CONTAINER_NAME,
                    'new_object_name': NEW_OBJECT_NAME,
                    'orig_container_name': ORIG_CONTAINER_NAME,
                    'orig_object_name': ORIG_OBJECT_NAME}

        container = self.mox.CreateMock(api.Container)
        container.name = self.CONTAINER_NAME

        self.mox.StubOutWithMock(api, 'swift_get_containers')
        api.swift_get_containers(
                IsA(http.HttpRequest)).AndReturn([container])

        self.mox.StubOutWithMock(api, 'swift_copy_object')
        api.swift_copy_object(IsA(http.HttpRequest),
                              ORIG_CONTAINER_NAME,
                              ORIG_OBJECT_NAME,
                              NEW_CONTAINER_NAME,
                              NEW_OBJECT_NAME)

        self.mox.ReplayAll()

        res = self.client.post(reverse('dash_object_copy',
                                       args=[self.TEST_TENANT,
                                             ORIG_CONTAINER_NAME,
                                             ORIG_OBJECT_NAME]),
                              formData)

        self.assertRedirectsNoFollow(res, reverse('dash_object_copy',
                                                  args=[self.TEST_TENANT,
                                                        ORIG_CONTAINER_NAME,
                                                        ORIG_OBJECT_NAME]))

        self.mox.VerifyAll()
Example #9
0
    def handle(self, request, data):

        values = {}
        values['orig_cont'] = data['orig_container_name']
        values['orig_obj'] = data['orig_object_name']
        values['new_cont'] = data['new_container_name']
        values['new_obj'] = data['new_object_name']

        escaped = {}
        for key, value in values.iteritems():
            escaped[key] = value.encode('utf-8').replace('/', '%2F')
            #escaped[key] = value.encode('utf-8')

        try:
            api.swift_copy_object(request, escaped['orig_cont'],
                                  escaped['orig_obj'], escaped['new_cont'],
                                  escaped['new_obj'],
                                  request.session.get('storage_url', None))

            messages.success(
                request, 'Object was successfully copied to %s/%s' %
                (values['new_cont'], values['new_obj']))
        except NoSuchContainer, e:
            messages.error(request, 'Object copy is failed. %s' % str(e))