コード例 #1
0
ファイル: camera.py プロジェクト: nickklein/life-automation
    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")
コード例 #2
0
    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)
コード例 #3
0
    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!')