in dialogflow-cx/vpc-sc-demo/backend/asset_utilities.py [0:0]
def tf_init(context, module, workdir, env, prefix):
"""Initialize terraform."""
user_access_token = env.pop("GOOGLE_OAUTH_ACCESS_TOKEN")
debug = "TF_LOG" in env
credentials = get_credentials()
request = google.auth.transport.requests.Request()
credentials.refresh(request)
env["GOOGLE_OAUTH_ACCESS_TOKEN"] = credentials.token
promise = context.run(
(
f"cp {module} {workdir} && "
f"terraform -chdir={workdir} init "
"-upgrade -reconfigure "
f'-backend-config="access_token={env["GOOGLE_OAUTH_ACCESS_TOKEN"]}" '
f'-backend-config="bucket={os.environ["TF_PLAN_STORAGE_BUCKET"]}" '
f'-backend-config="prefix={prefix}"'
),
warn=True,
hide=True,
asynchronous=True,
)
result = promise.join()
env["GOOGLE_OAUTH_ACCESS_TOKEN"] = user_access_token
if debug:
logging.debug(result.exited)
logging.debug(result.stdout)
logging.debug(result.stderr)
if result.exited:
return Response(
status=500,
response=json.dumps(
{
"status": "ERROR",
"stdout": result.stdout,
"stderr": result.stderr,
}
),
)