Skip to content

IngestionOperations

Access via client.ingestions.

crucible.resources.ingestion.IngestionOperations

Operations on ingestion requests (/ingestion_requests endpoints).

Access via: client.ingestion.list(), client.ingestion.get(), etc.

list(dsid=None, file_id=None, limit=DEFAULT_LIMIT)

List ingestion requests, optionally filtered by dataset or file.

Parameters:

Name Type Description Default
dsid Optional[str]

Filter by dataset ID

None
file_id Optional[str]

Filter by file MFID

None
limit int

Maximum number of results

DEFAULT_LIMIT

Returns:

Type Description
List[Dict]

List[Dict]: IngestionRequest records

get(request_id)

Get the status of a single ingestion request.

Parameters:

Name Type Description Default
request_id str

Ingestion request ID

required

Returns:

Name Type Description
Dict Dict

IngestionRequest record (id, status, ...)

wait(request_id, sleep_interval=1)

Poll an ingestion request until it reaches a terminal state.

Parameters:

Name Type Description Default
request_id str

Ingestion request ID

required
sleep_interval int

Seconds between status checks (default 1)

1

Returns:

Name Type Description
Dict Dict

Final IngestionRequest record

update(request_id, status, ingestion_githash=None, ingestion_class=None, timezone='America/Los_Angeles')

Update the status of an ingestion request. Admin only.

Parameters:

Name Type Description Default
request_id str

Ingestion request ID

required
status str

New status ('complete', 'in_progress', 'failed')

required
ingestion_githash Optional[str]

Git hash of the ingestion worker version

None
ingestion_class Optional[str]

Ingestion class used

None
timezone str

Timezone for the completion timestamp

'America/Los_Angeles'

Returns:

Name Type Description
Dict Dict

Updated IngestionRequest record