def _make_no_db_instance( self, doc ): if not os.path.exists( doc[ KeyUploadJob.orig_filename.value ] ): raise Exception("El fichero a subir ya no existe") account_manager = AccountDBManager() list_of_accounts = [] for id in doc[ KeyUploadJob.accounts_id.value ]: list_of_accounts.append( account_manager.get_account_with_id( id ) ) uploader = UploaderFactory().make( doc[ KeyUploadJob.host_name.value ] + "Uploader", list_of_accounts, doc[ KeyUploadJob.orig_filename.value ], doc[ KeyUploadJob.dest_filename.value ] ) upload_job = UploadJob( uploader, priority = doc[ KeyUploadJob.priority.value ] ) upload_job._state = JobStateEnum( doc[ KeyUploadJob.current_state.value ] ) return upload_job
def upload( self, host_name, file_path_to_upload, file_path_remote, accounts_id_list = [], priority = 5 ): self.logger.info( "Adjuntada la subida del fichero '%s' al host '%s'", file_path_to_upload, host_name ) account_manager = AccountDBManager() account_list = [] if accounts_id_list == []: #TODO get all the accounts for account in account_manager.get_account_list_of_host( host_name ): account_list.append( account ) else: for id in accounts_id_list: account_list.append( account_manager.get_account_with_hostname_user( id ) ) uploader = UploaderFactory().make( host_name + "Uploader", account_list, file_path_to_upload, file_path_remote ) job = JobFactory().make("UploadJob", uploader, priority = priority ) db_job = UploadJobDBManager().add( job ) resultado = self._job_manager.add( db_job ) if resultado: self.logger.info( "Adjuntada con exito la subida '%s' al host '%s'" % ( file_path_to_upload, host_name ) ) self._uploads_list.append( db_job ) else: self.logger.error( "Error al adjuntar la subida '%s' al host '%s'" % ( file_path_to_upload, host_name ) ) return resultado
def delAccount( self, host_name, user ): account_manager = AccountDBManager() db_account = account_manager.get_account_with_hostname_user( "{}:{}".format( host_name, user ) ) if db_account == None: return False db_account.delete() return True
def listAccounts( self ): account_manager = AccountDBManager() for x in account_manager.get_account_list(): d = {} d[ AccountEnum.host ] = x.account_host d[ AccountEnum.user ] = x.user yield d
def addAccount( self, host_name, user, password ): account_manager = AccountDBManager() account = AccountBase( host_name ) account.user = user account.password = password db_account = account_manager.add( account ) return db_account != None