74 lines
2.3 KiB
Python
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()
|