in servicecatalog_puppet/commands/graph.py [0:0]
def graph(f):
current_account_id = puppet_account_id = config.get_puppet_account_id()
tasks_to_run = generate_tasks(f, puppet_account_id, current_account_id)
lines = []
nodes = []
for task in tasks_to_run:
nodes += graph_nodes(task)
what = task.requires()
if isinstance(what, puppet_tasks.PuppetTask):
lines.append(f'"{task.node_id}" -> "{what.node_id}"')
elif isinstance(what, list):
for item in what:
lines += graph_lines(task, item)
elif isinstance(what, dict):
for item in what.values():
lines += graph_lines(task, item)
else:
raise Exception(f"unknown {type(what)}")
# nodes.append(task.graph_node())
# lines += task.get_graph_lines()
click.echo("digraph G {\n")
click.echo("node [shape=record fontname=Arial];")
for node in nodes:
click.echo(f"{node};")
for line in lines:
click.echo(f'{line} [label="depends on"];')
click.echo("}")