in composer_local_dev/utils.py [0:0]
def get_project_id() -> Optional[str]:
"""Gets the project ID from the Cloud CLI."""
try:
output = subprocess.run(
[gcloud_cmd()] + _CLOUD_CLI_CONFIG_COMMAND.split(),
check=True,
capture_output=True,
text=True,
).stdout
LOG.debug("Cloud CLI output: %s", output)
except (subprocess.CalledProcessError, OSError, IOError) as err:
logging.debug(
"Failed to get project ID from the Cloud CLI.", exc_info=True
)
raise errors.InvalidAuthError(err)
try:
configuration = json.loads(output)
except ValueError as err:
raise errors.ComposerCliError(
f"Failed to decode gcloud CLI configuration: {err}"
) from None
try:
project_id = configuration["configuration"]["properties"]["core"][
"project"
]
LOG.info("Using GCP project %s", project_id)
return project_id
except KeyError:
raise errors.ComposerCliError(
"gcloud configuration is missing project id."
) from None