def handle(self, deviceJobId): cameraFolder = os.listdir(configCamera['CAMERA_FROM_FOLDER']) # make sure it's not empty if cameraFolder: hashname = self.compressFiles() checksum = self.checksum(configCamera['CAMERA_TEMP_FOLDER'] + hashname + ".7z") self.uploadFiles(hashname, checksum) self.cleanFolders(cameraFolder, hashname) Fetch.patch(config['API_URL'] + "/api/device/" + str(deviceJobId) + "/jobs/update?status=done")
def start_backup(self, info, deviceJobId): self.clean_up() # Only execute if there has been changes in one fo the folders if info[0] is not 0: Fetch.patch(config['API_URL'] + "/api/device/" + str(deviceJobId) + "/jobs/update?status=inprogress") self.compress_files(info[0]) if info[2] is 'usb': self.copy_to_usb() if info[2] is 'ftp': self.upload_files() self.clean_up() # Save updated folder sizes to pickle file for next run folders_with_stat = self.get_folder_stats() self.pickle_dump(info[1], folders_with_stat)
def __init__(self, deviceJobId): # Small arguement resets active pickle. (In case uploads were aborted somehow) if len(sys.argv) > 1 and sys.argv[1] == 'reset': print('Reset pickle...') self.pickle_dump(configBackup["PICKLE_ACTIVE_FILEPATH"], 0) active_script = self.pickle_load( configBackup["PICKLE_ACTIVE_FILEPATH"]) if active_script is 0: # Backup is now active. Prevent it from running again self.pickle_dump(configBackup["PICKLE_ACTIVE_FILEPATH"], 1) #FTP backup if self.check_conditions('ftp'): backup_info = self.check_filesizes( configBackup["PICKLE_FTP_FILEPATH"], 'ftp') self.start_backup(backup_info, deviceJobId) #USB backup if self.check_conditions('usb'): backup_info = self.check_filesizes( configBackup["PICKLE_USB_FILEPATH"], 'usb') self.start_backup(backup_info, deviceJobId) if self.check_conditions('ftp') or self.check_conditions('usb'): Fetch.patch(config['API_URL'] + "/api/device/" + str(deviceJobId) + "/jobs/update?status=done") files = {} data = {'value': time.strftime('%Y-%m-%d %H:%M:%S')} Fetch.post( config['API_URL'] + "/api/device/" + str(config['CLIENT_ID']) + "/settings/backup_last_synced/update", files, data) self.pickle_dump(configBackup["PICKLE_ACTIVE_FILEPATH"], 0) print('All done!')