def run(self): try: self.preload() source_abs_path = os.path.abspath(self.source_path) target_abs_path = os.path.abspath(self.target_path) self.logger.debug( "FM WebDav NewFile worker run(), source_abs_path = %s, target_abs_path = %s" % (source_abs_path, target_abs_path)) webdav_connection = WebDavConnection.create( self.login, self.session.get('server_id'), self.logger) try: if webdav_connection.isdir(source_abs_path): source_abs_path += '/' target_abs_path += '/' source_info = webdav_connection.generate_file_info( source_abs_path) webdav_connection.move_file(source_abs_path, target_abs_path) target_info = webdav_connection.generate_file_info( target_abs_path) webdav_result = {"source": source_info, "target": target_info} result = { "data": webdav_result, "error": False, "message": None, "traceback": None } self.on_success(result) except Exception as e: result = WebDavConnection.get_error( e, "Unable to rename source element.") self.on_error(result) except Exception as e: result = { "error": True, "message": str(e), "traceback": traceback.format_exc() } self.on_error(result)
def run(self): try: self.preload() source_abs_path = os.path.abspath(self.source_path) target_abs_path = os.path.abspath(self.target_path) self.logger.debug("FM WebDav NewFile worker run(), source_abs_path = %s, target_abs_path = %s" % (source_abs_path, target_abs_path)) webdav_connection = WebDavConnection.create(self.login, self.session.get('server_id'), self.logger) try: if webdav_connection.isdir(source_abs_path): source_abs_path += '/' target_abs_path += '/' source_info = webdav_connection.generate_file_info(source_abs_path) webdav_connection.move_file(source_abs_path, target_abs_path) target_info = webdav_connection.generate_file_info(target_abs_path) webdav_result = { "source": source_info, "target": target_info } result = { "data": webdav_result, "error": False, "message": None, "traceback": None } self.on_success(result) except Exception as e: result = WebDavConnection.get_error(e, "Unable to rename source element.") self.on_error(result) except Exception as e: result = { "error": True, "message": str(e), "traceback": traceback.format_exc() } self.on_error(result)
def run(self): try: self.preload() abs_path = os.path.abspath(self.path) self.logger.debug("FM WebDav MakeDir worker run(), abs_path = %s" % abs_path) webdav_connection = WebDavConnection.create( self.login, self.session.get('server_id'), self.logger) try: webdav_connection.mkdir(abs_path) info = webdav_connection.info(abs_path) fileinfo = { "name": abs_path, "mode": webdav_connection.getmode(info), "mtime": str(info['modified']) } result = { "data": fileinfo, "error": False, "message": None, "traceback": None } self.on_success(result) except Exception as e: result = WebDavConnection.get_error( e, "File path already exists") self.on_error(result) except Exception as e: result = { "error": True, "message": str(e), "traceback": traceback.format_exc() } self.on_error(result)
def run(self): try: self.preload() abs_path = os.path.abspath(self.path) self.logger.debug("FM WebDav MakeDir worker run(), abs_path = %s" % abs_path) webdav_connection = WebDavConnection.create(self.login, self.session.get('server_id'), self.logger) try: webdav_connection.mkdir(abs_path) info = webdav_connection.info(abs_path) fileinfo = { "name": abs_path, "mode": webdav_connection.getmode(info), "mtime": str(info['modified']) } result = { "data": fileinfo, "error": False, "message": None, "traceback": None } self.on_success(result) except Exception as e: result = WebDavConnection.get_error(e, "File path already exists") self.on_error(result) except Exception as e: result = { "error": True, "message": str(e), "traceback": traceback.format_exc() } self.on_error(result)
def run(self): try: self.preload() abs_path = self.path self.logger.debug( "FM WebDav WriteFile worker run(), abs_path = %s" % abs_path) self.logger.debug("content %s" % pprint.pformat(self.content)) self.logger.debug("encoding %s" % pprint.pformat(self.encoding)) try: decoded = self.content.decode('utf-8') self.logger.debug("DECODED %s" % pprint.pformat(decoded)) except Exception as e: self.logger.error("Error %s , %s" % (str(e), traceback.format_exc())) raise e webdav = WebDavConnection.create(self.login, self.session.get('server_id'), self.logger) try: hash_str = self.random_hash() temp_dir = os.path.abspath(TMP_DIR + '/' + self.login + '/' + hash_str + '/') os.makedirs(temp_dir) filedir = webdav.parent(self.path) filename = self.path if filedir != '/': filename = filename.replace(filedir, "/", 1) temp_filename = temp_dir + filename except Exception as e: result = WebDavConnection.get_error( e, "Unable to make file backup before saving \"%s\"." % os.path.basename(abs_path)) self.on_error(result) return try: content = decoded.encode(self.encoding) self.create_local_file(temp_filename, content) folder = webdav.parent(self.path) webdav.upload(temp_filename, folder, True) file_info = webdav.generate_file_info(self.path) shutil.rmtree(temp_dir, True) file_result = {"encoding": self.encoding, "item": file_info} result = { "data": file_result, "error": False, "message": None, "traceback": None } self.on_success(result) except Exception as e: try: webdav.upload( os.path.join(temp_dir, os.path.basename(abs_path)), abs_path, True) except Exception as e: result = WebDavConnection.get_error( e, "Unable to upload tmp file during write error \"%s\"." % os.path.basename(abs_path)) self.on_error(result) return result = WebDavConnection.get_error( e, "Unable to write file \"%s\"." % os.path.basename(abs_path)) self.on_error(result) return except Exception as e: result = { "error": True, "message": str(e), "traceback": traceback.format_exc() } self.on_error(result)
def run(self): try: self.preload() abs_path = self.path self.logger.debug("FM WebDav WriteFile worker run(), abs_path = %s" % abs_path) self.logger.debug("content %s" % pprint.pformat(self.content)) self.logger.debug("encoding %s" % pprint.pformat(self.encoding)) try: decoded = self.content.decode('utf-8') self.logger.debug("DECODED %s" % pprint.pformat(decoded)) except Exception as e: self.logger.error("Error %s , %s" % (str(e), traceback.format_exc())) raise e webdav = WebDavConnection.create(self.login, self.session.get('server_id'), self.logger) try: hash_str = self.random_hash() temp_dir = os.path.abspath(TMP_DIR + '/' + self.login + '/' + hash_str + '/') os.makedirs(temp_dir) filedir = webdav.parent(self.path) filename = self.path if filedir != '/': filename = filename.replace(filedir, "/", 1) temp_filename = temp_dir + filename except Exception as e: result = WebDavConnection.get_error(e, "Unable to make file backup before saving \"%s\"." % os.path.basename( abs_path)) self.on_error(result) return try: content = decoded.encode(self.encoding) self.create_local_file(temp_filename, content) folder = webdav.parent(self.path) webdav.upload(temp_filename, folder, True) file_info = webdav.generate_file_info(self.path) shutil.rmtree(temp_dir, True) file_result = { "encoding": self.encoding, "item": file_info } result = { "data": file_result, "error": False, "message": None, "traceback": None } self.on_success(result) except Exception as e: try: webdav.upload(os.path.join(temp_dir, os.path.basename(abs_path)), abs_path, True) except Exception as e: result = WebDavConnection.get_error(e, "Unable to upload tmp file during write error \"%s\"." % os.path.basename(abs_path)) self.on_error(result) return result = WebDavConnection.get_error(e, "Unable to write file \"%s\"." % os.path.basename(abs_path)) self.on_error(result) return except Exception as e: result = { "error": True, "message": str(e), "traceback": traceback.format_exc() } self.on_error(result)