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())
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())
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()
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_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()
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()
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))