コード例 #1
0
ファイル: tasks.py プロジェクト: ddsc/ddsc-worker
def new_file_detected(full_path):
    try:
        # Watchman sends the full path to the file. Split it so Shaoqing's code
        # continues to work. TODO: refactor this juggling with dirs and paths.
        pathDir, fileName = os.path.split(full_path)
        pathDir = os.path.join(pathDir, '')  # trailing slash

        src = os.path.join(pathDir, fileName)
        fileDirName, fileExtension = os.path.splitext(src)
        fileExtension = fileExtension.lower()

        usr = get_usr_by_folder(pathDir)

        if usr == 0:
            data_move(src, os.path.join(
                pd['storage_base_path'], pd['rejected_file']))
            logger.error('[x] User-folder does not exist')
            raise Exception('Failed to be authorized!')
        else:
            logger.info('[x] start importing: %r', src)
            logger.info('By User: %r', usr.username)

        if fileExtension == ".filepart":
            fileName = fileName.replace(".filepart", "")
            src = pathDir + fileName
            fileDirName, fileExtension = os.path.splitext(src)
        if fileExtension == ".csv":
            new_fileName = make_file_name_unique(fileName)
            os.rename(pathDir + fileName, pathDir + new_fileName)
            fileName = new_fileName
            src = pathDir + new_fileName
            import_csv(src, usr.id)
        elif fileExtension in [".png", ".jpg", ".jpeg", ".tif", ".tiff"]:
            dst = os.path.join(pd['storage_base_path'], pd['image'])
            import_file(pathDir, fileName, dst, usr.id)
        elif fileExtension in [".avi", ".wmv"]:
            dst = os.path.join(pd['storage_base_path'], pd['video'])
            import_file(pathDir, fileName, dst, usr.id)
        elif fileExtension == ".pdf":
            dst = os.path.join(pd['storage_base_path'], pd['file'])
            import_file(pathDir, fileName, dst, usr.id)
        elif fileExtension == ".geotiff":
            dst = os.path.join(pd['storage_base_path'], pd['geotiff'])
            import_geotiff(pathDir, fileName, dst, usr.id)
        elif fileExtension == ".xml":
            new_fileName = make_file_name_unique(fileName)
            os.rename(pathDir + fileName, pathDir + new_fileName)
            src = pathDir + new_fileName
            fileName = new_fileName
            import_pi_xml(src, usr.id)
        else:
            file_ignored(src, fileExtension)
    except Exception, e:
        logger.error("Unable to process new file %s", src, exc_info=True)
        x = pd['storage_base_path'] + pd['rejected_file']
        y = fileName
        new_file_detected.apply_async((x, y), queue='ddsc.failures')
        raise e
コード例 #2
0
ファイル: tasks.py プロジェクト: ddsc/ddsc-worker
def new_socket_detected(pathDir, fileName):
    try:
        src = os.path.join(pathDir, fileName)
        str_path = pd['storage_base_path'] + pd['rejected_file']
        usr = get_usr_by_ip(fileName)

        if usr is False:
            data_move(src, str_path)
            raise Exception("[x] %r _FAILED to be authorized" % src)

        logger.info('[x] start importing: %r', src)
        logger.info('By User: %r', usr.username)
        import_csv(src, usr.id)
    except Exception, e:
        logger.error("Unable to process socket data %s", src, exc_info=True)
        new_socket_detected.apply_async((str_path, fileName),
                queue='ddsc.failures')
        raise e