in dialogflow-cx/vpc-sc-demo/backend/asset_utilities.py [0:0]
def tf_state_list(context, module, workdir, env):
"""Get list of all states."""
debug = "TF_LOG" in env
promise = context.run(
f'\
cp {module} {workdir} &&\
terraform -chdir="{workdir}" state list',
warn=True,
hide=True,
asynchronous=True,
env=env,
)
result = promise.join()
if debug:
logging.debug(result.exited)
logging.debug(result.stdout)
logging.debug(result.stderr)
if result.exited:
return {
"response": Response(
status=500,
response=json.dumps(
{
"status": "ERROR",
"stdout": result.stdout,
"stderr": result.stderr,
}
),
)
}
status_dict = {"resources": result.stdout.split()}
for group_name, group_resources in RESOURCE_GROUP.items():
if group_resources.issubset(set(status_dict["resources"])):
status_dict["resources"].append(group_name)
logging.debug(status_dict["resources"])
return status_dict