packager module init

__all__ = ['PACKAGE_STATUS', 'update_status', 'handle_message'] module-attribute

dict[str, str]: Package status UUIDs for FAILED, INITIATED, and SUCCESS

this = os.path.basename(__file__) module-attribute

str: Path to the module

handle_message(payload_resp, dst)

Converts JSON-Formatted message string to dictionary and calls package()

Parameters:

Name Type Description Default
que multiprocessing.Queue

queue used to return pkg_writer result to the handler

required
payload_resp namedtuple

Packager request payload as namedtuple

required
dst str

Temporary directory name

required
Source code in cumulus_packager/packager/handler.py
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
def handle_message(payload_resp: namedtuple, dst: str):
    """Converts JSON-Formatted message string to dictionary and calls package()

    Parameters
    ----------
    que : multiprocessing.Queue
        queue used to return pkg_writer result to the handler
    payload_resp : namedtuple
        Packager request payload as namedtuple
    dst : str
        Temporary directory name

    """
    result = pkg_writer(
        plugin=payload_resp.format,
        id=payload_resp.download_id,
        src=json.dumps(payload_resp.contents),
        extent=json.dumps(payload_resp.extent),
        dst=dst,
        cellsize=2000,
        dst_srs="EPSG:5070",
    )

    return result

update_status(id, status_id, progress, file=None)

Update packager status to Cumulus API

TODO: Check Documentation for accuracy

Parameters:

Name Type Description Default
id str, optional

Download ID, by default None

required
status_id str, optional

Package Status ID, by default None

required
progress float, optional

progress percentage as a decimal, by default 0

required
file str, optional

S3 key to dss file, by default None

None
Source code in cumulus_packager/packager/handler.py
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
def update_status(id: str, status_id: str, progress: int, file: str = None):
    """Update packager status to Cumulus API

    TODO: Check Documentation for accuracy

    Parameters
    ----------
    id : str, optional
        Download ID, by default None
    status_id : str, optional
        Package Status ID, by default None
    progress : float, optional
        progress percentage as a decimal, by default 0
    file : str, optional
        S3 key to dss file, by default None
    """
    try:
        _json_payload = {
            "id": id,
            "status_id": status_id,
            "progress": int(progress),
            "file": file,
        }
        r = requests.put(
            f"{CUMULUS_API_URL}/downloads/{id}",
            params={"key": APPLICATION_KEY},
            json=_json_payload,
        )

    except Exception as e:
        logger.error(e)

    return