trustgraph-cli 2.4.2__tar.gz → 2.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/PKG-INFO +1 -1
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/pyproject.toml +0 -1
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_flow_state.py +12 -10
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_processor_state.py +1 -1
- trustgraph_cli-2.4.4/trustgraph/cli_version.py +1 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph_cli.egg-info/PKG-INFO +1 -1
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph_cli.egg-info/SOURCES.txt +0 -1
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph_cli.egg-info/entry_points.txt +0 -1
- trustgraph_cli-2.4.2/trustgraph/cli/init_trustgraph.py +0 -271
- trustgraph_cli-2.4.2/trustgraph/cli_version.py +0 -1
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/README.md +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/setup.cfg +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/__init__.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/add_library_document.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/delete_collection.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/delete_config_item.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/delete_flow_blueprint.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/delete_kg_core.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/delete_mcp_tool.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/delete_tool.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/dump_msgpack.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/dump_queues.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/export_workspace_config.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/get_config_item.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/get_document_content.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/get_flow_blueprint.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/get_kg_core.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/graph_to_turtle.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/import_workspace_config.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/init_pulsar_manager.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_agent.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_document_embeddings.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_document_rag.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_embeddings.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_graph_embeddings.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_graph_rag.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_llm.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_mcp_tool.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_nlp_query.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_prompt.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_row_embeddings.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_rows_query.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_sparql_query.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/invoke_structured_query.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/list_collections.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/list_config_items.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/list_explain_traces.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/load_doc_embeds.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/load_kg_core.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/load_knowledge.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/load_sample_documents.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/load_structured_data.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/load_turtle.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/monitor_prompts.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/put_config_item.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/put_flow_blueprint.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/put_kg_core.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/query_graph.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/remove_library_document.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/save_doc_embeds.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/set_collection.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/set_mcp_tool.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/set_prompt.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/set_token_costs.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/set_tool.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_config.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_explain_trace.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_extraction_provenance.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_flow_blueprints.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_flows.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_graph.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_kg_cores.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_library_documents.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_library_processing.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_mcp_tools.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_parameter_types.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_prompts.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_token_costs.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_token_rate.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/show_tools.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/start_flow.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/start_library_processing.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/stop_flow.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/stop_library_processing.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/unload_kg_core.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph/cli/verify_system_status.py +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph_cli.egg-info/dependency_links.txt +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph_cli.egg-info/requires.txt +0 -0
- {trustgraph_cli-2.4.2 → trustgraph_cli-2.4.4}/trustgraph_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trustgraph-cli
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.4
|
|
4
4
|
Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
|
|
5
5
|
Author-email: "trustgraph.ai" <security@trustgraph.ai>
|
|
6
6
|
Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
|
|
@@ -40,7 +40,6 @@ tg-get-flow-blueprint = "trustgraph.cli.get_flow_blueprint:main"
|
|
|
40
40
|
tg-get-kg-core = "trustgraph.cli.get_kg_core:main"
|
|
41
41
|
tg-get-document-content = "trustgraph.cli.get_document_content:main"
|
|
42
42
|
tg-graph-to-turtle = "trustgraph.cli.graph_to_turtle:main"
|
|
43
|
-
tg-init-trustgraph = "trustgraph.cli.init_trustgraph:main"
|
|
44
43
|
tg-invoke-agent = "trustgraph.cli.invoke_agent:main"
|
|
45
44
|
tg-invoke-document-rag = "trustgraph.cli.invoke_document_rag:main"
|
|
46
45
|
tg-invoke-graph-rag = "trustgraph.cli.invoke_graph_rag:main"
|
|
@@ -44,16 +44,18 @@ def show_processors(metrics_url, flow_label):
|
|
|
44
44
|
|
|
45
45
|
obj = resp.json()
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
# consumer_state is one sample per consumer (queue); a processor
|
|
48
|
+
# with N subscriptions shows up N times. Aggregate to one row per
|
|
49
|
+
# processor: green only if every consumer is running.
|
|
50
|
+
by_proc = {}
|
|
51
|
+
for m in obj["data"]["result"]:
|
|
52
|
+
name = m["metric"].get("processor", m["metric"]["job"])
|
|
53
|
+
running = int(m["value"][1]) > 0
|
|
54
|
+
by_proc[name] = by_proc.get(name, True) and running
|
|
55
|
+
|
|
56
|
+
for name in sorted(by_proc):
|
|
57
|
+
icon = "\U0001f49a" if by_proc[name] else "\U0000274c"
|
|
58
|
+
print(f"- {name:30} {icon}")
|
|
57
59
|
|
|
58
60
|
def main():
|
|
59
61
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.4.4"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trustgraph-cli
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.4
|
|
4
4
|
Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
|
|
5
5
|
Author-email: "trustgraph.ai" <security@trustgraph.ai>
|
|
6
6
|
Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
|
|
@@ -19,7 +19,6 @@ trustgraph/cli/get_kg_core.py
|
|
|
19
19
|
trustgraph/cli/graph_to_turtle.py
|
|
20
20
|
trustgraph/cli/import_workspace_config.py
|
|
21
21
|
trustgraph/cli/init_pulsar_manager.py
|
|
22
|
-
trustgraph/cli/init_trustgraph.py
|
|
23
22
|
trustgraph/cli/invoke_agent.py
|
|
24
23
|
trustgraph/cli/invoke_document_embeddings.py
|
|
25
24
|
trustgraph/cli/invoke_document_rag.py
|
|
@@ -15,7 +15,6 @@ tg-get-flow-blueprint = trustgraph.cli.get_flow_blueprint:main
|
|
|
15
15
|
tg-get-kg-core = trustgraph.cli.get_kg_core:main
|
|
16
16
|
tg-graph-to-turtle = trustgraph.cli.graph_to_turtle:main
|
|
17
17
|
tg-import-workspace-config = trustgraph.cli.import_workspace_config:main
|
|
18
|
-
tg-init-trustgraph = trustgraph.cli.init_trustgraph:main
|
|
19
18
|
tg-invoke-agent = trustgraph.cli.invoke_agent:main
|
|
20
19
|
tg-invoke-document-embeddings = trustgraph.cli.invoke_document_embeddings:main
|
|
21
20
|
tg-invoke-document-rag = trustgraph.cli.invoke_document_rag:main
|
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Initialises TrustGraph pub/sub infrastructure and pushes initial config.
|
|
3
|
-
|
|
4
|
-
For Pulsar: creates tenant, namespaces, and retention policies.
|
|
5
|
-
For RabbitMQ: queues are auto-declared, so only config push is needed.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
import requests
|
|
9
|
-
import time
|
|
10
|
-
import argparse
|
|
11
|
-
import json
|
|
12
|
-
|
|
13
|
-
from trustgraph.clients.config_client import ConfigClient
|
|
14
|
-
from trustgraph.base.pubsub import add_pubsub_args
|
|
15
|
-
|
|
16
|
-
default_pulsar_admin_url = "http://pulsar:8080"
|
|
17
|
-
subscriber = "tg-init-pubsub"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def get_clusters(url):
|
|
21
|
-
|
|
22
|
-
print("Get clusters...", flush=True)
|
|
23
|
-
|
|
24
|
-
resp = requests.get(f"{url}/admin/v2/clusters")
|
|
25
|
-
|
|
26
|
-
if resp.status_code != 200: raise RuntimeError("Could not fetch clusters")
|
|
27
|
-
|
|
28
|
-
return resp.json()
|
|
29
|
-
|
|
30
|
-
def ensure_tenant(url, tenant, clusters):
|
|
31
|
-
|
|
32
|
-
resp = requests.get(f"{url}/admin/v2/tenants/{tenant}")
|
|
33
|
-
|
|
34
|
-
if resp.status_code == 200:
|
|
35
|
-
print(f"Tenant {tenant} already exists.", flush=True)
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
resp = requests.put(
|
|
39
|
-
f"{url}/admin/v2/tenants/{tenant}",
|
|
40
|
-
json={
|
|
41
|
-
"adminRoles": [],
|
|
42
|
-
"allowedClusters": clusters,
|
|
43
|
-
}
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
if resp.status_code != 204:
|
|
47
|
-
print(resp.text, flush=True)
|
|
48
|
-
raise RuntimeError("Tenant creation failed.")
|
|
49
|
-
|
|
50
|
-
print(f"Tenant {tenant} created.", flush=True)
|
|
51
|
-
|
|
52
|
-
def ensure_namespace(url, tenant, namespace, config):
|
|
53
|
-
|
|
54
|
-
resp = requests.get(f"{url}/admin/v2/namespaces/{tenant}/{namespace}")
|
|
55
|
-
|
|
56
|
-
if resp.status_code == 200:
|
|
57
|
-
print(f"Namespace {tenant}/{namespace} already exists.", flush=True)
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
resp = requests.put(
|
|
61
|
-
f"{url}/admin/v2/namespaces/{tenant}/{namespace}",
|
|
62
|
-
json=config,
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
if resp.status_code != 204:
|
|
66
|
-
print(resp.status_code, flush=True)
|
|
67
|
-
print(resp.text, flush=True)
|
|
68
|
-
raise RuntimeError(f"Namespace {tenant}/{namespace} creation failed.")
|
|
69
|
-
|
|
70
|
-
print(f"Namespace {tenant}/{namespace} created.", flush=True)
|
|
71
|
-
|
|
72
|
-
def ensure_config(config, workspace="default", **pubsub_config):
|
|
73
|
-
|
|
74
|
-
cli = ConfigClient(
|
|
75
|
-
subscriber=subscriber,
|
|
76
|
-
workspace=workspace,
|
|
77
|
-
**pubsub_config,
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
while True:
|
|
81
|
-
|
|
82
|
-
try:
|
|
83
|
-
|
|
84
|
-
print("Get current config...", flush=True)
|
|
85
|
-
current, version = cli.config(timeout=5)
|
|
86
|
-
|
|
87
|
-
except Exception as e:
|
|
88
|
-
|
|
89
|
-
print("Exception:", e, flush=True)
|
|
90
|
-
time.sleep(2)
|
|
91
|
-
print("Retrying...", flush=True)
|
|
92
|
-
continue
|
|
93
|
-
|
|
94
|
-
print("Current config version is", version, flush=True)
|
|
95
|
-
|
|
96
|
-
if version != 0:
|
|
97
|
-
print("Already updated, not updating config. Done.", flush=True)
|
|
98
|
-
return
|
|
99
|
-
|
|
100
|
-
print("Config is version 0, updating...", flush=True)
|
|
101
|
-
|
|
102
|
-
batch = []
|
|
103
|
-
|
|
104
|
-
for type in config:
|
|
105
|
-
for key in config[type]:
|
|
106
|
-
print(f"Adding {type}/{key} to update.", flush=True)
|
|
107
|
-
batch.append({
|
|
108
|
-
"type": type,
|
|
109
|
-
"key": key,
|
|
110
|
-
"value": json.dumps(config[type][key]),
|
|
111
|
-
})
|
|
112
|
-
|
|
113
|
-
try:
|
|
114
|
-
cli.put(batch, timeout=10)
|
|
115
|
-
print("Update succeeded.", flush=True)
|
|
116
|
-
break
|
|
117
|
-
except Exception as e:
|
|
118
|
-
print("Exception:", e, flush=True)
|
|
119
|
-
time.sleep(2)
|
|
120
|
-
print("Retrying...", flush=True)
|
|
121
|
-
continue
|
|
122
|
-
|
|
123
|
-
def init_pulsar(pulsar_admin_url, tenant):
|
|
124
|
-
"""Pulsar-specific setup: create tenant, namespaces, retention policies."""
|
|
125
|
-
|
|
126
|
-
clusters = get_clusters(pulsar_admin_url)
|
|
127
|
-
|
|
128
|
-
ensure_tenant(pulsar_admin_url, tenant, clusters)
|
|
129
|
-
|
|
130
|
-
ensure_namespace(pulsar_admin_url, tenant, "flow", {})
|
|
131
|
-
|
|
132
|
-
ensure_namespace(pulsar_admin_url, tenant, "request", {})
|
|
133
|
-
|
|
134
|
-
ensure_namespace(pulsar_admin_url, tenant, "response", {
|
|
135
|
-
"retention_policies": {
|
|
136
|
-
"retentionSizeInMB": -1,
|
|
137
|
-
"retentionTimeInMinutes": 3,
|
|
138
|
-
"subscriptionExpirationTimeMinutes": 30,
|
|
139
|
-
}
|
|
140
|
-
})
|
|
141
|
-
|
|
142
|
-
ensure_namespace(pulsar_admin_url, tenant, "notify", {
|
|
143
|
-
"retention_policies": {
|
|
144
|
-
"retentionSizeInMB": -1,
|
|
145
|
-
"retentionTimeInMinutes": 3,
|
|
146
|
-
"subscriptionExpirationTimeMinutes": 5,
|
|
147
|
-
}
|
|
148
|
-
})
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
def push_config(config_json, config_file, workspace="default",
|
|
152
|
-
**pubsub_config):
|
|
153
|
-
"""Push initial config if provided."""
|
|
154
|
-
|
|
155
|
-
if config_json is not None:
|
|
156
|
-
|
|
157
|
-
try:
|
|
158
|
-
print("Decoding config...", flush=True)
|
|
159
|
-
dec = json.loads(config_json)
|
|
160
|
-
print("Decoded.", flush=True)
|
|
161
|
-
except Exception as e:
|
|
162
|
-
print("Exception:", e, flush=True)
|
|
163
|
-
raise e
|
|
164
|
-
|
|
165
|
-
ensure_config(dec, workspace=workspace, **pubsub_config)
|
|
166
|
-
|
|
167
|
-
elif config_file is not None:
|
|
168
|
-
|
|
169
|
-
try:
|
|
170
|
-
print("Decoding config...", flush=True)
|
|
171
|
-
dec = json.load(open(config_file))
|
|
172
|
-
print("Decoded.", flush=True)
|
|
173
|
-
except Exception as e:
|
|
174
|
-
print("Exception:", e, flush=True)
|
|
175
|
-
raise e
|
|
176
|
-
|
|
177
|
-
ensure_config(dec, workspace=workspace, **pubsub_config)
|
|
178
|
-
|
|
179
|
-
else:
|
|
180
|
-
print("No config to update.", flush=True)
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
def main():
|
|
184
|
-
|
|
185
|
-
parser = argparse.ArgumentParser(
|
|
186
|
-
prog='tg-init-trustgraph',
|
|
187
|
-
description=__doc__,
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
parser.add_argument(
|
|
191
|
-
'--pulsar-admin-url',
|
|
192
|
-
default=default_pulsar_admin_url,
|
|
193
|
-
help=f'Pulsar admin URL (default: {default_pulsar_admin_url})',
|
|
194
|
-
)
|
|
195
|
-
|
|
196
|
-
parser.add_argument(
|
|
197
|
-
'-c', '--config',
|
|
198
|
-
help=f'Initial configuration to load',
|
|
199
|
-
)
|
|
200
|
-
|
|
201
|
-
parser.add_argument(
|
|
202
|
-
'-C', '--config-file',
|
|
203
|
-
help=f'Initial configuration to load from file',
|
|
204
|
-
)
|
|
205
|
-
|
|
206
|
-
parser.add_argument(
|
|
207
|
-
'-t', '--tenant',
|
|
208
|
-
default="tg",
|
|
209
|
-
help=f'Tenant (default: tg)',
|
|
210
|
-
)
|
|
211
|
-
|
|
212
|
-
parser.add_argument(
|
|
213
|
-
'-w', '--workspace',
|
|
214
|
-
default="default",
|
|
215
|
-
help=f'Workspace (default: default)',
|
|
216
|
-
)
|
|
217
|
-
|
|
218
|
-
add_pubsub_args(parser)
|
|
219
|
-
|
|
220
|
-
args = parser.parse_args()
|
|
221
|
-
|
|
222
|
-
backend_type = args.pubsub_backend
|
|
223
|
-
|
|
224
|
-
# Extract pubsub config from args
|
|
225
|
-
pubsub_config = {
|
|
226
|
-
k: v for k, v in vars(args).items()
|
|
227
|
-
if k not in (
|
|
228
|
-
'pulsar_admin_url', 'config', 'config_file', 'tenant',
|
|
229
|
-
'workspace',
|
|
230
|
-
)
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
while True:
|
|
234
|
-
|
|
235
|
-
try:
|
|
236
|
-
|
|
237
|
-
# Pulsar-specific setup (tenants, namespaces)
|
|
238
|
-
if backend_type == 'pulsar':
|
|
239
|
-
print(flush=True)
|
|
240
|
-
print(
|
|
241
|
-
f"Initialising Pulsar at {args.pulsar_admin_url}...",
|
|
242
|
-
flush=True,
|
|
243
|
-
)
|
|
244
|
-
init_pulsar(args.pulsar_admin_url, args.tenant)
|
|
245
|
-
else:
|
|
246
|
-
print(flush=True)
|
|
247
|
-
print(
|
|
248
|
-
f"Using {backend_type} backend (no admin setup needed).",
|
|
249
|
-
flush=True,
|
|
250
|
-
)
|
|
251
|
-
|
|
252
|
-
# Push config (works with any backend)
|
|
253
|
-
push_config(
|
|
254
|
-
args.config, args.config_file,
|
|
255
|
-
workspace=args.workspace,
|
|
256
|
-
**pubsub_config,
|
|
257
|
-
)
|
|
258
|
-
|
|
259
|
-
print("Initialisation complete.", flush=True)
|
|
260
|
-
break
|
|
261
|
-
|
|
262
|
-
except Exception as e:
|
|
263
|
-
|
|
264
|
-
print("Exception:", e, flush=True)
|
|
265
|
-
|
|
266
|
-
print("Sleeping...", flush=True)
|
|
267
|
-
time.sleep(2)
|
|
268
|
-
print("Will retry...", flush=True)
|
|
269
|
-
|
|
270
|
-
if __name__ == "__main__":
|
|
271
|
-
main()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.4.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|