pyegeria 1.5.1.1.23__py3-none-any.whl → 1.5.1.1.26__py3-none-any.whl
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.
- pyegeria/commands/cat/__init__.py +1 -0
- pyegeria/commands/cat/glossary_actions.py +15 -0
- pyegeria/commands/cli/egeria.py +14 -2
- pyegeria/commands/cli/egeria_ops.py +15 -3
- pyegeria/commands/ops/monitor_gov_eng_status.py +46 -21
- pyegeria/commands/ops/monitor_integ_daemon_status.py +24 -7
- pyegeria/commands/tech/list_tech_templates.py +193 -37
- {pyegeria-1.5.1.1.23.dist-info → pyegeria-1.5.1.1.26.dist-info}/METADATA +1 -1
- {pyegeria-1.5.1.1.23.dist-info → pyegeria-1.5.1.1.26.dist-info}/RECORD +12 -12
- {pyegeria-1.5.1.1.23.dist-info → pyegeria-1.5.1.1.26.dist-info}/LICENSE +0 -0
- {pyegeria-1.5.1.1.23.dist-info → pyegeria-1.5.1.1.26.dist-info}/WHEEL +0 -0
- {pyegeria-1.5.1.1.23.dist-info → pyegeria-1.5.1.1.26.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
from glossary_actions import display_glossaries
|
@@ -117,6 +117,21 @@ def create_glossary(
|
|
117
117
|
m_client.close_session()
|
118
118
|
|
119
119
|
|
120
|
+
def display_glossaries(
|
121
|
+
search_string: str,
|
122
|
+
server: str,
|
123
|
+
url: str,
|
124
|
+
userid: str,
|
125
|
+
password: str,
|
126
|
+
timeout: int,
|
127
|
+
jupyter: bool,
|
128
|
+
width: int,
|
129
|
+
):
|
130
|
+
list_glossaries(
|
131
|
+
search_string, server, url, userid, password, timeout, jupyter, width
|
132
|
+
)
|
133
|
+
|
134
|
+
|
120
135
|
@click.command("glossaries")
|
121
136
|
@click.option("--search-string", default="*", help="Glossaries to search for")
|
122
137
|
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use")
|
pyegeria/commands/cli/egeria.py
CHANGED
@@ -1114,6 +1114,11 @@ def engine_host(ctx):
|
|
1114
1114
|
|
1115
1115
|
|
1116
1116
|
@engine_host.command("status")
|
1117
|
+
@click.options(
|
1118
|
+
"--engine-list",
|
1119
|
+
default=["*"],
|
1120
|
+
help="Enter the list of connectors you are interested in or ['*'] for all",
|
1121
|
+
)
|
1117
1122
|
@click.option(
|
1118
1123
|
"--list", is_flag=True, default=False, help="If True, a paged list will be shown"
|
1119
1124
|
)
|
@@ -1123,10 +1128,11 @@ def engine_host(ctx):
|
|
1123
1128
|
help="Name of the Engine Host to get status for",
|
1124
1129
|
)
|
1125
1130
|
@click.pass_context
|
1126
|
-
def gov_eng_status(ctx, engine_host, list):
|
1131
|
+
def gov_eng_status(ctx, engine_list, engine_host, list):
|
1127
1132
|
"""Display engine-host status information"""
|
1128
1133
|
c = ctx.obj
|
1129
1134
|
display_gov_eng_status(
|
1135
|
+
engine_list,
|
1130
1136
|
engine_host,
|
1131
1137
|
c.view_server,
|
1132
1138
|
c.view_server_url,
|
@@ -1183,6 +1189,11 @@ def integrations(ctx):
|
|
1183
1189
|
|
1184
1190
|
|
1185
1191
|
@integrations.command("status")
|
1192
|
+
@click.option(
|
1193
|
+
"--connector-list",
|
1194
|
+
default=["*"],
|
1195
|
+
help="Enter the list of connectors you are interested in or ['*'] for all",
|
1196
|
+
)
|
1186
1197
|
@click.option(
|
1187
1198
|
"--list", is_flag=True, default=False, help="If True, a paged list will be shown"
|
1188
1199
|
)
|
@@ -1190,10 +1201,11 @@ def integrations(ctx):
|
|
1190
1201
|
"--sorted", type=bool, default=True, help="If True, the table will be sorted"
|
1191
1202
|
)
|
1192
1203
|
@click.pass_context
|
1193
|
-
def integrations_status(ctx, list, sorted):
|
1204
|
+
def integrations_status(ctx, connector_list, list, sorted):
|
1194
1205
|
"""Display integration-daemon status information"""
|
1195
1206
|
c = ctx.obj
|
1196
1207
|
display_integration_daemon_status(
|
1208
|
+
connector_list,
|
1197
1209
|
c.integration_daemon,
|
1198
1210
|
c.integration_daemon_url,
|
1199
1211
|
c.view_server,
|
@@ -271,6 +271,11 @@ def engine_host(ctx):
|
|
271
271
|
|
272
272
|
|
273
273
|
@engine_host.command("status")
|
274
|
+
@click.options(
|
275
|
+
"--engine-list",
|
276
|
+
default=["*"],
|
277
|
+
help="Enter the list of connectors you are interested in or ['*'] for all",
|
278
|
+
)
|
274
279
|
@click.option(
|
275
280
|
"--engine-host",
|
276
281
|
default="engine-host",
|
@@ -280,11 +285,12 @@ def engine_host(ctx):
|
|
280
285
|
"--list", is_flag=True, default=False, help="If True, a paged list will be shown"
|
281
286
|
)
|
282
287
|
@click.pass_context
|
283
|
-
def gov_eng_status(ctx, engine_host, list):
|
288
|
+
def gov_eng_status(ctx, engine_list, engine_host, list):
|
284
289
|
"""Display engine-host status information"""
|
285
290
|
c = ctx.obj
|
286
291
|
display_gov_eng_status(
|
287
|
-
|
292
|
+
engine_list,
|
293
|
+
engine_host,
|
288
294
|
c.view_server,
|
289
295
|
c.view_server_url,
|
290
296
|
c.userid,
|
@@ -344,14 +350,20 @@ def integrations(ctx):
|
|
344
350
|
|
345
351
|
|
346
352
|
@integrations.command("status")
|
353
|
+
@click.option(
|
354
|
+
"--connector-list",
|
355
|
+
default=["*"],
|
356
|
+
help="Enter the list of connectors you are interested in or ['*'] for all",
|
357
|
+
)
|
347
358
|
@click.option(
|
348
359
|
"--list", is_flag=True, default=False, help="If True, a paged list will be shown"
|
349
360
|
)
|
350
361
|
@click.pass_context
|
351
|
-
def integrations_status(ctx, list):
|
362
|
+
def integrations_status(ctx, connector_list, list):
|
352
363
|
"""Display integration-daemon status information"""
|
353
364
|
c = ctx.obj
|
354
365
|
display_integration_daemon_status(
|
366
|
+
connector_list,
|
355
367
|
c.integration_daemon,
|
356
368
|
c.integration_daemon_url,
|
357
369
|
c.view_server,
|
@@ -16,6 +16,7 @@ from rich import box
|
|
16
16
|
from rich.console import Console
|
17
17
|
from rich.live import Live
|
18
18
|
from rich.markdown import Markdown
|
19
|
+
from rich.prompt import Prompt
|
19
20
|
from rich.table import Table
|
20
21
|
|
21
22
|
from pyegeria import (
|
@@ -51,21 +52,23 @@ disable_ssl_warnings = True
|
|
51
52
|
|
52
53
|
|
53
54
|
def display_gov_eng_status(
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
search_list: list[str] = ["*"],
|
56
|
+
engine_host: str = EGERIA_ENGINE_HOST,
|
57
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
58
|
+
url: str = EGERIA_VIEW_SERVER_URL,
|
59
|
+
username: str = EGERIA_USER,
|
60
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
61
|
+
paging: bool = True,
|
60
62
|
jupyter: bool = EGERIA_JUPYTER,
|
61
63
|
width: int = EGERIA_WIDTH,
|
64
|
+
sort: bool = True,
|
62
65
|
):
|
63
66
|
console = Console(width=EGERIA_WIDTH)
|
64
67
|
|
65
68
|
s_client = EgeriaTech(view_server, url, username, user_pass)
|
66
69
|
token = s_client.create_egeria_bearer_token()
|
67
70
|
|
68
|
-
def generate_table() -> Table:
|
71
|
+
def generate_table(search_list: list[str]) -> Table:
|
69
72
|
"""Make a new table."""
|
70
73
|
table = Table(
|
71
74
|
title=f"Governance Engine Status @ {time.asctime()}",
|
@@ -86,14 +89,25 @@ def display_gov_eng_status(
|
|
86
89
|
table.add_column("Engine Status")
|
87
90
|
table.add_column("Request Types")
|
88
91
|
|
89
|
-
eng_host_guid = s_client.get_guid_for_name(engine_host)
|
90
|
-
gov_eng_status = s_client.get_server_report(
|
91
|
-
|
92
|
-
sorted_gov_eng_status = sorted(
|
93
|
-
eng_summaries, key=lambda k: k.get("governanceEngineName", " ")
|
92
|
+
# eng_host_guid = s_client.get_guid_for_name(engine_host)
|
93
|
+
gov_eng_status = s_client.get_server_report(
|
94
|
+
server_guid=None, server_name=engine_host
|
94
95
|
)
|
95
|
-
|
96
|
+
eng_summaries = gov_eng_status["governanceEngineSummaries"]
|
97
|
+
|
98
|
+
if sort is True:
|
99
|
+
engine_info = sorted(
|
100
|
+
eng_summaries, key=lambda k: k.get("governanceEngineName", " ")
|
101
|
+
)
|
102
|
+
else:
|
103
|
+
engine_info = eng_summaries
|
104
|
+
|
105
|
+
for engine in engine_info:
|
96
106
|
gov_eng = engine["governanceEngineName"]
|
107
|
+
|
108
|
+
if (gov_eng not in search_list) and (search_list != ["*"]):
|
109
|
+
# if specific engines are requested and it doesn't match, then skip
|
110
|
+
continue
|
97
111
|
eng_type = engine.get("governanceEngineTypeName", " ")
|
98
112
|
|
99
113
|
eng_desc = engine.get("governanceEngineDescription", " ")
|
@@ -115,24 +129,23 @@ def display_gov_eng_status(
|
|
115
129
|
|
116
130
|
table.add_row(gov_eng, eng_type, eng_desc, eng_status, eng_req_type_out)
|
117
131
|
|
118
|
-
table.caption = f"Server {engine_host} running on {url}"
|
119
132
|
return table
|
120
133
|
|
121
134
|
try:
|
122
135
|
if paging is True:
|
123
136
|
console = Console(width=width, force_terminal=not jupyter)
|
124
137
|
with console.pager():
|
125
|
-
console.print(generate_table())
|
138
|
+
console.print(generate_table(search_list))
|
126
139
|
else:
|
127
140
|
with Live(
|
128
|
-
generate_table(),
|
141
|
+
generate_table(search_list),
|
129
142
|
refresh_per_second=1,
|
130
143
|
screen=True,
|
131
144
|
vertical_overflow="visible",
|
132
145
|
) as live:
|
133
146
|
while True:
|
134
147
|
time.sleep(2)
|
135
|
-
live.update(generate_table())
|
148
|
+
live.update(generate_table(search_list))
|
136
149
|
|
137
150
|
except (
|
138
151
|
InvalidParameterException,
|
@@ -157,7 +170,7 @@ def main_live():
|
|
157
170
|
parser.add_argument("--url", help="URL Platform to connect to")
|
158
171
|
parser.add_argument("--userid", help="User Id")
|
159
172
|
parser.add_argument("--password", help="User Password")
|
160
|
-
parser.add_argument("--paging", help="Paging")
|
173
|
+
# parser.add_argument("--paging", help="Paging")
|
161
174
|
args = parser.parse_args()
|
162
175
|
|
163
176
|
engine_host = (
|
@@ -169,8 +182,15 @@ def main_live():
|
|
169
182
|
url = args.url if args.url is not None else EGERIA_ENGINE_HOST_URL
|
170
183
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
171
184
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
172
|
-
paging =
|
173
|
-
|
185
|
+
paging = False
|
186
|
+
|
187
|
+
search_list = Prompt.ask(
|
188
|
+
"Enter the list of engines you are interested in or ['*'] for all",
|
189
|
+
default=["*"],
|
190
|
+
)
|
191
|
+
display_gov_eng_status(
|
192
|
+
search_list, engine_host, view_server, url, userid, user_pass, paging
|
193
|
+
)
|
174
194
|
|
175
195
|
|
176
196
|
def main_paging():
|
@@ -193,9 +213,14 @@ def main_paging():
|
|
193
213
|
url = args.url if args.url is not None else EGERIA_VIEW_SERVER_URL
|
194
214
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
195
215
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
216
|
+
paging = True
|
217
|
+
search_list = Prompt.ask(
|
218
|
+
"Enter the list of engines you are interested in or ['*'] for all",
|
219
|
+
default=["*"],
|
220
|
+
)
|
196
221
|
|
197
222
|
display_gov_eng_status(
|
198
|
-
engine_host, view_server, url, userid, user_pass, paging
|
223
|
+
search_list, engine_host, view_server, url, userid, user_pass, paging
|
199
224
|
)
|
200
225
|
|
201
226
|
|
@@ -15,6 +15,7 @@ import time
|
|
15
15
|
from rich import box
|
16
16
|
from rich.console import Console
|
17
17
|
from rich.live import Live
|
18
|
+
from rich.prompt import Prompt
|
18
19
|
from rich.table import Table
|
19
20
|
import nest_asyncio
|
20
21
|
from typing import Union
|
@@ -47,8 +48,8 @@ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
|
47
48
|
disable_ssl_warnings = True
|
48
49
|
|
49
50
|
|
50
|
-
|
51
51
|
def display_integration_daemon_status(
|
52
|
+
search_list: list[str] = ["*"],
|
52
53
|
integ_server: str = EGERIA_INTEGRATION_DAEMON,
|
53
54
|
integ_url: str = EGERIA_INTEGRATION_DAEMON_URL,
|
54
55
|
view_server: str = EGERIA_VIEW_SERVER,
|
@@ -61,8 +62,9 @@ def display_integration_daemon_status(
|
|
61
62
|
sort: bool = True,
|
62
63
|
):
|
63
64
|
s_client = EgeriaTech(view_server, view_url, user, user_pass)
|
65
|
+
token = s_client.create_egeria_bearer_token()
|
64
66
|
|
65
|
-
def generate_table() -> Table:
|
67
|
+
def generate_table(search_list: list[str]) -> Table:
|
66
68
|
"""Make a new table."""
|
67
69
|
table = Table(
|
68
70
|
title=f"Integration Daemon Status @ {time.asctime()}",
|
@@ -84,7 +86,6 @@ def display_integration_daemon_status(
|
|
84
86
|
table.add_column("Target Element", min_width=20)
|
85
87
|
table.add_column("Exception Message", min_width=10)
|
86
88
|
|
87
|
-
token = s_client.create_egeria_bearer_token()
|
88
89
|
# server_guid = s_client.get_guid_for_name(integ_server)
|
89
90
|
daemon_status = s_client.get_server_report(None, integ_server)
|
90
91
|
|
@@ -98,6 +99,11 @@ def display_integration_daemon_status(
|
|
98
99
|
|
99
100
|
for connector in connector_reports:
|
100
101
|
connector_name = connector.get("connectorName", "---")
|
102
|
+
|
103
|
+
if (connector_name not in search_list) and (search_list != ["*"]):
|
104
|
+
# if specific connectors are requested and it doesn't match, then skip
|
105
|
+
continue
|
106
|
+
|
101
107
|
connector_status = connector.get("connectorStatus", "---")
|
102
108
|
connector_guid = connector.get("connectorGUID", "---")
|
103
109
|
last_refresh_time = connector.get("lastRefreshTime", "---")[:-10]
|
@@ -144,23 +150,24 @@ def display_integration_daemon_status(
|
|
144
150
|
targets_out,
|
145
151
|
exception_msg,
|
146
152
|
)
|
153
|
+
|
147
154
|
return table
|
148
155
|
|
149
156
|
try:
|
150
157
|
if paging is True:
|
151
158
|
console = Console(width=width, force_terminal=not jupyter)
|
152
159
|
with console.pager():
|
153
|
-
console.print(generate_table())
|
160
|
+
console.print(generate_table(search_list))
|
154
161
|
else:
|
155
162
|
with Live(
|
156
|
-
generate_table(),
|
163
|
+
generate_table(search_list),
|
157
164
|
refresh_per_second=1,
|
158
165
|
screen=True,
|
159
166
|
vertical_overflow="visible",
|
160
167
|
) as live:
|
161
168
|
while True:
|
162
169
|
time.sleep(2)
|
163
|
-
live.update(generate_table())
|
170
|
+
live.update(generate_table(search_list))
|
164
171
|
|
165
172
|
except (
|
166
173
|
InvalidParameterException,
|
@@ -202,14 +209,19 @@ def main_live():
|
|
202
209
|
view_url = args.view_url if args.view_url is not None else EGERIA_VIEW_SERVER_URL
|
203
210
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
204
211
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
212
|
+
search_list = Prompt.ask(
|
213
|
+
"Enter the list of connectors you are interested in or ['*'] for all",
|
214
|
+
default=["*"],
|
215
|
+
)
|
205
216
|
display_integration_daemon_status(
|
217
|
+
search_list=search_list,
|
206
218
|
integ_server=integ_server,
|
207
219
|
integ_url=integ_url,
|
208
220
|
view_server=view_server,
|
209
221
|
view_url=view_url,
|
210
222
|
user=userid,
|
211
223
|
user_pass=user_pass,
|
212
|
-
paging=
|
224
|
+
paging=True,
|
213
225
|
)
|
214
226
|
|
215
227
|
|
@@ -239,7 +251,12 @@ def main_paging():
|
|
239
251
|
view_url = args.view_url if args.view_url is not None else EGERIA_VIEW_SERVER_URL
|
240
252
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
241
253
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
254
|
+
search_list = Prompt.ask(
|
255
|
+
"Enter the list of connectors you are interested in or ['*'] for all",
|
256
|
+
default="[*]",
|
257
|
+
)
|
242
258
|
display_integration_daemon_status(
|
259
|
+
search_list=search_list,
|
243
260
|
integ_server=integ_server,
|
244
261
|
integ_url=integ_url,
|
245
262
|
view_server=view_server,
|
@@ -1,27 +1,26 @@
|
|
1
1
|
"""This creates a templates guid file from the core metadata archive"""
|
2
|
-
import json
|
3
2
|
|
4
|
-
from rich.markdown import Markdown
|
5
|
-
from rich.prompt import Prompt
|
6
|
-
import os
|
7
|
-
from pyegeria import AutomatedCuration
|
8
|
-
from datetime import datetime
|
9
3
|
import argparse
|
10
|
-
import
|
4
|
+
import os
|
11
5
|
import sys
|
6
|
+
import time
|
7
|
+
from typing import Union
|
8
|
+
|
9
|
+
import nest_asyncio
|
12
10
|
from rich import box
|
13
11
|
from rich.console import Console
|
12
|
+
from rich.prompt import Prompt
|
14
13
|
from rich.table import Table
|
14
|
+
from textual.widgets import DataTable
|
15
15
|
|
16
|
+
from pyegeria import AutomatedCuration
|
16
17
|
from pyegeria import (
|
17
18
|
InvalidParameterException,
|
18
19
|
PropertyServerException,
|
19
20
|
UserNotAuthorizedException,
|
20
21
|
print_exception_response,
|
21
|
-
RegisteredInfo,
|
22
22
|
)
|
23
23
|
|
24
|
-
|
25
24
|
console = Console()
|
26
25
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
27
26
|
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
@@ -69,6 +68,21 @@ def list_templates(
|
|
69
68
|
return tech_info_list
|
70
69
|
|
71
70
|
|
71
|
+
def add_row(
|
72
|
+
table: Union[Table, DataTable],
|
73
|
+
name: str,
|
74
|
+
template_name: str,
|
75
|
+
template_guid: str,
|
76
|
+
placeholder_table: Table,
|
77
|
+
) -> Table | DataTable:
|
78
|
+
if isinstance(table, Table):
|
79
|
+
table.add_row(name, template_name, template_guid, placeholder_table)
|
80
|
+
elif isinstance(table, DataTable):
|
81
|
+
table.add_row(name, template_name, template_guid, placeholder_table)
|
82
|
+
|
83
|
+
return table
|
84
|
+
|
85
|
+
|
72
86
|
def display_templates_spec(
|
73
87
|
search_string: str,
|
74
88
|
server: str,
|
@@ -77,31 +91,37 @@ def display_templates_spec(
|
|
77
91
|
password: str,
|
78
92
|
jupyter: bool = EGERIA_JUPYTER,
|
79
93
|
width: int = EGERIA_WIDTH,
|
80
|
-
|
94
|
+
data_table: bool = False,
|
95
|
+
) -> Table | DataTable:
|
81
96
|
a_client = AutomatedCuration(server, url, username)
|
97
|
+
nest_asyncio.apply()
|
82
98
|
token = a_client.create_egeria_bearer_token(username, password)
|
83
99
|
tech_list = a_client.find_technology_types(search_string, page_size=0)
|
84
100
|
|
85
|
-
def generate_table() -> Table:
|
101
|
+
def generate_table(data_table: bool) -> Table | DataTable:
|
86
102
|
"""Make a new table."""
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
103
|
+
if data_table:
|
104
|
+
table = DataTable()
|
105
|
+
table.add_columns("Name", "Template Name", "Template GUID", "Placeholders")
|
106
|
+
else:
|
107
|
+
table = Table(
|
108
|
+
title=f"Technology Templates for: {url} @ {time.asctime()}",
|
109
|
+
style="bold bright_white on black",
|
110
|
+
row_styles=["bold bright_white on black"],
|
111
|
+
header_style="white on dark_blue",
|
112
|
+
title_style="bold bright_white on black",
|
113
|
+
caption_style="white on black",
|
114
|
+
show_lines=True,
|
115
|
+
box=box.ROUNDED,
|
116
|
+
caption=f"Templates from Server '{server}' @ Platform - {url}",
|
117
|
+
expand=True,
|
118
|
+
# width=500
|
119
|
+
)
|
100
120
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
121
|
+
table.add_column("Name", width=20)
|
122
|
+
table.add_column("Template Name", width=20)
|
123
|
+
table.add_column("Template GUID", width=38, no_wrap=True)
|
124
|
+
table.add_column("Placeholders")
|
105
125
|
|
106
126
|
if type(tech_list) is list:
|
107
127
|
for item in tech_list:
|
@@ -149,8 +169,9 @@ def display_templates_spec(
|
|
149
169
|
placeholder_description,
|
150
170
|
)
|
151
171
|
|
152
|
-
table.add_row(
|
153
|
-
|
172
|
+
# table.add_row(name, template_name, template_guid, placeholder_table)
|
173
|
+
table = add_row(
|
174
|
+
table, name, template_name, template_guid, placeholder_table
|
154
175
|
)
|
155
176
|
|
156
177
|
return table
|
@@ -159,10 +180,13 @@ def display_templates_spec(
|
|
159
180
|
sys.exit(1)
|
160
181
|
|
161
182
|
try:
|
162
|
-
|
183
|
+
if data_table:
|
184
|
+
return generate_table(data_table)
|
185
|
+
else:
|
186
|
+
console = Console(width=width, force_terminal=not jupyter)
|
163
187
|
|
164
|
-
|
165
|
-
|
188
|
+
with console.pager(styles=True):
|
189
|
+
console.print(generate_table(data_table))
|
166
190
|
|
167
191
|
except (
|
168
192
|
InvalidParameterException,
|
@@ -194,11 +218,143 @@ def main():
|
|
194
218
|
search_string = Prompt.ask(
|
195
219
|
"Enter the technology you are searching for:", default="*"
|
196
220
|
)
|
197
|
-
|
198
|
-
|
221
|
+
display_templates_spec(
|
222
|
+
search_string, server, url, userid, password, data_table=False
|
223
|
+
)
|
199
224
|
except KeyboardInterrupt:
|
200
225
|
pass
|
201
226
|
|
202
227
|
|
203
|
-
|
204
|
-
|
228
|
+
# def display_templates_spec(
|
229
|
+
# search_string: str,
|
230
|
+
# server: str,
|
231
|
+
# url: str,
|
232
|
+
# username: str,
|
233
|
+
# password: str,
|
234
|
+
# jupyter: bool = EGERIA_JUPYTER,
|
235
|
+
# width: int = EGERIA_WIDTH,
|
236
|
+
# ):
|
237
|
+
# a_client = AutomatedCuration(server, url, username)
|
238
|
+
# token = a_client.create_egeria_bearer_token(username, password)
|
239
|
+
# tech_list = a_client.find_technology_types(search_string, page_size=0)
|
240
|
+
#
|
241
|
+
# def generate_table() -> Table:
|
242
|
+
# """Make a new table."""
|
243
|
+
# table = Table(
|
244
|
+
# title=f"Technology Templates for: {url} @ {time.asctime()}",
|
245
|
+
# style="bold bright_white on black",
|
246
|
+
# row_styles=["bold bright_white on black"],
|
247
|
+
# header_style="white on dark_blue",
|
248
|
+
# title_style="bold bright_white on black",
|
249
|
+
# caption_style="white on black",
|
250
|
+
# show_lines=True,
|
251
|
+
# box=box.ROUNDED,
|
252
|
+
# caption=f"Templates from Server '{server}' @ Platform - {url}",
|
253
|
+
# expand=True,
|
254
|
+
# # width=500
|
255
|
+
# )
|
256
|
+
#
|
257
|
+
# table.add_column("Name", width=20)
|
258
|
+
# table.add_column("Template Name", width=20)
|
259
|
+
# table.add_column("Template GUID", width=38, no_wrap=True)
|
260
|
+
# table.add_column("Placeholders")
|
261
|
+
#
|
262
|
+
# if type(tech_list) is list:
|
263
|
+
# for item in tech_list:
|
264
|
+
# if "deployedImplementationType" not in item["qualifiedName"]:
|
265
|
+
# continue
|
266
|
+
# placeholder_table = Table(expand=False, show_lines=True)
|
267
|
+
# placeholder_table.add_column("Name", width=20, no_wrap=True)
|
268
|
+
# placeholder_table.add_column("Type", width=10)
|
269
|
+
# placeholder_table.add_column("Required", width=10)
|
270
|
+
# placeholder_table.add_column("Example", width=20)
|
271
|
+
# placeholder_table.add_column("Description", width=40)
|
272
|
+
#
|
273
|
+
# name = item.get("name", "none")
|
274
|
+
#
|
275
|
+
# details = a_client.get_technology_type_detail(name)
|
276
|
+
# if type(details) is str:
|
277
|
+
# console.log(f"Missing details for - {name}: {details}")
|
278
|
+
# continue
|
279
|
+
#
|
280
|
+
# templates = details.get("catalogTemplates", "Not Found")
|
281
|
+
# if type(templates) is not str:
|
282
|
+
# for template in templates:
|
283
|
+
# template_name = template.get("name", None)
|
284
|
+
#
|
285
|
+
# template_name = (
|
286
|
+
# f"{name}_Template"
|
287
|
+
# if template_name is None
|
288
|
+
# else template_name
|
289
|
+
# )
|
290
|
+
#
|
291
|
+
# specification = template["specification"]["placeholderProperty"]
|
292
|
+
# template_guid = template["relatedElement"]["guid"]
|
293
|
+
#
|
294
|
+
# for placeholder in specification:
|
295
|
+
# placeholder_data_type = placeholder["dataType"]
|
296
|
+
# placeholder_description = placeholder["description"]
|
297
|
+
# placeholder_name = placeholder["placeholderPropertyName"]
|
298
|
+
# placeholder_required = placeholder["required"]
|
299
|
+
# placeholder_example = placeholder.get("example", None)
|
300
|
+
# placeholder_table.add_row(
|
301
|
+
# placeholder_name,
|
302
|
+
# placeholder_data_type,
|
303
|
+
# placeholder_required,
|
304
|
+
# placeholder_example,
|
305
|
+
# placeholder_description,
|
306
|
+
# )
|
307
|
+
#
|
308
|
+
# table.add_row(
|
309
|
+
# name, template_name, template_guid, placeholder_table
|
310
|
+
# )
|
311
|
+
#
|
312
|
+
# return table
|
313
|
+
# else:
|
314
|
+
# print("Unknown technology type")
|
315
|
+
# sys.exit(1)
|
316
|
+
#
|
317
|
+
# try:
|
318
|
+
# console = Console(width=width, force_terminal=not jupyter)
|
319
|
+
#
|
320
|
+
# with console.pager(styles=True):
|
321
|
+
# console.print(generate_table())
|
322
|
+
#
|
323
|
+
# except (
|
324
|
+
# InvalidParameterException,
|
325
|
+
# PropertyServerException,
|
326
|
+
# UserNotAuthorizedException,
|
327
|
+
# ) as e:
|
328
|
+
# print_exception_response(e)
|
329
|
+
# assert e.related_http_code != "200", "Invalid parameters"
|
330
|
+
# finally:
|
331
|
+
# a_client.close_session()
|
332
|
+
#
|
333
|
+
#
|
334
|
+
# def main():
|
335
|
+
# parser = argparse.ArgumentParser()
|
336
|
+
# parser.add_argument("--server", help="Name of the server to display status for")
|
337
|
+
# parser.add_argument("--url", help="URL Platform to connect to")
|
338
|
+
# parser.add_argument("--userid", help="User Id")
|
339
|
+
# parser.add_argument("--password", help="Password")
|
340
|
+
#
|
341
|
+
# args = parser.parse_args()
|
342
|
+
#
|
343
|
+
# server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
344
|
+
# url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
345
|
+
# userid = args.userid if args.userid is not None else EGERIA_USER
|
346
|
+
# password = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
347
|
+
# guid = None
|
348
|
+
#
|
349
|
+
# try:
|
350
|
+
# search_string = Prompt.ask(
|
351
|
+
# "Enter the technology you are searching for:", default="*"
|
352
|
+
# )
|
353
|
+
# # display_templates_spec(search_string, server, url, userid, password)
|
354
|
+
# list_templates(search_string, server, url, userid, password)
|
355
|
+
# except KeyboardInterrupt:
|
356
|
+
# pass
|
357
|
+
#
|
358
|
+
#
|
359
|
+
# if __name__ == "__main__":
|
360
|
+
# main()
|
@@ -13,14 +13,14 @@ pyegeria/commands/.DS_Store,sha256=nBgW7MKJ6b4wSWyEEeGYHWwC8QJAiteQaWKM9PoNRzY,6
|
|
13
13
|
pyegeria/commands/README.md,sha256=zNfWZppDxoKqTJeRtcewzku9z1m6_hKacCyQUQw1iq4,1974
|
14
14
|
pyegeria/commands/__init__.py,sha256=7y3p5oQ2c0C1465oIgSA_123W1uo7Wqwk91LXccUgrw,17
|
15
15
|
pyegeria/commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
|
16
|
-
pyegeria/commands/cat/__init__.py,sha256=
|
16
|
+
pyegeria/commands/cat/__init__.py,sha256=w7b-hlPvrfBYhXJpj8oXPvm0RYB3JM6T6uDI7KbKW4s,48
|
17
17
|
pyegeria/commands/cat/get_asset_graph.py,sha256=4AO4KlCgb7vbMihJK7W_GAnrd4J9sKwc4kXxa2ZrRW4,12447
|
18
18
|
pyegeria/commands/cat/get_collection.py,sha256=v7hCeEDcAQmcjM9qepuk8gg_RnYra3_v009AJOunkKk,5005
|
19
19
|
pyegeria/commands/cat/get_project_dependencies.py,sha256=B0JaMSUi0hzVgos1sTY2uUPGy1DzKEJMIbbYfMUWvQA,5981
|
20
20
|
pyegeria/commands/cat/get_project_structure.py,sha256=n2GbNd07w1DTo7jTR8b2ewXRyNcat_2BcCBRyDMldwk,5969
|
21
21
|
pyegeria/commands/cat/get_tech_type_elements.py,sha256=-m3Q0BoNqkCtV8h75vMwTcOV-_ymEXmnJcr4Ec7WMAw,6180
|
22
22
|
pyegeria/commands/cat/get_tech_type_template.py,sha256=gMFVcgCIm09GQu1Vsc5ZUVH9XLhItAG1eVGZJrcnHeQ,6174
|
23
|
-
pyegeria/commands/cat/glossary_actions.py,sha256=
|
23
|
+
pyegeria/commands/cat/glossary_actions.py,sha256=TKywfTBUTMKrqBjtKsjd69YbhqyvShs5Be7ItDU7_Lk,14279
|
24
24
|
pyegeria/commands/cat/list_archives.py,sha256=FEZ2XYnQIWo2PztWqnj6unn0pbblPU0-bMbTyI3csv4,5464
|
25
25
|
pyegeria/commands/cat/list_assets.py,sha256=bNwSaBDz661hfnc2Rn4j4HPHAugKvz0XwN9L1m4FVQk,6529
|
26
26
|
pyegeria/commands/cat/list_cert_types.py,sha256=mbCls_EqC5JKG5rvS4o69k7KgZ6aNXlcqoJ3DtHsTFA,7127
|
@@ -34,10 +34,10 @@ pyegeria/commands/cat/list_terms.py,sha256=zNo8oQo4y3cGIYikBnD9gutPLecwyF8Q3XaOL
|
|
34
34
|
pyegeria/commands/cat/list_todos.py,sha256=iPxHRyW3X5tiREio4TUOwRPvNPjU0gxm3pVnUI79ir4,6542
|
35
35
|
pyegeria/commands/cat/list_user_ids.py,sha256=7JinL7rknPbGusIb8ikXKEaV1vvbuvx_WWtbmlfS_DY,5093
|
36
36
|
pyegeria/commands/cli/__init__.py,sha256=hpTVSMP2gnPRhcAZPdeUEsQ-eaDySlXlk239dNWYmng,292
|
37
|
-
pyegeria/commands/cli/egeria.py,sha256=
|
37
|
+
pyegeria/commands/cli/egeria.py,sha256=An7y4Dy03-inkRiat9pAP8RLcqcpy36GQj20XeY6M7E,32376
|
38
38
|
pyegeria/commands/cli/egeria_cat.py,sha256=-rfM7WKtXwV0OkMF0gMN2YF9lcrtLtSb9TToKoZPR_w,15316
|
39
39
|
pyegeria/commands/cli/egeria_my.py,sha256=Memyxzhrn_i3nMNRor-5N40_SKJJMzylA4iQgBW3T4g,6235
|
40
|
-
pyegeria/commands/cli/egeria_ops.py,sha256
|
40
|
+
pyegeria/commands/cli/egeria_ops.py,sha256=aI3BU7btQa0ZrT3LDXto4gLWzLn2qoS4r499eHoAntc,11998
|
41
41
|
pyegeria/commands/cli/egeria_tech.py,sha256=iq5D-dl0KW1HbNG8AolJSZoR6hTLp90RD_JjHxVj9Pk,13313
|
42
42
|
pyegeria/commands/cli/ops_config.py,sha256=m4AfPjf-fR4EBTx8Dc2mcgrfWwAxb30YGeV-v79bg4U,1450
|
43
43
|
pyegeria/commands/my/README.md,sha256=ZheFhj_VoPMhcWjW3pGchHB0vH_A9PklSmrSkzKdrcQ,844
|
@@ -56,8 +56,8 @@ pyegeria/commands/ops/load_archive.py,sha256=ZsJmQ-2cywsiO5RYHQXFF72wrlBK18jvAky
|
|
56
56
|
pyegeria/commands/ops/monitor_asset_events.py,sha256=cjdlVqE0XYnoRW3aorNbsVkjByDXefPBnllaZLelGls,3838
|
57
57
|
pyegeria/commands/ops/monitor_engine_activity.py,sha256=m18OSnRoo5ut0WKKOWNoFGXJW_npjp6hzHK3RUQG8T0,8479
|
58
58
|
pyegeria/commands/ops/monitor_engine_activity_c.py,sha256=rSEUD3elhsiYdUhQRn613OM_R4VecFb0uq39MhYhltQ,9371
|
59
|
-
pyegeria/commands/ops/monitor_gov_eng_status.py,sha256=
|
60
|
-
pyegeria/commands/ops/monitor_integ_daemon_status.py,sha256
|
59
|
+
pyegeria/commands/ops/monitor_gov_eng_status.py,sha256=wQ8KBjPJXYUVob7jxgpsS40x8J4wXzt41dmsBnygD-M,8017
|
60
|
+
pyegeria/commands/ops/monitor_integ_daemon_status.py,sha256=-qOHNTmuzflUNxuSifZT_seCTyVKDJPrrIIXj17o7xY,9961
|
61
61
|
pyegeria/commands/ops/monitor_platform_status.py,sha256=xmngiuQK9X6X4-stGSITzfMSAdqpswVk-DY7kh8M0P0,6401
|
62
62
|
pyegeria/commands/ops/monitor_server_startup.py,sha256=0pwnhv761uuFHGJXVANa5RhQQPPTXFldJ45TfeT7qfk,3901
|
63
63
|
pyegeria/commands/ops/monitor_server_status.py,sha256=eeZY4o_HwrH-csrhHPi95LLGu00j6AYl48A7fDYTG34,6061
|
@@ -81,7 +81,7 @@ pyegeria/commands/tech/list_registered_services.py,sha256=QzE_ebdopNkHWMxa-xc902
|
|
81
81
|
pyegeria/commands/tech/list_related_elements.py,sha256=mcOy3RIGpIdshcT1o4Tr7Ck-c1dmAC8yBUOF5GAFYrM,7755
|
82
82
|
pyegeria/commands/tech/list_related_specification.py,sha256=mWrKenXOskL4cl0DHjH2Z8M9-FJzjkzK62W-tsx3WDU,5918
|
83
83
|
pyegeria/commands/tech/list_relationship_types.py,sha256=BlVzrPznZXqMVLN2-2vYEVRGeYsiJrqXxIJEikobyoo,5875
|
84
|
-
pyegeria/commands/tech/list_tech_templates.py,sha256=
|
84
|
+
pyegeria/commands/tech/list_tech_templates.py,sha256=FIeYWnJY2bVUrfDQBJX2bpkp5cU7uPak52eJtB4vVu4,14146
|
85
85
|
pyegeria/commands/tech/list_valid_metadata_values.py,sha256=N3D0_BmREPszgde3uvvYdfzq7DJ46uMOv2t1vtncGsw,6333
|
86
86
|
pyegeria/commands/tech/table_tech_templates.py,sha256=xa_mA10P_6Su3zRsvyoZhWoSUQ5LuyLTG1kNCumzxZA,7268
|
87
87
|
pyegeria/commands/tech/x_list_related_elements.py,sha256=qBsf1619cecaMCTzG0MG22fAT32WNH2Z3CXrjo9z-5Y,5853
|
@@ -107,8 +107,8 @@ pyegeria/template_manager_omvs.py,sha256=heqbKeum5hPCHap4r1RUZU8YB3QaQlxVNbq4GZi
|
|
107
107
|
pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
|
108
108
|
pyegeria/valid_metadata_omvs.py,sha256=tfCGXed5LLt59YA8uZNNtd9UJ-lRZfPU_uZxK31Yux0,65069
|
109
109
|
pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
|
110
|
-
pyegeria-1.5.1.1.
|
111
|
-
pyegeria-1.5.1.1.
|
112
|
-
pyegeria-1.5.1.1.
|
113
|
-
pyegeria-1.5.1.1.
|
114
|
-
pyegeria-1.5.1.1.
|
110
|
+
pyegeria-1.5.1.1.26.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
111
|
+
pyegeria-1.5.1.1.26.dist-info/METADATA,sha256=k34zz3ctsWFwyUDp7nvIEO2z_71uWpa-VZa0AFRUBvI,2998
|
112
|
+
pyegeria-1.5.1.1.26.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
113
|
+
pyegeria-1.5.1.1.26.dist-info/entry_points.txt,sha256=49rVcJuuKXUSC-9ZNzr-ybsaUL-wm6xrUodCZeKJdGc,4898
|
114
|
+
pyegeria-1.5.1.1.26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|