pyegeria 1.5.1.1.56__py3-none-any.whl → 1.5.1.1.58__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/asset_catalog_omvs.py +3 -3
- pyegeria/commands/cat/list_assets.py +60 -39
- pyegeria/commands/cli/egeria.py +61 -26
- pyegeria/commands/cli/egeria_cat.py +7 -19
- pyegeria/commands/cli/egeria_my.py +0 -13
- pyegeria/commands/cli/egeria_ops.py +0 -13
- pyegeria/commands/cli/egeria_tech.py +53 -25
- pyegeria/commands/cli/ops_config.py +18 -9
- pyegeria/commands/doc/command-overview.md +77 -75
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/hey_egeria: overview.md +42 -2
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
- pyegeria/commands/tech/{get_element_graph.py → list_element_graph.py} +2 -2
- {pyegeria-1.5.1.1.56.dist-info → pyegeria-1.5.1.1.58.dist-info}/METADATA +1 -1
- {pyegeria-1.5.1.1.56.dist-info → pyegeria-1.5.1.1.58.dist-info}/RECORD +19 -24
- {pyegeria-1.5.1.1.56.dist-info → pyegeria-1.5.1.1.58.dist-info}/entry_points.txt +1 -1
- pyegeria/.DS_Store +0 -0
- pyegeria/commands/.DS_Store +0 -0
- pyegeria/commands/doc/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/images/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/images/CleanShot 2024-11-12 out-integ-status-live 2024-11-12 at 16.44.12at 16.44.12@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/.DS_Store +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store +0 -0
- {pyegeria-1.5.1.1.56.dist-info → pyegeria-1.5.1.1.58.dist-info}/LICENSE +0 -0
- {pyegeria-1.5.1.1.56.dist-info → pyegeria-1.5.1.1.58.dist-info}/WHEEL +0 -0
pyegeria/asset_catalog_omvs.py
CHANGED
@@ -302,7 +302,7 @@ class AssetCatalog(Client):
|
|
302
302
|
# Engine Actions
|
303
303
|
#
|
304
304
|
|
305
|
-
async def
|
305
|
+
async def _async_find_in_asset_domain(
|
306
306
|
self,
|
307
307
|
search_string: str,
|
308
308
|
start_from: int = 0,
|
@@ -367,7 +367,7 @@ class AssetCatalog(Client):
|
|
367
367
|
response = await self._async_make_request("POST", url, body, time_out=time_out)
|
368
368
|
return response.json().get("searchMatches", "no assets found")
|
369
369
|
|
370
|
-
def
|
370
|
+
def find_in_asset_domain(
|
371
371
|
self,
|
372
372
|
search_string: str,
|
373
373
|
start_from: int = 0,
|
@@ -416,7 +416,7 @@ class AssetCatalog(Client):
|
|
416
416
|
"""
|
417
417
|
loop = asyncio.get_event_loop()
|
418
418
|
response = loop.run_until_complete(
|
419
|
-
self.
|
419
|
+
self._async_find_in_asset_domain(
|
420
420
|
search_string,
|
421
421
|
start_from,
|
422
422
|
page_size,
|
@@ -24,35 +24,47 @@ from pyegeria import (
|
|
24
24
|
PropertyServerException,
|
25
25
|
UserNotAuthorizedException,
|
26
26
|
print_exception_response,
|
27
|
-
AssetCatalog
|
27
|
+
AssetCatalog,
|
28
28
|
)
|
29
|
+
|
29
30
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
30
|
-
EGERIA_KAFKA_ENDPOINT = os.environ.get(
|
31
|
-
EGERIA_PLATFORM_URL = os.environ.get(
|
32
|
-
EGERIA_VIEW_SERVER = os.environ.get(
|
33
|
-
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
32
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
33
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
34
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
35
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
36
|
+
)
|
37
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
38
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
39
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
40
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
41
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
42
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
43
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
41
44
|
|
42
45
|
|
43
46
|
disable_ssl_warnings = True
|
44
47
|
|
45
48
|
|
46
|
-
def display_assets(
|
47
|
-
|
49
|
+
def display_assets(
|
50
|
+
search_string: str,
|
51
|
+
server: str,
|
52
|
+
url: str,
|
53
|
+
username: str,
|
54
|
+
user_password: str,
|
55
|
+
time_out: int = 60,
|
56
|
+
jupyter: bool = EGERIA_JUPYTER,
|
57
|
+
width: int = EGERIA_WIDTH,
|
58
|
+
):
|
48
59
|
console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
|
49
60
|
if (search_string is None) or (len(search_string) < 3):
|
50
|
-
raise ValueError(
|
61
|
+
raise ValueError(
|
62
|
+
"Invalid Search String - must be greater than four characters long"
|
63
|
+
)
|
51
64
|
g_client = AssetCatalog(server, url, username)
|
52
65
|
token = g_client.create_egeria_bearer_token(username, user_password)
|
53
66
|
|
54
|
-
|
55
|
-
def generate_table(search_string:str = None) -> Table:
|
67
|
+
def generate_table(search_string: str = None) -> Table:
|
56
68
|
"""Make a new table."""
|
57
69
|
table = Table(
|
58
70
|
title=f"Assets containing the string {search_string} @ {time.asctime()}",
|
@@ -64,7 +76,7 @@ def display_assets(search_string: str, server: str, url: str, username: str, use
|
|
64
76
|
show_lines=True,
|
65
77
|
box=box.ROUNDED,
|
66
78
|
caption=f"View Server '{server}' @ Platform - {url}",
|
67
|
-
expand=True
|
79
|
+
expand=True,
|
68
80
|
)
|
69
81
|
table.add_column("Display Name", max_width=15)
|
70
82
|
table.add_column("Type Name")
|
@@ -73,21 +85,26 @@ def display_assets(search_string: str, server: str, url: str, username: str, use
|
|
73
85
|
# table.add_column("Qualified Name",max_width=15)
|
74
86
|
table.add_column("Matching Elements")
|
75
87
|
|
76
|
-
|
77
|
-
|
78
|
-
|
88
|
+
assets = g_client.find_in_asset_domain(
|
89
|
+
search_string,
|
90
|
+
starts_with=True,
|
91
|
+
ends_with=False,
|
92
|
+
ignore_case=True,
|
93
|
+
page_size=100,
|
94
|
+
time_out=time_out,
|
95
|
+
)
|
79
96
|
if type(assets) is str:
|
80
97
|
return table
|
81
98
|
|
82
99
|
for element in assets:
|
83
|
-
properties = element[
|
84
|
-
header = element[
|
85
|
-
nested = element.get(
|
100
|
+
properties = element["properties"]
|
101
|
+
header = element["elementHeader"]
|
102
|
+
nested = element.get("matchingElements", "---")
|
86
103
|
|
87
|
-
display_name = properties.get("displayName",
|
104
|
+
display_name = properties.get("displayName", "---")
|
88
105
|
# qualified_name = properties["qualifiedName"] # we decided that qualified name wasn't useful
|
89
106
|
type_name = header["type"]["typeName"]
|
90
|
-
tech_type = properties.get("deployedImplementationType",
|
107
|
+
tech_type = properties.get("deployedImplementationType", "---")
|
91
108
|
guid = header["guid"]
|
92
109
|
#### We decided that path wasn't useful
|
93
110
|
# path_name = element.get("extendedProperties", None)
|
@@ -103,20 +120,17 @@ def display_assets(search_string: str, server: str, url: str, username: str, use
|
|
103
120
|
match_tab.add_column("Properties")
|
104
121
|
|
105
122
|
for match_t in nested:
|
106
|
-
match = match_t[
|
107
|
-
match_type_name = match[
|
108
|
-
matching_guid = match[
|
109
|
-
match_props = match_t[
|
123
|
+
match = match_t["elementHeader"]
|
124
|
+
match_type_name = match["type"]["typeName"]
|
125
|
+
matching_guid = match["guid"]
|
126
|
+
match_props = match_t["properties"]
|
110
127
|
match_details_md = ""
|
111
128
|
for key in match_props.keys():
|
112
129
|
match_details_md += f"* {key}: {match_props[key]}\n"
|
113
130
|
match_details_out = Markdown(match_details_md)
|
114
131
|
match_tab.add_row(match_type_name, matching_guid, match_details_out)
|
115
132
|
|
116
|
-
|
117
|
-
table.add_row(
|
118
|
-
display_name, type_name,guid, tech_type, match_tab
|
119
|
-
)
|
133
|
+
table.add_row(display_name, type_name, guid, tech_type, match_tab)
|
120
134
|
|
121
135
|
g_client.close_session()
|
122
136
|
return table
|
@@ -130,13 +144,18 @@ def display_assets(search_string: str, server: str, url: str, username: str, use
|
|
130
144
|
with console.pager(styles=True):
|
131
145
|
console.print(generate_table(search_string), soft_wrap=True)
|
132
146
|
|
133
|
-
|
134
|
-
|
147
|
+
except (
|
148
|
+
InvalidParameterException,
|
149
|
+
PropertyServerException,
|
150
|
+
UserNotAuthorizedException,
|
151
|
+
) as e:
|
135
152
|
console.print_exception()
|
136
153
|
sys.exit(1)
|
137
154
|
|
138
155
|
except ValueError as e:
|
139
|
-
console.print(
|
156
|
+
console.print(
|
157
|
+
f"\n\n====> Invalid Search String - must be greater than four characters long"
|
158
|
+
)
|
140
159
|
sys.exit(1)
|
141
160
|
|
142
161
|
|
@@ -158,7 +177,9 @@ def main():
|
|
158
177
|
try:
|
159
178
|
search_string = Prompt.ask("Enter an asset search string:", default="")
|
160
179
|
display_assets(search_string, server, url, userid, user_pass, time_out)
|
161
|
-
except
|
180
|
+
except KeyboardInterrupt:
|
162
181
|
pass
|
182
|
+
|
183
|
+
|
163
184
|
if __name__ == "__main__":
|
164
|
-
main()
|
185
|
+
main()
|
pyegeria/commands/cli/egeria.py
CHANGED
@@ -23,6 +23,8 @@ from pyegeria.commands.cat.list_assets import display_assets
|
|
23
23
|
from pyegeria.commands.cat.list_cert_types import display_certifications
|
24
24
|
from pyegeria.commands.cat.list_terms import display_glossary_terms
|
25
25
|
from pyegeria.commands.cat.list_projects import display_project_list
|
26
|
+
from pyegeria.commands.tech.list_element_graph import display_element_graph
|
27
|
+
from pyegeria.commands.tech.list_elements_x import list_elements_x
|
26
28
|
from pyegeria.commands.tech.list_relationships import list_relationships
|
27
29
|
from pyegeria.commands.cat.list_tech_types import display_tech_types
|
28
30
|
from pyegeria.commands.cat.list_todos import display_to_dos as list_todos
|
@@ -214,8 +216,6 @@ def cli(
|
|
214
216
|
userid,
|
215
217
|
password,
|
216
218
|
timeout,
|
217
|
-
paging,
|
218
|
-
verbose,
|
219
219
|
jupyter,
|
220
220
|
width,
|
221
221
|
):
|
@@ -234,15 +234,11 @@ def cli(
|
|
234
234
|
userid,
|
235
235
|
password,
|
236
236
|
timeout,
|
237
|
-
paging,
|
238
|
-
verbose,
|
239
237
|
jupyter,
|
240
238
|
width,
|
241
239
|
)
|
242
240
|
ctx.max_content_width = 200
|
243
241
|
ctx.ensure_object(Config)
|
244
|
-
if verbose:
|
245
|
-
click.echo(f"we are in verbose mode - server is {server}")
|
246
242
|
|
247
243
|
|
248
244
|
#
|
@@ -388,6 +384,27 @@ def show_guid_infos(ctx, guid):
|
|
388
384
|
display_guid(guid, c.server, c.url, c.userid, c.password, c.jupyter, c.width)
|
389
385
|
|
390
386
|
|
387
|
+
@show_elements.command("element-graph")
|
388
|
+
@click.pass_context
|
389
|
+
@click.option("--search-string", help="value we are searching for")
|
390
|
+
@click.option(
|
391
|
+
"--prop-list", default="anchorTypeName", help="List of properties we are searching"
|
392
|
+
)
|
393
|
+
def list_element_graph(ctx, search_string: str, prop_list: str):
|
394
|
+
"""List elements with the specified properties"""
|
395
|
+
c = ctx.obj
|
396
|
+
display_element_graph(
|
397
|
+
search_string,
|
398
|
+
prop_list,
|
399
|
+
c.view_server,
|
400
|
+
c.view_server_url,
|
401
|
+
c.userid,
|
402
|
+
c.password,
|
403
|
+
c.jupyter,
|
404
|
+
c.width,
|
405
|
+
)
|
406
|
+
|
407
|
+
|
391
408
|
@show_elements.command("related-specifications")
|
392
409
|
@click.pass_context
|
393
410
|
@click.argument("element-guid")
|
@@ -670,19 +687,36 @@ def valid_metadata_values(ctx, property, type_name):
|
|
670
687
|
|
671
688
|
@show_elements.command("elements")
|
672
689
|
@click.pass_context
|
690
|
+
@click.option(
|
691
|
+
"--extended",
|
692
|
+
is_flag=True,
|
693
|
+
default=False,
|
694
|
+
help="If True, feedback information is displayed",
|
695
|
+
)
|
673
696
|
@click.option("--om_type", default="Organization", help="Metadata type to query")
|
674
|
-
def list_element_info(ctx, om_type):
|
675
|
-
"""Display
|
697
|
+
def list_element_info(ctx, om_type, extended):
|
698
|
+
"""Display elements of a specific Open Metadata Type"""
|
676
699
|
c = ctx.obj
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
700
|
+
if extended:
|
701
|
+
list_elements_x(
|
702
|
+
om_type,
|
703
|
+
c.view_server,
|
704
|
+
c.view_server_url,
|
705
|
+
c.userid,
|
706
|
+
c.password,
|
707
|
+
c.jupyter,
|
708
|
+
c.width,
|
709
|
+
)
|
710
|
+
else:
|
711
|
+
list_elements(
|
712
|
+
om_type,
|
713
|
+
c.view_server,
|
714
|
+
c.view_server_url,
|
715
|
+
c.userid,
|
716
|
+
c.password,
|
717
|
+
c.jupyter,
|
718
|
+
c.width,
|
719
|
+
)
|
686
720
|
|
687
721
|
|
688
722
|
@show_tech_info.command("processes")
|
@@ -705,7 +739,7 @@ def list_element_info(ctx):
|
|
705
739
|
@click.pass_context
|
706
740
|
@click.option("--om_type", default="Project", help="Metadata type to query")
|
707
741
|
def get_element_info(ctx, om_type):
|
708
|
-
"""Display
|
742
|
+
"""Display a table of elements for an Open Metadata Type"""
|
709
743
|
c = ctx.obj
|
710
744
|
display_elements(
|
711
745
|
om_type,
|
@@ -947,7 +981,7 @@ def show_certification_types(ctx, search_string):
|
|
947
981
|
@show_cat_info.command("asset-types")
|
948
982
|
@click.pass_context
|
949
983
|
def show_asset_types(ctx):
|
950
|
-
"""Display
|
984
|
+
"""Display known asset types"""
|
951
985
|
c = ctx.obj
|
952
986
|
display_asset_types(
|
953
987
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -1029,7 +1063,7 @@ def show_todos(ctx, search_string, status):
|
|
1029
1063
|
@show_cat_info.command("user-ids")
|
1030
1064
|
@click.pass_context
|
1031
1065
|
def show_todos(ctx):
|
1032
|
-
"""Display a
|
1066
|
+
"""Display a list of known user ids"""
|
1033
1067
|
c = ctx.obj
|
1034
1068
|
list_user_ids(
|
1035
1069
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -1051,6 +1085,7 @@ def deployed_data(ctx):
|
|
1051
1085
|
)
|
1052
1086
|
@click.pass_context
|
1053
1087
|
def show_deployed_servers(ctx, search_string):
|
1088
|
+
"""Display deployed servers"""
|
1054
1089
|
c = ctx.obj
|
1055
1090
|
display_servers_by_dep_imp(
|
1056
1091
|
search_string,
|
@@ -1067,7 +1102,7 @@ def show_deployed_servers(ctx, search_string):
|
|
1067
1102
|
@click.option("--catalog", default="*", help="What database or catalog to search")
|
1068
1103
|
@click.pass_context
|
1069
1104
|
def deployed_schemas(ctx, catalog):
|
1070
|
-
"""Display
|
1105
|
+
"""Display deployed schemas"""
|
1071
1106
|
c = ctx.obj
|
1072
1107
|
list_deployed_database_schemas(
|
1073
1108
|
catalog,
|
@@ -1084,7 +1119,7 @@ def deployed_schemas(ctx, catalog):
|
|
1084
1119
|
@click.option("--search_server", default="*", help="Server to search for catalogs")
|
1085
1120
|
@click.pass_context
|
1086
1121
|
def list_catalogs(ctx, search_server):
|
1087
|
-
"""Display
|
1122
|
+
"""Display deployed catalogs"""
|
1088
1123
|
c = ctx.obj
|
1089
1124
|
list_deployed_catalogs(
|
1090
1125
|
search_server,
|
@@ -1100,7 +1135,7 @@ def list_catalogs(ctx, search_server):
|
|
1100
1135
|
@deployed_data.command("databases")
|
1101
1136
|
@click.pass_context
|
1102
1137
|
def list_databases(ctx):
|
1103
|
-
"""Display
|
1138
|
+
"""Display deployed databases"""
|
1104
1139
|
c = ctx.obj
|
1105
1140
|
list_deployed_databases(
|
1106
1141
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -1299,7 +1334,7 @@ def show_tech_type_elements(ctx, tech_type):
|
|
1299
1334
|
)
|
1300
1335
|
@click.pass_context
|
1301
1336
|
def show_asset_graph(ctx, root_collection):
|
1302
|
-
"""Display
|
1337
|
+
"""Display information about a collection"""
|
1303
1338
|
c = ctx.obj
|
1304
1339
|
collection_viewer(
|
1305
1340
|
root_collection,
|
@@ -1360,8 +1395,8 @@ def show_todos(ctx, search_string, status):
|
|
1360
1395
|
|
1361
1396
|
@show_cat_info.command("user-ids")
|
1362
1397
|
@click.pass_context
|
1363
|
-
def
|
1364
|
-
"""Display
|
1398
|
+
def show_user_ids(ctx):
|
1399
|
+
"""Display table of known user ids"""
|
1365
1400
|
c = ctx.obj
|
1366
1401
|
list_user_ids(
|
1367
1402
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -140,13 +140,6 @@ from pyegeria.commands.tech.list_asset_types import display_asset_types
|
|
140
140
|
help="Egeria user password",
|
141
141
|
)
|
142
142
|
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
143
|
-
@click.option("--verbose", is_flag=True, default=False, help="Enable verbose mode")
|
144
|
-
@click.option(
|
145
|
-
"--paging",
|
146
|
-
is_flag=True,
|
147
|
-
default=False,
|
148
|
-
help="Enable paging snapshots vs live updates",
|
149
|
-
)
|
150
143
|
@click.option(
|
151
144
|
"--jupyter",
|
152
145
|
is_flag=True,
|
@@ -176,8 +169,6 @@ def cli(
|
|
176
169
|
userid,
|
177
170
|
password,
|
178
171
|
timeout,
|
179
|
-
paging,
|
180
|
-
verbose,
|
181
172
|
jupyter,
|
182
173
|
width,
|
183
174
|
):
|
@@ -196,15 +187,11 @@ def cli(
|
|
196
187
|
userid,
|
197
188
|
password,
|
198
189
|
timeout,
|
199
|
-
paging,
|
200
|
-
verbose,
|
201
190
|
jupyter,
|
202
191
|
width,
|
203
192
|
)
|
204
193
|
ctx.max_content_width = 200
|
205
194
|
ctx.ensure_object(Config)
|
206
|
-
if verbose:
|
207
|
-
click.echo(f"we are in verbose mode - server is {server}")
|
208
195
|
|
209
196
|
|
210
197
|
@cli.group("show")
|
@@ -341,7 +328,7 @@ def show_terms(ctx, search_string, glossary_guid, glossary_name):
|
|
341
328
|
@click.option("--search_string", default="*", help="Name to search for glossaries")
|
342
329
|
@click.pass_context
|
343
330
|
def glossaries(ctx, search_string):
|
344
|
-
"""Display
|
331
|
+
"""Display information about a collection"""
|
345
332
|
c = ctx.obj
|
346
333
|
display_glossaries(
|
347
334
|
search_string,
|
@@ -504,8 +491,8 @@ def show_asset_types(ctx):
|
|
504
491
|
|
505
492
|
@info.command("user-ids")
|
506
493
|
@click.pass_context
|
507
|
-
def
|
508
|
-
"""Display a
|
494
|
+
def show_user_ids(ctx):
|
495
|
+
"""Display a list of known user ids"""
|
509
496
|
c = ctx.obj
|
510
497
|
list_user_ids(
|
511
498
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -527,6 +514,7 @@ def deployed_data(ctx):
|
|
527
514
|
)
|
528
515
|
@click.pass_context
|
529
516
|
def show_deployed_servers(ctx, search_string):
|
517
|
+
"""Display deployed servers"""
|
530
518
|
c = ctx.obj
|
531
519
|
display_servers_by_dep_imp(
|
532
520
|
search_string,
|
@@ -543,7 +531,7 @@ def show_deployed_servers(ctx, search_string):
|
|
543
531
|
@click.option("--catalog", default="*", help="What database or catalog to search")
|
544
532
|
@click.pass_context
|
545
533
|
def deployed_schemas(ctx, catalog):
|
546
|
-
"""Display
|
534
|
+
"""Display deployed schemas"""
|
547
535
|
c = ctx.obj
|
548
536
|
list_deployed_database_schemas(
|
549
537
|
catalog,
|
@@ -560,7 +548,7 @@ def deployed_schemas(ctx, catalog):
|
|
560
548
|
@click.option("--search_server", default="*", help="Server to search for catalogs")
|
561
549
|
@click.pass_context
|
562
550
|
def list_catalogs(ctx, search_server):
|
563
|
-
"""Display
|
551
|
+
"""Display deployed catalogs"""
|
564
552
|
c = ctx.obj
|
565
553
|
list_deployed_catalogs(
|
566
554
|
search_server,
|
@@ -576,7 +564,7 @@ def list_catalogs(ctx, search_server):
|
|
576
564
|
@deployed_data.command("databases")
|
577
565
|
@click.pass_context
|
578
566
|
def list_databases(ctx):
|
579
|
-
"""Display
|
567
|
+
"""Display deployed databases"""
|
580
568
|
c = ctx.obj
|
581
569
|
list_deployed_databases(
|
582
570
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -115,13 +115,6 @@ from pyegeria.commands.my.todo_actions import (
|
|
115
115
|
help="Egeria user password",
|
116
116
|
)
|
117
117
|
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
118
|
-
@click.option("--verbose", is_flag=True, default=False, help="Enable verbose mode")
|
119
|
-
@click.option(
|
120
|
-
"--paging",
|
121
|
-
is_flag=True,
|
122
|
-
default=False,
|
123
|
-
help="Enable paging snapshots vs live updates",
|
124
|
-
)
|
125
118
|
@click.option(
|
126
119
|
"--jupyter",
|
127
120
|
is_flag=True,
|
@@ -151,8 +144,6 @@ def cli(
|
|
151
144
|
userid,
|
152
145
|
password,
|
153
146
|
timeout,
|
154
|
-
paging,
|
155
|
-
verbose,
|
156
147
|
jupyter,
|
157
148
|
width,
|
158
149
|
):
|
@@ -171,15 +162,11 @@ def cli(
|
|
171
162
|
userid,
|
172
163
|
password,
|
173
164
|
timeout,
|
174
|
-
paging,
|
175
|
-
verbose,
|
176
165
|
jupyter,
|
177
166
|
width,
|
178
167
|
)
|
179
168
|
ctx.max_content_width = 200
|
180
169
|
ctx.ensure_object(Config)
|
181
|
-
if verbose:
|
182
|
-
click.echo(f"we are in verbose mode - server is {server}")
|
183
170
|
|
184
171
|
|
185
172
|
@cli.group("show")
|
@@ -129,13 +129,6 @@ from pyegeria.commands.ops.list_archives import display_archive_list
|
|
129
129
|
help="Egeria user password",
|
130
130
|
)
|
131
131
|
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
132
|
-
@click.option("--verbose", is_flag=True, default=False, help="Enable verbose mode")
|
133
|
-
@click.option(
|
134
|
-
"--paging",
|
135
|
-
is_flag=True,
|
136
|
-
default=False,
|
137
|
-
help="Enable paging snapshots vs live updates",
|
138
|
-
)
|
139
132
|
@click.option(
|
140
133
|
"--jupyter",
|
141
134
|
is_flag=True,
|
@@ -165,8 +158,6 @@ def cli(
|
|
165
158
|
userid,
|
166
159
|
password,
|
167
160
|
timeout,
|
168
|
-
paging,
|
169
|
-
verbose,
|
170
161
|
jupyter,
|
171
162
|
width,
|
172
163
|
):
|
@@ -185,15 +176,11 @@ def cli(
|
|
185
176
|
userid,
|
186
177
|
password,
|
187
178
|
timeout,
|
188
|
-
paging,
|
189
|
-
verbose,
|
190
179
|
jupyter,
|
191
180
|
width,
|
192
181
|
)
|
193
182
|
ctx.max_content_width = 200
|
194
183
|
ctx.ensure_object(Config)
|
195
|
-
if verbose:
|
196
|
-
click.echo(f"we are in verbose mode - server is {server}")
|
197
184
|
|
198
185
|
|
199
186
|
@cli.group("show")
|
@@ -17,12 +17,15 @@ from pyegeria.commands.cli.ops_config import Config
|
|
17
17
|
from pyegeria.commands.tech.get_guid_info import display_guid
|
18
18
|
from pyegeria.commands.tech.get_tech_details import tech_details_viewer
|
19
19
|
from pyegeria.commands.tech.list_asset_types import display_asset_types
|
20
|
+
from pyegeria.commands.tech.list_elements_x import list_elements_x
|
20
21
|
from pyegeria.commands.tech.list_registered_services import display_registered_svcs
|
21
22
|
from pyegeria.commands.tech.list_relationship_types import display_relationship_types
|
22
23
|
from pyegeria.commands.tech.list_tech_templates import display_templates_spec
|
23
24
|
from pyegeria.commands.tech.list_valid_metadata_values import display_metadata_values
|
24
25
|
from pyegeria.commands.tech.get_tech_type_template import template_viewer
|
26
|
+
from pyegeria.commands.tech.list_element_graph import display_element_graph
|
25
27
|
from pyegeria.commands.tech.list_elements import list_elements
|
28
|
+
|
26
29
|
from pyegeria.commands.tech.get_element_info import display_elements
|
27
30
|
from pyegeria.commands.tech.list_related_specification import (
|
28
31
|
display_related_specification,
|
@@ -126,13 +129,6 @@ from pyegeria.commands.tech.get_tech_type_template import template_viewer
|
|
126
129
|
help="Egeria user password",
|
127
130
|
)
|
128
131
|
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
129
|
-
@click.option("--verbose", is_flag=True, default=False, help="Enable verbose mode")
|
130
|
-
@click.option(
|
131
|
-
"--paging",
|
132
|
-
is_flag=True,
|
133
|
-
default=False,
|
134
|
-
help="Enable paging snapshots vs live updates",
|
135
|
-
)
|
136
132
|
@click.option(
|
137
133
|
"--jupyter",
|
138
134
|
is_flag=True,
|
@@ -162,8 +158,6 @@ def cli(
|
|
162
158
|
userid,
|
163
159
|
password,
|
164
160
|
timeout,
|
165
|
-
paging,
|
166
|
-
verbose,
|
167
161
|
jupyter,
|
168
162
|
width,
|
169
163
|
):
|
@@ -182,15 +176,11 @@ def cli(
|
|
182
176
|
userid,
|
183
177
|
password,
|
184
178
|
timeout,
|
185
|
-
paging,
|
186
|
-
verbose,
|
187
179
|
jupyter,
|
188
180
|
width,
|
189
181
|
)
|
190
182
|
ctx.max_content_width = 200
|
191
183
|
ctx.ensure_object(Config)
|
192
|
-
if verbose:
|
193
|
-
click.echo(f"we are in verbose mode - server is {server}")
|
194
184
|
|
195
185
|
|
196
186
|
@cli.group("show")
|
@@ -250,6 +240,27 @@ def show_related_specifications(ctx, element_guid):
|
|
250
240
|
)
|
251
241
|
|
252
242
|
|
243
|
+
@show_elements.command("element-graph")
|
244
|
+
@click.pass_context
|
245
|
+
@click.option("--search-string", help="value we are searching for")
|
246
|
+
@click.option(
|
247
|
+
"--prop-list", default="anchorTypeName", help="List of properties we are searching"
|
248
|
+
)
|
249
|
+
def list_element_graph(ctx, search_string: str, prop_list: str):
|
250
|
+
"""List elements with the specified properties"""
|
251
|
+
c = ctx.obj
|
252
|
+
display_element_graph(
|
253
|
+
search_string,
|
254
|
+
prop_list,
|
255
|
+
c.view_server,
|
256
|
+
c.view_server_url,
|
257
|
+
c.userid,
|
258
|
+
c.password,
|
259
|
+
c.jupyter,
|
260
|
+
c.width,
|
261
|
+
)
|
262
|
+
|
263
|
+
|
253
264
|
@show_tech.command("tech-types")
|
254
265
|
@click.option("--search-string", default="*", help="Tech type to search for")
|
255
266
|
@click.pass_context
|
@@ -314,7 +325,7 @@ def show_tech_type_templates(ctx, tech_type):
|
|
314
325
|
@show_info.command("asset-types")
|
315
326
|
@click.pass_context
|
316
327
|
def show_asset_types(ctx):
|
317
|
-
"""Display
|
328
|
+
"""Display known asset types"""
|
318
329
|
c = ctx.obj
|
319
330
|
display_asset_types(
|
320
331
|
c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width
|
@@ -512,19 +523,36 @@ def valid_metadata_values(ctx, property, type_name):
|
|
512
523
|
|
513
524
|
@show_elements.command("elements")
|
514
525
|
@click.pass_context
|
526
|
+
@click.option(
|
527
|
+
"--extended",
|
528
|
+
is_flag=True,
|
529
|
+
default=False,
|
530
|
+
help="If True, feedback information is displayed",
|
531
|
+
)
|
515
532
|
@click.option("--om_type", default="Organization", help="Metadata type to query")
|
516
|
-
def list_element_info(ctx, om_type):
|
517
|
-
"""Display
|
533
|
+
def list_element_info(ctx, om_type, extended):
|
534
|
+
"""Display elements of a specific Open Metadata Type"""
|
518
535
|
c = ctx.obj
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
536
|
+
if extended:
|
537
|
+
list_elements_x(
|
538
|
+
om_type,
|
539
|
+
c.view_server,
|
540
|
+
c.view_server_url,
|
541
|
+
c.userid,
|
542
|
+
c.password,
|
543
|
+
c.jupyter,
|
544
|
+
c.width,
|
545
|
+
)
|
546
|
+
else:
|
547
|
+
list_elements(
|
548
|
+
om_type,
|
549
|
+
c.view_server,
|
550
|
+
c.view_server_url,
|
551
|
+
c.userid,
|
552
|
+
c.password,
|
553
|
+
c.jupyter,
|
554
|
+
c.width,
|
555
|
+
)
|
528
556
|
|
529
557
|
|
530
558
|
@show_info.command("processes")
|
@@ -2,13 +2,24 @@ import click
|
|
2
2
|
|
3
3
|
|
4
4
|
class Config(object):
|
5
|
-
def __init__(
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
def __init__(
|
6
|
+
self,
|
7
|
+
server: str = None,
|
8
|
+
url: str = None,
|
9
|
+
view_server: str = "view-server",
|
10
|
+
view_server_url: str = "https://localhost:9443",
|
11
|
+
integration_daemon: str = "integration-daemon",
|
12
|
+
integration_daemon_url: str = "https://localhost:9443",
|
13
|
+
engine_host: str = "engine-host",
|
14
|
+
engine_host_url: str = "https://localhost:9443",
|
15
|
+
admin_user: str = "garygeeke",
|
16
|
+
admin_user_password: str = "secret",
|
17
|
+
userid: str = None,
|
18
|
+
password: str = None,
|
19
|
+
timeout: int = 30,
|
20
|
+
jupyter: bool = False,
|
21
|
+
width: int = 200,
|
22
|
+
):
|
12
23
|
self.metadata_store = server
|
13
24
|
self.metadata_store_url = url
|
14
25
|
self.view_server = view_server
|
@@ -22,8 +33,6 @@ class Config(object):
|
|
22
33
|
self.userid = userid
|
23
34
|
self.password = password
|
24
35
|
self.timeout = timeout
|
25
|
-
self.paging = paging
|
26
|
-
self.verbose = verbose
|
27
36
|
self.jupyter = jupyter
|
28
37
|
self.width = width
|
29
38
|
self.server = server
|
@@ -16,81 +16,83 @@
|
|
16
16
|
|
17
17
|
# Command Reference
|
18
18
|
|
19
|
-
| Command | Purpose
|
20
|
-
|
21
|
-
| change_todo_status |
|
22
|
-
| create_glossary |
|
23
|
-
| create_term |
|
24
|
-
| create_todo |
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
19
|
+
| Command | Purpose | Cat | My | Ops | Tech | python |
|
20
|
+
|------------------------------------|-----------------------------------------------------|-----|----|-----|------|--------|
|
21
|
+
| change_todo_status | Update a ToDo item status | | ✓ | | | |
|
22
|
+
| create_glossary | Create a new glossary | ✓ | | | | |
|
23
|
+
| create_term | Create a new term | ✓ | | | | |
|
24
|
+
| create_todo | Create a new ToDo item | | ✓ | | | |
|
25
|
+
| delete_glossary | Delete the specified glossary | ✓ | | | | |
|
26
|
+
| delete_term | Delete the specified term | ✓ | | | | |
|
27
|
+
| export_terms_to_file | Export the specified glossary | ✓ | | | | |
|
28
|
+
| get_asset_graph | Display a tree graph of information about an asset | ✓ | | | | |
|
29
|
+
| get_collection | Display a information about a collection | ✓ | | | | |
|
30
|
+
| get_element_graph | Return a table of elements and matching elements | | | | ✓ | |
|
31
|
+
| get_element_info | Display elements of a specific Open Metadata Type | | | | ✓ | |
|
32
|
+
| get_guid_info | Display information about GUID specified object | | | | ✓ | |
|
33
|
+
| get_project_dependencies | Show the dependencies of a project from a root | ✓ | | | | |
|
34
|
+
| get_project_structure | Show the organization structure of a project | ✓ | | | | |
|
35
|
+
| get_tech_details | Show details about a particular technology type | | | | ✓ | |
|
36
|
+
| get_tech_type_elements | Display elements of a specific technology type | ✓ | | | | |
|
37
|
+
| get_tech_type_template | Display the templates defined for a technology type | ✓ | | | | |
|
38
|
+
| hey_egeria | Textual User Interface for the pyegeria commands | | | | | |
|
39
|
+
| hey_egeria_cat | Textual User Interface for catalog use | | | | | |
|
40
|
+
| hey_egeria_my | Textual User Interface for personal use | | | | | |
|
41
|
+
| hey_egeria_ops | Textual User Interface for operations use | | | | | |
|
42
|
+
| hey_egeria_tech | Textual User Interface for technical use | | | | | |
|
43
|
+
| list_archives | Display the available archives known to Egeria | ✓ | | | | |
|
44
|
+
| list_asset_types | List the types of assets known to Egeria | | | | ✓ | |
|
45
|
+
| list_assets | Find and display assets in a domain | ✓ | | | | |
|
46
|
+
| list_catalog_targets | List the catalog target details for a connection | | | ✓ | | ✓ |
|
47
|
+
| list_cert_types | List certification types | ✓ | | | | |
|
48
|
+
| list_deployed_catalogs | List deployed catalogs | ✓ | | | | ✓ |
|
49
|
+
| list_deployed_databases | List deployed databases | ✓ | | | | ✓ |
|
50
|
+
| list_deployed_schemas | List deployed schemas | ✓ | | | | ✓ |
|
51
|
+
| list_deployed_servers | List deployed servers | ✓ | | | | |
|
52
|
+
| list_elements | Display table of Elements of an Open Metadata type | | | | ✓ | |
|
53
|
+
| list_elements_for_classification | List the elements of a classification | | | | ✓ | |
|
54
|
+
| list_engine_activity | List engine activity | | | ✓ | | |
|
55
|
+
| list_engine_activity_compressed | Compressed view of engine activity | | | ✓ | | ✓ |
|
56
|
+
| list_glossaries | List glossaries | ✓ | | | | ✓ |
|
57
|
+
| list_gov_action_processes | List governance action processes | | | | ✓ | |
|
58
|
+
| list_gov_eng_status | List the status of the governance engines | | | ✓ | | ✓ |
|
59
|
+
| list_integ_daemon_status | List status of an integration daemon server | | | ✓ | | ✓ |
|
60
|
+
| list_my_profile | List the details of the current user profile | | ✓ | | | |
|
61
|
+
| list_my_roles | List the roles of the current user | | ✓ | | | |
|
62
|
+
| list_projects | List projects filtered by search string | ✓ | | | | |
|
63
|
+
| list_registered_services | List all registered Egeria services | | | | ✓ | |
|
64
|
+
| list_related_elements | List elements related to a specific element | | | | ✓ | |
|
65
|
+
| list_related_specification | List details of related elements | | | | ✓ | |
|
66
|
+
| list_relationship_types | List types of relationships and their attributes | | | | ✓ | |
|
67
|
+
| list_relationships | List relationships for elements of a given type | ✓ | | | | |
|
68
|
+
| list_tech_templates | | | | | ✓ | |
|
69
|
+
| list_tech_types | | ✓ | | | | |
|
70
|
+
| list_terms | | ✓ | | | | ✓ |
|
71
|
+
| list_todos | | ✓ | | | | |
|
72
|
+
| list_user_ids | Display table of known user ids | ✓ | | | | |
|
73
|
+
| list_valid_metadata_values | | | | | ✓ | |
|
74
|
+
| load_archive | | | | ✓ | | |
|
75
|
+
| load_archive_tui | | | | ✓ | | |
|
76
|
+
| load_terms_from_file | | ✓ | | | | |
|
77
|
+
| mark_todo_complete | | | ✓ | | | |
|
78
|
+
| monitor_asset_events | | | | ✓ | | |
|
79
|
+
| monitor_coco_status | | | | ✓ | | |
|
80
|
+
| monitor_engine_activity | | | | ✓ | | |
|
81
|
+
| monitor_engine_activity_compressed | | | | ✓ | | |
|
82
|
+
| monitor_gov_eng_status | | | | ✓ | | |
|
83
|
+
| monitor_integ_daemon_status | | | | ✓ | | |
|
84
|
+
| monitor_my_todos | | | ✓ | | | |
|
85
|
+
| monitor_open_todos | | | ✓ | | | |
|
86
|
+
| monitor_platform_status | | | | ✓ | | |
|
87
|
+
| monitor_server_list | | | | ✓ | | |
|
88
|
+
| monitor_server_startup | | | | ✓ | | |
|
89
|
+
| monitor_server_status | | | | ✓ | | |
|
90
|
+
| reassign_todo | | | ✓ | | | |
|
91
|
+
| refresh_gov_eng_config | | | | ✓ | | |
|
92
|
+
| refresh_integration_daemon | | | | ✓ | | |
|
93
|
+
| restart_integration_daemon | | | | ✓ | | |
|
94
|
+
| start_daemon | | | | ✓ | | |
|
95
|
+
| stop_daemon | | | | ✓ | | |
|
94
96
|
|
95
97
|
----
|
96
98
|
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/),
|
@@ -1,8 +1,7 @@
|
|
1
1
|
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
2
2
|
<!-- Copyright Contributors to the Egeria project. -->
|
3
3
|
|
4
|
-
# Introduction
|
5
|
-
# Hey_Egeria
|
4
|
+
# Introduction to Hey_Egeria
|
6
5
|
|
7
6
|
Hey_Egeria is a friendly, easy to use command line interface (CLI) to make using Egeria easier and more transparent.
|
8
7
|
It is implemented as a set of pyegeria commands that allows users to manage and inspect Egeria artifacts through a simple terminal interface.
|
@@ -283,13 +282,54 @@ This section briefly discusses some more advanced topics on the use and extensio
|
|
283
282
|
As we have shown, CLI commands can be used directly in a terminal window without using the TUI.
|
284
283
|
For frequently used commands this can be a bit quicker.
|
285
284
|
|
285
|
+
We start with a terminal window and type `hey_egeria` and we see that we get a lot of help information, the commands that
|
286
|
+
are available at this point and optional parameters that we can pass:
|
287
|
+

|
288
|
+
We can add one of the commands to the end of the clause and see that the next set of commands to choose from. In the
|
289
|
+
following screenshot below we show incrementally building up the final command clause by clause. Till we finally have the
|
290
|
+
`hey_egeria cat show glossary glossaries`.
|
291
|
+

|
292
|
+
|
293
|
+
Of course, if we remember the command we can just type it in and execute it.
|
286
294
|
|
287
295
|
## Direct commands
|
296
|
+
Sometimes, especially when writing automation scripts, we may want to use a more terse set of commands.
|
297
|
+
Pyegeria has short-hand commands that are the rough equivalent of the CLI commands. For example,
|
298
|
+
the short-hand for:
|
299
|
+
|
300
|
+
`hey_egeria ops show servers status`
|
301
|
+
|
302
|
+
is
|
303
|
+
|
304
|
+
`monitor_server_status`
|
305
|
+
|
306
|
+
Each of these commands has a help option that lists the available parameters. For example:
|
307
|
+
|
308
|
+

|
309
|
+
|
310
|
+
The full list of available short-cut commands can be found by typing `pipx list`. It is also shown above in the
|
311
|
+
installation section.
|
312
|
+
|
288
313
|
## How this is implemented
|
314
|
+
|
315
|
+
The pyegeria commands are built in python using the [**click**](https://click.palletsprojects.com/en/stable/) package
|
316
|
+
for the CLI along with the [**Trogon**](https://github.com/Textualize/trogon) from Textualize to create the
|
317
|
+
CLI TUI. Most of the display commands make use of the [**Rich**](https://rich.readthedocs.io/en/stable/introduction.html)
|
318
|
+
library for visualization in a terminal environment.
|
319
|
+
|
289
320
|
## Making changes
|
321
|
+
All of the code for the CLI and for the pyegeria library itself (along with this documentation) can be found
|
322
|
+
on Github in the **egeria-python** repo at [pyegeria](https://github.com/odpi/egeria-python). This code is
|
323
|
+
Open Source with an Apache 2 license. You are free to use, copy and extend this code. However, if you are
|
324
|
+
interested, we would very much value your participation in the Egeria Community. We look forward to hearing from you!
|
290
325
|
|
291
326
|
# Feedback
|
292
327
|
|
328
|
+
The pyegeria CLI and Command set offer an evolving set of capabilities. We use these features daily - but perhaps
|
329
|
+
there are aspects that you either love or wish were different? We'd love to hear from you and learn from your use cases!
|
330
|
+
Feel free to raise an issue in Github - or better yet, join our slack channel and participate in the community.
|
331
|
+
|
332
|
+
|
293
333
|
|
294
334
|
|
295
335
|
|
Binary file
|
Binary file
|
Binary file
|
@@ -6,7 +6,7 @@ Copyright Contributors to the ODPi Egeria project.
|
|
6
6
|
Unit tests for the Utils helper functions using the Pytest framework.
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
Retrieve elements based on a search of a specified properties.
|
10
10
|
"""
|
11
11
|
import argparse
|
12
12
|
import os
|
@@ -46,7 +46,7 @@ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "260"))
|
|
46
46
|
disable_ssl_warnings = True
|
47
47
|
|
48
48
|
|
49
|
-
def
|
49
|
+
def display_element_graph(
|
50
50
|
search_string: str,
|
51
51
|
prop_list: [str],
|
52
52
|
server: str,
|
@@ -1,4 +1,3 @@
|
|
1
|
-
pyegeria/.DS_Store,sha256=W8hFhIhY0-R0dv5qB0NhZk1yrRcwZ9rvq0hhe7jtehY,6148
|
2
1
|
pyegeria/README.md,sha256=PwX5OC7-YSZUCIsoyHh1O-WBM2hE84sm3Bd4O353NOk,1464
|
3
2
|
pyegeria/__init__.py,sha256=mZOa16y_LUUZevlHVQY-X_q0ZE2mEcgAE-eoe16DLls,21893
|
4
3
|
pyegeria/_client.py,sha256=pvUuiWRzK1qgEfKsX5QrPFjowvITkwqpOr_zGpZSDOY,30655
|
@@ -6,11 +5,10 @@ pyegeria/_deprecated_gov_engine.py,sha256=dWNcwVsE5__dF2u4QiIyQrssozzzOjBbLld8Md
|
|
6
5
|
pyegeria/_exceptions.py,sha256=NJ7vAhmvusK1ENvY2MMrBB6A6TgpYjzS9QJxFH56b8c,18470
|
7
6
|
pyegeria/_globals.py,sha256=1Uc8392wjbiVN5L__RzxC1-U97RMXj77_iUsMSgeAjQ,638
|
8
7
|
pyegeria/_validators.py,sha256=rnZelHJnjHaLZ8UhUTDyB59MfIUJifhALtkYoHBaos4,12736
|
9
|
-
pyegeria/asset_catalog_omvs.py,sha256=
|
8
|
+
pyegeria/asset_catalog_omvs.py,sha256=AmQDwAu9j3LQ9FRLxsmR8jr23RZBFNer8ZjtCijiyR0,24573
|
10
9
|
pyegeria/automated_curation_omvs.py,sha256=BwNuF7XQJAV-POvzaWwFh0TS5yRnHZZPhlayvtIMlwY,130243
|
11
10
|
pyegeria/classification_manager_omvs.py,sha256=aQQZGz53PkM3qh88tXiBXK4zHNvbNFDwwiNvQQSlwtw,187084
|
12
11
|
pyegeria/collection_manager_omvs.py,sha256=kye2kjthNnmwxMZhHQKV0xoHbxcNPWjNzRAYOItj_gY,99201
|
13
|
-
pyegeria/commands/.DS_Store,sha256=CABmmtYkvwnlckaTeiBEyd6K_1RjLKCC0jye43LZBa0,8196
|
14
12
|
pyegeria/commands/README.md,sha256=zNfWZppDxoKqTJeRtcewzku9z1m6_hKacCyQUQw1iq4,1974
|
15
13
|
pyegeria/commands/__init__.py,sha256=IBYAvBbuGneZ06YSFjZsU-Zxx-b-Qo4ZV_Vd4zz4AI0,844
|
16
14
|
pyegeria/commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
|
@@ -21,7 +19,7 @@ pyegeria/commands/cat/get_project_dependencies.py,sha256=B0JaMSUi0hzVgos1sTY2uUP
|
|
21
19
|
pyegeria/commands/cat/get_project_structure.py,sha256=n2GbNd07w1DTo7jTR8b2ewXRyNcat_2BcCBRyDMldwk,5969
|
22
20
|
pyegeria/commands/cat/get_tech_type_elements.py,sha256=-m3Q0BoNqkCtV8h75vMwTcOV-_ymEXmnJcr4Ec7WMAw,6180
|
23
21
|
pyegeria/commands/cat/glossary_actions.py,sha256=U9Pz__GTVU8aKM4XqjWK5cLjaB218d9QSXe0Sr5_uAI,12180
|
24
|
-
pyegeria/commands/cat/list_assets.py,sha256=
|
22
|
+
pyegeria/commands/cat/list_assets.py,sha256=hWXtWLYiQx-wIM1xWaxPlm2CyaGL2y9JomYKS--giPA,6639
|
25
23
|
pyegeria/commands/cat/list_cert_types.py,sha256=mbCls_EqC5JKG5rvS4o69k7KgZ6aNXlcqoJ3DtHsTFA,7127
|
26
24
|
pyegeria/commands/cat/list_deployed_catalogs.py,sha256=sdfhzK0Wqo59tpoX6jpjnBWl5MLdD1qzU0TcXC_QtsY,8140
|
27
25
|
pyegeria/commands/cat/list_deployed_database_schemas.py,sha256=g-O5Qk6t9mHl3yAYwHIbVWNxjy5bR4YOfvJ5YMoeMyw,9535
|
@@ -34,18 +32,14 @@ pyegeria/commands/cat/list_terms.py,sha256=1xHNMgB03OVxskj63vDS7-p1OEhMNyxvlTmg8
|
|
34
32
|
pyegeria/commands/cat/list_todos.py,sha256=iPxHRyW3X5tiREio4TUOwRPvNPjU0gxm3pVnUI79ir4,6542
|
35
33
|
pyegeria/commands/cat/list_user_ids.py,sha256=7JinL7rknPbGusIb8ikXKEaV1vvbuvx_WWtbmlfS_DY,5093
|
36
34
|
pyegeria/commands/cli/__init__.py,sha256=hpTVSMP2gnPRhcAZPdeUEsQ-eaDySlXlk239dNWYmng,292
|
37
|
-
pyegeria/commands/cli/egeria.py,sha256
|
38
|
-
pyegeria/commands/cli/egeria_cat.py,sha256=
|
39
|
-
pyegeria/commands/cli/egeria_my.py,sha256=
|
40
|
-
pyegeria/commands/cli/egeria_ops.py,sha256=
|
41
|
-
pyegeria/commands/cli/egeria_tech.py,sha256=
|
42
|
-
pyegeria/commands/cli/ops_config.py,sha256
|
43
|
-
pyegeria/commands/doc
|
44
|
-
pyegeria/commands/doc/command-overview.md,sha256=tnefqWz88GUMRi0TpcE5KAmeMCpvdSF6z4gVt8y_yzs,6673
|
45
|
-
pyegeria/commands/doc/glossary/.DS_Store,sha256=Wnz12QQr0lWsmfViLDHaDin30-503borBxFmXt1ST-o,6148
|
35
|
+
pyegeria/commands/cli/egeria.py,sha256=YJvaCIy4LuPH60pGtWpOXSG5WSNQooTAvNYwVPOn2f4,45524
|
36
|
+
pyegeria/commands/cli/egeria_cat.py,sha256=yaigbUEImJvo5fERLeiRo57rMJQjC5zHeQijHKUTcZg,15804
|
37
|
+
pyegeria/commands/cli/egeria_my.py,sha256=YsOy1rqDr9MFOoxpleXAo9dMlLI3NfHYf_NobKEdKk8,5888
|
38
|
+
pyegeria/commands/cli/egeria_ops.py,sha256=xw7C63jPgjQaogl7UZZJHoDnMzoZEMwy6oh1px053Cs,12265
|
39
|
+
pyegeria/commands/cli/egeria_tech.py,sha256=ldbT9LVo1wWLzIAR0sYR-7lFiQhAK5zZrw3SX-7NvUw,15064
|
40
|
+
pyegeria/commands/cli/ops_config.py,sha256=-fTndSzs1zDmWwKk8hu6FMtBwOyXrZKpIemgykhpigI,1379
|
41
|
+
pyegeria/commands/doc/command-overview.md,sha256=klICxH_Dh7fwp0DCokksfEaiNrMbVlttBSe0t655jMA,10229
|
46
42
|
pyegeria/commands/doc/glossary/basic-glossary-tui.md,sha256=2HoFDMCbIZuh4sBA1xRuu7qHQPyGwWS-JNUm5XNZ8JE,5880
|
47
|
-
pyegeria/commands/doc/glossary/images/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
48
|
-
pyegeria/commands/doc/glossary/images/CleanShot 2024-11-12 out-integ-status-live 2024-11-12 at 16.44.12at 16.44.12@2x.png,sha256=gJoPJi0vscycUI3qrkyIWa9df1SWXMZRZkoSij-NMrE,572163
|
49
43
|
pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png,sha256=rppVqEwN1ZrSMzyXnsYqDl7fnPs0zTlE7PMmX4VUbQI,203332
|
50
44
|
pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png,sha256=tV0h6i1eRAbvAzye8iuWt0eJ14y1Crk9DovaJLGJCSA,299425
|
51
45
|
pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png,sha256=i_SJAW_CeM0fNfZ3fLrZAKdrE9LHG1zHHui86pejlkg,22826
|
@@ -80,15 +74,16 @@ pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05
|
|
80
74
|
pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png,sha256=AAq9De5X-Qf_KPKZlHgaBk0nlSsc7Y3wra72L7vzvjs,326972
|
81
75
|
pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png,sha256=tLM_fX53WHDL3bALqvTugOsq_v-CcwaLQpJ0325gewE,347024
|
82
76
|
pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png,sha256=h0VE0ybRygOToKYnRplTwXcQlK4H7AzCySO7YEfkKuc,174761
|
83
|
-
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface
|
84
|
-
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/hey_egeria: overview.md,sha256=A-FRkpNaWMyVRZzmZYoqQZi1LB8zwsX2qVZggXDVjPk,16368
|
85
|
-
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
77
|
+
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/hey_egeria: overview.md,sha256=kCKj6rYTBj2De4XJYatP2X0m-7iS43r5zUTeLyDEVYE,18950
|
86
78
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png,sha256=8lfyO8prtahjTqqT4Uk3HSICipBpf1ly2bXp00csRb8,314990
|
87
79
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png,sha256=Ri4xBHuYzsMrOpoq48-3UkfQNLm9coJxLT_LJGNIU80,745535
|
80
|
+
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png,sha256=J9g754NN27AOk_OYUPI4o0A7cM5oHUqO-P5sjUmBsxM,387071
|
81
|
+
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png,sha256=unjegB4XMrKsunJ9fM7LDheId6eZ5NK5bbXTh1S8Acc,961408
|
88
82
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-list 2024-11-12 at 16.45.26.png,sha256=BJ1oK6Ds-Flyz5G2ve_OXUjwzyCjvUM6BrdP3wvFs7c,571445
|
89
83
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-live 2024-11-12 at 16.44.12@2x.png,sha256=M8qFds2-WSXLaaOeyNXPhpx0OWXwvfHCzZwYdKRvTMk,572140
|
90
84
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status 2024-11-10 at 18.15.42@2x.png,sha256=6lNUyaasNqKENohRu_Q_NFQ9sz77pOO0256IZTPDvj4,152025
|
91
85
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status-full 2024-11-10 at 18.25.14@2x.png,sha256=i5I7-eS6khcPTJ9Yao9vnge9qVMCJ-DyBM8TLNoNsNY,458855
|
86
|
+
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png,sha256=FUD-X-Txiim98G0xtenKhXsMDXwbztiWrid1h3br4IU,125890
|
92
87
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png,sha256=WP7FdqD_tZ7m0W-7eer-YhvUA_9T5pVPm46Av6yuqNw,1213272
|
93
88
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png,sha256=dp_u0abblSpe-osElW0m_2dP36meeOYI_AXCna66DRE,987553
|
94
89
|
pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-load-archive 2024-11-10 at 19.19.09@2x.png,sha256=VqI0ELwROkRCWAbVqAPVAq1mFU_WPviG1r3ztMHZEMs,1415244
|
@@ -124,12 +119,12 @@ pyegeria/commands/ops/table_integ_daemon_status.py,sha256=to93SVOF9tlaG5FpSHV4vZ
|
|
124
119
|
pyegeria/commands/ops/x_engine_actions.py,sha256=hX6MRiVsX3tRJfQLaA83NnqlvaF1Bv-SlDwACzr3nME,4500
|
125
120
|
pyegeria/commands/tech/README.md,sha256=nxDnfr3BCiGgW5G1VxWxiwUWJXIe5wreNuUeRyIt_hY,1343
|
126
121
|
pyegeria/commands/tech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
127
|
-
pyegeria/commands/tech/get_element_graph.py,sha256=YhpvHPNuSd-Ft-dBRLswGfqGYv2AlByyV0IyjhV4SSk,7367
|
128
122
|
pyegeria/commands/tech/get_element_info.py,sha256=Rauespy7ZfyKtLh_H8XWgYTpPijsqlUGm-zeb7KrG7k,4749
|
129
123
|
pyegeria/commands/tech/get_guid_info.py,sha256=HfwcGAFALFIpy4AJAgQHU__Fv1fjprh1G1xB5AjlZ80,4282
|
130
124
|
pyegeria/commands/tech/get_tech_details.py,sha256=p5OgSKep3VOuuZmQXE2OSYhE-kvnI18TBcQ-PU5kEAw,6023
|
131
125
|
pyegeria/commands/tech/get_tech_type_template.py,sha256=gMFVcgCIm09GQu1Vsc5ZUVH9XLhItAG1eVGZJrcnHeQ,6174
|
132
126
|
pyegeria/commands/tech/list_asset_types.py,sha256=LG7e8yjewQ_SX8SjzEiEii_-hDvmAJKyLN8iDjbch50,4162
|
127
|
+
pyegeria/commands/tech/list_element_graph.py,sha256=o_0NgjQmaEmXP1IX65k6ggYPG0qn_H-Q3CRVR09gER8,7399
|
133
128
|
pyegeria/commands/tech/list_elements.py,sha256=vO4SPEhcKm0L5rHVr6r8KYX3sPazGJ78oWsO2wLcf2o,5998
|
134
129
|
pyegeria/commands/tech/list_elements_for_classification.py,sha256=oAge8RFz4z9H-jCE0fBDhS4AbIHqhQWBvZ4Dp7BZbfM,6194
|
135
130
|
pyegeria/commands/tech/list_elements_x.py,sha256=k5jkekB7wh6cbzjn7FnwL7pKrPFq_oE-x36c_Z1FuSo,6500
|
@@ -165,8 +160,8 @@ pyegeria/template_manager_omvs.py,sha256=heqbKeum5hPCHap4r1RUZU8YB3QaQlxVNbq4GZi
|
|
165
160
|
pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
|
166
161
|
pyegeria/valid_metadata_omvs.py,sha256=tfCGXed5LLt59YA8uZNNtd9UJ-lRZfPU_uZxK31Yux0,65069
|
167
162
|
pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
|
168
|
-
pyegeria-1.5.1.1.
|
169
|
-
pyegeria-1.5.1.1.
|
170
|
-
pyegeria-1.5.1.1.
|
171
|
-
pyegeria-1.5.1.1.
|
172
|
-
pyegeria-1.5.1.1.
|
163
|
+
pyegeria-1.5.1.1.58.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
164
|
+
pyegeria-1.5.1.1.58.dist-info/METADATA,sha256=Z7ZU5mi9agQyof0h-8qu0jG-hEE5RjSOTyUp_cnLRRw,2998
|
165
|
+
pyegeria-1.5.1.1.58.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
166
|
+
pyegeria-1.5.1.1.58.dist-info/entry_points.txt,sha256=oG-N-_kcUg7NFj2XchfxtFqsL4d4uOxlGYZOzDta1Pg,5171
|
167
|
+
pyegeria-1.5.1.1.58.dist-info/RECORD,,
|
@@ -30,7 +30,7 @@ list_deployed_catalogs=pyegeria.commands.cat.list_deployed_catalogs:main
|
|
30
30
|
list_deployed_databases=pyegeria.commands.cat.list_deployed_databases:main
|
31
31
|
list_deployed_schemas=pyegeria.commands.cat.list_deployed_database_schemas:main
|
32
32
|
list_deployed_servers=pyegeria.commands.cat.list_servers_deployed_imp.py:main
|
33
|
-
list_element_graph=pyegeria.commands.tech.
|
33
|
+
list_element_graph=pyegeria.commands.tech.list_element_graph:main
|
34
34
|
list_elements=pyegeria.commands.tech.list_elements:main
|
35
35
|
list_elements_for_classification=pyegeria.commands.tech.list_elements_for_classification:main
|
36
36
|
list_engine_activity=pyegeria.commands.ops.monitor_engine_activity:main_paging
|
pyegeria/.DS_Store
DELETED
Binary file
|
pyegeria/commands/.DS_Store
DELETED
Binary file
|
pyegeria/commands/doc/.DS_Store
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|