in servicecatalog_factory/commands/generate.py [0:0]
def generate(p):
factory_version = constants.VERSION
logger.info("Generating")
tasks = []
portfolios_path = os.path.sep.join([p, "portfolios"])
tasks += portfolios_commands.generate(portfolios_path, factory_version)
stacks_path = os.path.sep.join([p, "stacks"])
tasks += generic_commands.generate(stacks_path, "Stacks", "stack", factory_version)
workspaces_path = os.path.sep.join([p, "workspaces"])
tasks += generic_commands.generate(
workspaces_path, "Workspaces", "workspace", factory_version
)
workspaces_path = os.path.sep.join([p, "apps"])
tasks += generic_commands.generate(workspaces_path, "Apps", "app", factory_version)
for type in [
"failure",
"success",
"timeout",
"process_failure",
"processing_time",
"broken_task",
]:
os.makedirs(Path(constants.RESULTS_DIRECTORY) / type)
os.environ["SCT_SHOULD_PIPELINES_INHERIT_TAGS"] = str(
config.get_should_pipelines_inherit_tags()
)
os.environ["SCT_INITIALISER_STACK_TAGS"] = json.dumps(
config.get_initialiser_stack_tags()
)
run_result = luigi.build(
tasks,
local_scheduler=True,
detailed_summary=True,
workers=10,
log_level="INFO",
)
exit_status_codes = {
LuigiStatusCode.SUCCESS: 0,
LuigiStatusCode.SUCCESS_WITH_RETRY: 0,
LuigiStatusCode.FAILED: 1,
LuigiStatusCode.FAILED_AND_SCHEDULING_FAILED: 2,
LuigiStatusCode.SCHEDULING_FAILED: 3,
LuigiStatusCode.NOT_RUN: 4,
LuigiStatusCode.MISSING_EXT: 5,
}
table_data = [
["Result", "Task", "Significant Parameters", "Duration"],
]
table = terminaltables.AsciiTable(table_data)
for filename in glob("results/processing_time/*.json"):
result = json.loads(open(filename, "r").read())
table_data.append(
[
colorclass.Color("{green}Success{/green}"),
result.get("task_type"),
yaml.safe_dump(result.get("params_for_results")),
result.get("duration"),
]
)
click.echo(table.table)
for filename in glob("results/failure/*.json"):
result = json.loads(open(filename, "r").read())
click.echo(
colorclass.Color("{red}" + result.get("task_type") + " failed{/red}")
)
click.echo(f"{yaml.safe_dump({'parameters': result.get('task_params')})}")
click.echo("\n".join(result.get("exception_stack_trace")))
click.echo("")
sys.exit(exit_status_codes.get(run_result.status))