def swift_copy_object(request, orig_container_name, orig_object_name, new_container_name, new_object_name): try: # FIXME(gabriel): The swift currently fails at unicode in the # copy_to method, so to provide a better experience we check for # unicode here and pre-empt with an error message rather than # letting the call fail. str(orig_container_name) str(orig_object_name) str(new_container_name) str(new_object_name) except UnicodeEncodeError: raise exceptions.HorizonException( _("Unicode is not currently " "supported for object copy.")) if swift_object_exists(request, new_container_name, new_object_name): raise exceptions.AlreadyExists(new_object_name, 'object') headers = { "X-Copy-From": FOLDER_DELIMITER.join([orig_container_name, orig_object_name]) } return swift_api(request).put_object(new_container_name, new_object_name, None, headers=headers)
def swift_copy_object(request, orig_container_name, orig_object_name, new_container_name, new_object_name): if swift_object_exists(request, new_container_name, new_object_name): raise exceptions.AlreadyExists(new_object_name, 'object') headers = {"X-Copy-From": FOLDER_DELIMITER.join([orig_container_name, orig_object_name])} return swift_api(request).put_object(new_container_name, new_object_name, None, headers=headers)
def swift_create_pseudo_folder(request, container_name, pseudo_folder_name): # Make sure the folder name doesn't already exist. if swift_object_exists(request, container_name, pseudo_folder_name): name = pseudo_folder_name.strip('/') raise exceptions.AlreadyExists(name, 'pseudo-folder') headers = {} etag = swift_api(request).put_object(container_name, pseudo_folder_name, None, headers=headers) obj_info = {'name': pseudo_folder_name, 'etag': etag} return PseudoFolder(obj_info, container_name)
def swift_copy_object(request, orig_container_name, orig_object_name, new_container_name, new_object_name): if swift_object_exists(request, new_container_name, new_object_name): raise exceptions.AlreadyExists(new_object_name, 'object') headers = {"X-Copy-From": FOLDER_DELIMITER.join([orig_container_name, orig_object_name])} etag = swift_api(request).put_object(new_container_name, new_object_name, None, headers=headers) obj_info = {'name': new_object_name, 'etag': etag} return StorageObject(obj_info, new_container_name)
def swift_upload_object(request, container_name, object_name, object_file=None): if swift_object_exists(request, container_name, object_name): raise exceptions.AlreadyExists(object_name, 'object') headers = {} size = 0 if object_file: headers['X-Object-Meta-Orig-Filename'] = object_file.name size = object_file.size etag = swift_api(request).put_object(container_name, object_name, object_file, content_length=size, headers=headers) obj_info = {'name': object_name, 'bytes': size, 'etag': etag} return StorageObject(obj_info, container_name)
def swift_copy_object(request, orig_container_name, orig_object_name, new_container_name, new_object_name): try: # FIXME(gabriel): Cloudfiles currently fails at unicode in the # copy_to method, so to provide a better experience we check for # unicode here and pre-empt with an error message rather than # letting the call fail. str(orig_container_name) str(orig_object_name) str(new_container_name) str(new_object_name) except UnicodeEncodeError: raise exceptions.HorizonException(_("Unicode is not currently " "supported for object copy.")) container = swift_api(request).get_container(orig_container_name) if swift_object_exists(request, new_container_name, new_object_name): raise exceptions.AlreadyExists(new_object_name, 'object') orig_obj = container.get_object(orig_object_name) return orig_obj.copy_to(new_container_name, new_object_name)
def swift_create_container(request, name, metadata=None): if swift_container_exists(request, name): raise exceptions.AlreadyExists(name, 'container') headers = _metadata_to_header(metadata or {}) swift_api(request).put_container(name, headers=headers) return Container({'name': name})
def get_context_data(self, request): # Raise a known recoverable error. exc = exceptions.AlreadyExists("Recoverable!", horizon_tabs.Tab) exc.silence_logging = True raise exc
def swift_create_container(request, name): if swift_container_exists(request, name): raise exceptions.AlreadyExists(name, 'container') swift_api(request).put_container(name) return Container({'name': name})
def swift_create_container(request, name): if swift_container_exists(request, name): raise exceptions.AlreadyExists(name, 'container') return swift_api(request).create_container(name)
def get_context_data(self, request): # Raise a known recoverable error. raise exceptions.AlreadyExists("Recoverable!", None)