projetAnsible/myenv/lib/python3.12/site-packages/pulumi/policy/__main__.py
2024-12-09 06:16:28 +01:00

74 lines
2.3 KiB
Python

# Copyright 2016-2020, Pulumi Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import argparse
import os
import sys
import traceback
import runpy
import pulumi
import pulumi.runtime
def main():
parser = argparse.ArgumentParser()
parser.add_argument("engineAddress")
parser.add_argument("program")
parser.add_argument("--tracing", required=False, nargs=1, metavar="TRACING_FILE")
parser.add_argument("--logtostderr", required=False, action="store_true")
parser.add_argument("--logflow", required=False, action="store_true")
args = parser.parse_args()
program = args.program
# If any config variables are present, parse and set them, so subsequent accesses are fast.
config_env = pulumi.runtime.get_config_env()
for k, v in config_env.items():
pulumi.runtime.set_config(k, v)
# Configure the runtime so that the user program hooks up to Pulumi as appropriate.
if (
"PULUMI_PROJECT" in os.environ
and "PULUMI_STACK" in os.environ
and "PULUMI_DRY_RUN" in os.environ
):
pulumi.runtime.configure(
pulumi.runtime.Settings(
project=os.environ["PULUMI_PROJECT"],
stack=os.environ["PULUMI_STACK"],
dry_run=os.environ["PULUMI_DRY_RUN"] == "true",
# PULUMI_ORGANIZATION might not be set for diy backends
organization=os.environ.get("PULUMI_ORGANIZATION", "organization"),
)
)
successful = False
try:
runpy.run_path(program, run_name="__main__")
successful = True
except Exception:
pulumi.log.error(
"Program failed with an unhandled exception:\n" + traceback.format_exc()
)
finally:
sys.stdout.flush()
sys.stderr.flush()
exit_code = 0 if successful else 1
sys.exit(exit_code)
main()