mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 16:36:21 +02:00
Feature/interface descriptions (#348)
This commit is contained in:
parent
76e85d895b
commit
342f555948
2 changed files with 76 additions and 16 deletions
|
|
@ -6,40 +6,82 @@
|
|||
import argparse
|
||||
import os
|
||||
import tabulate
|
||||
from trustgraph.api import Api
|
||||
from trustgraph.api import Api, ConfigKey
|
||||
import json
|
||||
|
||||
default_url = os.getenv("TRUSTGRAPH_URL", 'http://localhost:8088/')
|
||||
|
||||
def get_interface(api, i):
|
||||
|
||||
key = ConfigKey("interface-descriptions", i)
|
||||
|
||||
value = api.config_get([key])[0].value
|
||||
|
||||
return json.loads(value)
|
||||
|
||||
def describe_interfaces(intdefs, flow):
|
||||
|
||||
intfs = flow.get("interfaces", {})
|
||||
|
||||
lst = []
|
||||
|
||||
for k, v in intdefs.items():
|
||||
|
||||
if intdefs[k].get("visible", False):
|
||||
|
||||
label = intdefs[k].get("description", k)
|
||||
kind = intdefs[k].get("kind", None)
|
||||
|
||||
if kind == "request-response":
|
||||
req = intfs[k]["request"]
|
||||
resp = intfs[k]["request"]
|
||||
|
||||
lst.append(f"{k} request: {req}")
|
||||
lst.append(f"{k} response: {resp}")
|
||||
|
||||
if kind == "send":
|
||||
q = intfs[k]
|
||||
|
||||
lst.append(f"{k}: {q}")
|
||||
|
||||
return "\n".join(lst)
|
||||
|
||||
def show_flows(url):
|
||||
|
||||
api = Api(url)
|
||||
|
||||
interface_names = api.config_list("interface-descriptions")
|
||||
|
||||
interface_defs = {
|
||||
i: get_interface(api, i)
|
||||
for i in interface_names
|
||||
}
|
||||
|
||||
flow_ids = api.flow_list()
|
||||
|
||||
if len(flow_ids) == 0:
|
||||
print("No flows.")
|
||||
return
|
||||
|
||||
print(flow_ids)
|
||||
|
||||
flows = []
|
||||
|
||||
for id in flow_ids:
|
||||
flow = api.flow_get(id)
|
||||
flows.append((
|
||||
id,
|
||||
flow.get("description", ""),
|
||||
))
|
||||
|
||||
print(tabulate.tabulate(
|
||||
flows,
|
||||
tablefmt="pretty",
|
||||
maxcolwidths=[None, 40],
|
||||
stralign="left",
|
||||
headers = ["id", "description"],
|
||||
))
|
||||
|
||||
flow = api.flow_get(id)
|
||||
|
||||
table = []
|
||||
table.append(("id", id))
|
||||
table.append(("class", flow.get("class-name", "")))
|
||||
table.append(("desc", flow.get("description", "")))
|
||||
table.append(("queue", describe_interfaces(interface_defs, flow)))
|
||||
|
||||
print(tabulate.tabulate(
|
||||
table,
|
||||
tablefmt="pretty",
|
||||
stralign="left",
|
||||
))
|
||||
print()
|
||||
|
||||
def main():
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue