Source code for grove.entrypoints.local_process

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

"""Grove local process entrypoint."""

import os
import socket
from typing import Dict

from grove.entrypoints import base


[docs] def runtime_information() -> Dict[str, str]: """Attempts to determine the runtime, returning the relevant runtime data. :return: A dictionary of runtime data. """ # If Nomad, grab the relevant information. if os.environ.get("NOMAD_ALLOC_ID", None): return { "runtime_id": os.environ.get("NOMAD_ALLOC_ID", "NOT_FOUND"), "runtime_region": os.environ.get("NOMAD_REGION", "NOT_FOUND"), "runtime_job_name": os.environ.get("NOMAD_JOB_NAME", "NOT_FOUND"), } # If nothing else matched, assume a local process. return { "runtime_id": str(os.getpid()), "runtime_host": socket.gethostname(), }
[docs] def entrypoint(): """Grove local process entrypoint.""" base.entrypoint(context={"runtime": __file__, **runtime_information()})
# Support local development if called as a script. if __name__ == "__main__": entrypoint()