pyegeria 0.5.8.16__py3-none-any.whl → 0.5.8.19__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.
- examples/widgets/catalog_user/get_asset_graph.py +37 -31
- examples/widgets/catalog_user/get_collection.py +4 -2
- examples/widgets/catalog_user/get_tech_type_elements.py +7 -2
- examples/widgets/catalog_user/get_tech_type_template.py +7 -3
- examples/widgets/catalog_user/list_assets.py +6 -2
- examples/widgets/catalog_user/list_glossary.py +5 -2
- examples/widgets/{developer → catalog_user}/list_tech_types.py +6 -2
- examples/widgets/cli/egeria_cat.py +198 -0
- examples/widgets/cli/egeria_ops.py +2 -2
- examples/widgets/operational/list_catalog_targets.py +8 -3
- examples/widgets/operational/monitor_engine_activity.py +3 -2
- examples/widgets/operational/monitor_gov_eng_status.py +3 -2
- {pyegeria-0.5.8.16.dist-info → pyegeria-0.5.8.19.dist-info}/METADATA +1 -1
- {pyegeria-0.5.8.16.dist-info → pyegeria-0.5.8.19.dist-info}/RECORD +17 -16
- {pyegeria-0.5.8.16.dist-info → pyegeria-0.5.8.19.dist-info}/entry_points.txt +7 -5
- {pyegeria-0.5.8.16.dist-info → pyegeria-0.5.8.19.dist-info}/LICENSE +0 -0
- {pyegeria-0.5.8.16.dist-info → pyegeria-0.5.8.19.dist-info}/WHEEL +0 -0
@@ -21,6 +21,7 @@ from pyegeria import (
|
|
21
21
|
UserNotAuthorizedException,
|
22
22
|
AssetCatalog
|
23
23
|
)
|
24
|
+
|
24
25
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
25
26
|
EGERIA_KAFKA_ENDPOINT = os.environ.get('KAFKA_ENDPOINT', 'localhost:9092')
|
26
27
|
EGERIA_PLATFORM_URL = os.environ.get('EGERIA_PLATFORM_URL', 'https://localhost:9443')
|
@@ -32,16 +33,19 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
32
33
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
33
34
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
34
35
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
36
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
37
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
35
38
|
|
36
39
|
disable_ssl_warnings = True
|
37
40
|
|
38
|
-
console = Console(width=
|
39
|
-
|
41
|
+
# console = Console(width=EGERIA_WIDTH, force_terminal=(not EGERIA_JUPYTER))
|
42
|
+
console = Console()
|
40
43
|
|
41
44
|
guid_list = []
|
42
45
|
|
43
|
-
def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, user_pass:str):
|
44
46
|
|
47
|
+
def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str, user_pass: str,
|
48
|
+
jupyter: bool = EGERIA_JUPYTER, width: int = EGERIA_WIDTH):
|
45
49
|
def build_classifications(classification: dict) -> Markdown:
|
46
50
|
|
47
51
|
class_md = ""
|
@@ -50,7 +54,7 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
50
54
|
if c_type == "Anchors":
|
51
55
|
continue
|
52
56
|
class_md += f"\n* Classification: {c_type}\n"
|
53
|
-
class_props = c.get("classificationProperties","---")
|
57
|
+
class_props = c.get("classificationProperties", "---")
|
54
58
|
if type(class_props) is dict:
|
55
59
|
for prop in class_props.keys():
|
56
60
|
class_md += f"\t* {prop}: {class_props[prop]}\n"
|
@@ -72,7 +76,7 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
72
76
|
ne_classifications = nested_element["classifications"]
|
73
77
|
ne_class_md = build_classifications(ne_classifications)
|
74
78
|
# ne_class_md = " " if ne_class_md is None else ne_class_md
|
75
|
-
ne_props = nested_element.get("properties","---")
|
79
|
+
ne_props = nested_element.get("properties", "---")
|
76
80
|
ne_prop_md = "\n"
|
77
81
|
if type(ne_props) is dict:
|
78
82
|
for prop in ne_props.keys():
|
@@ -90,7 +94,7 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
90
94
|
try:
|
91
95
|
|
92
96
|
a_client = AssetCatalog(server_name, platform_url,
|
93
|
-
|
97
|
+
user_id=user)
|
94
98
|
|
95
99
|
token = a_client.create_egeria_bearer_token(user, user_pass)
|
96
100
|
# asset_info = a_client.find_assets_in_domain(asset_name)
|
@@ -109,7 +113,6 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
109
113
|
|
110
114
|
# print(f"\n{json.dumps(asset_graph, indent =2)}\n")
|
111
115
|
|
112
|
-
|
113
116
|
asset_name = asset_graph["displayName"]
|
114
117
|
qualified_name = asset_graph["qualifiedName"]
|
115
118
|
resource_name = asset_graph["resourceName"]
|
@@ -118,18 +121,17 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
118
121
|
style = ""
|
119
122
|
|
120
123
|
asset_type = asset_graph["type"]["typeName"]
|
121
|
-
asset_deployed_imp_type = asset_graph.get("deployedImplementationType","---")
|
124
|
+
asset_deployed_imp_type = asset_graph.get("deployedImplementationType", "---")
|
122
125
|
|
123
126
|
asset_origin = asset_graph["origin"]["homeMetadataCollectionName"]
|
124
127
|
asset_creation = asset_graph["versions"]["createTime"]
|
125
128
|
asset_created_by = asset_graph["versions"]["createdBy"]
|
126
129
|
asset_classifications = asset_graph["classifications"]
|
127
|
-
asset_nested_elements = asset_graph.get("anchoredElements","----")
|
130
|
+
asset_nested_elements = asset_graph.get("anchoredElements", "----")
|
128
131
|
asset_relationships = asset_graph["relationships"]
|
129
132
|
asset_class_md = build_classifications(asset_classifications)
|
130
133
|
|
131
|
-
|
132
|
-
asset_properties = asset_graph.get("extendedProperties",None)
|
134
|
+
asset_properties = asset_graph.get("extendedProperties", None)
|
133
135
|
if asset_properties is not None:
|
134
136
|
prop_md = "\n* Extended Properties:\n"
|
135
137
|
for prop in asset_properties:
|
@@ -137,28 +139,28 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
137
139
|
else:
|
138
140
|
prop_md = ""
|
139
141
|
core_md = (f"**Type: {asset_type} Created by: {asset_created_by} on {asset_creation}**\n"
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
142
|
+
f"* Deployed Implementation Type: {asset_deployed_imp_type}\n"
|
143
|
+
f"* Qualified Name: {qualified_name}\n "
|
144
|
+
f"* Resource Name: {resource_name}\n"
|
145
|
+
f"* Display Name: {asset_name}\n"
|
146
|
+
f"* Asset Origin: {asset_origin}\n{prop_md}\n"
|
147
|
+
)
|
146
148
|
core_md = Markdown(core_md)
|
147
149
|
|
148
|
-
p1 = Panel.fit(core_md, style
|
150
|
+
p1 = Panel.fit(core_md, style="bold bright_white")
|
149
151
|
l2 = tree.add(p1)
|
150
152
|
if asset_class_md is not None:
|
151
|
-
p2 = Panel.fit(Markdown(asset_class_md), style
|
153
|
+
p2 = Panel.fit(Markdown(asset_class_md), style="bold bright_white", title="Classifications")
|
152
154
|
l2 = tree.add(p2)
|
153
155
|
|
154
156
|
#
|
155
157
|
# Nested Assets
|
156
158
|
#
|
157
159
|
if type(asset_nested_elements) is list:
|
158
|
-
l2 = tree.add("Nested Elements", style
|
160
|
+
l2 = tree.add("Nested Elements", style="bold white")
|
159
161
|
for el in asset_nested_elements:
|
160
162
|
asset_ne_md = build_nested_elements(el)
|
161
|
-
p3 = Panel.fit(asset_ne_md, style
|
163
|
+
p3 = Panel.fit(asset_ne_md, style="bold bright_white", title="Nested Elements")
|
162
164
|
l2.add(p3)
|
163
165
|
|
164
166
|
#
|
@@ -169,7 +171,7 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
169
171
|
rel_end1 = relationship["end1"]
|
170
172
|
rel_end1_type = rel_end1["type"]["typeName"]
|
171
173
|
rel_end1_guid = rel_end1["guid"]
|
172
|
-
rel_end1_unique_name = rel_end1.get("uniqueName","---")
|
174
|
+
rel_end1_unique_name = rel_end1.get("uniqueName", "---")
|
173
175
|
|
174
176
|
rel_end2 = relationship["end2"]
|
175
177
|
rel_end2_type = rel_end2["type"]["typeName"]
|
@@ -184,13 +186,12 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
184
186
|
relationship_type = relationship["type"]["typeName"]
|
185
187
|
relationship_created_by = relationship["versions"]["createdBy"]
|
186
188
|
relationship_creation_time = relationship["versions"]["createTime"]
|
187
|
-
relationship_properties = relationship.get("properties","--- ")
|
189
|
+
relationship_properties = relationship.get("properties", "--- ")
|
188
190
|
relationship_md = (f"Relationship Type {relationship_type}\n"
|
189
191
|
f"* GUID: {relationship_guid}\n* Created by: {relationship_created_by} \n"
|
190
192
|
f"* Creation Time: {relationship_creation_time}\n"
|
191
193
|
f"* Properties: {relationship_properties}\n")
|
192
194
|
|
193
|
-
|
194
195
|
rel_md = (
|
195
196
|
f"* Relationship Type: {relationship_type}\n"
|
196
197
|
f"* Relationship GUID: {relationship_guid}\n"
|
@@ -201,7 +202,7 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
201
202
|
f"\t* Type: {rel_end1_type}\n"
|
202
203
|
f"\t* GUID: {rel_end1_guid}\n"
|
203
204
|
f"\t* Unique Name: {rel_end1_unique_name}\n"
|
204
|
-
|
205
|
+
)
|
205
206
|
|
206
207
|
# if rel_end1_class_md is not None:
|
207
208
|
# rel_end1_md = rel_end1_class_md + rel_end1_md
|
@@ -221,7 +222,8 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
221
222
|
|
222
223
|
relationship_md += rel_end1_md + rel_end2_md
|
223
224
|
|
224
|
-
relationship_panel = Panel.fit(Markdown(relationship_md), style="bold bright_white",
|
225
|
+
relationship_panel = Panel.fit(Markdown(relationship_md), style="bold bright_white",
|
226
|
+
title="Asset Relationships")
|
225
227
|
tree.add(relationship_panel)
|
226
228
|
|
227
229
|
with console.screen():
|
@@ -229,13 +231,14 @@ def asset_viewer(asset_guid: str, server_name:str, platform_url:str, user:str, u
|
|
229
231
|
print(tree)
|
230
232
|
|
231
233
|
except (
|
232
|
-
|
233
|
-
|
234
|
-
|
234
|
+
InvalidParameterException,
|
235
|
+
PropertyServerException,
|
236
|
+
UserNotAuthorizedException
|
235
237
|
) as e:
|
236
238
|
console.print_exception()
|
237
239
|
console.print("\n\n ======> Most likely the GUID you provided is either incorrect or not an asset\n[red bold]")
|
238
240
|
|
241
|
+
|
239
242
|
def main():
|
240
243
|
parser = argparse.ArgumentParser()
|
241
244
|
|
@@ -251,10 +254,13 @@ def main():
|
|
251
254
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
252
255
|
try:
|
253
256
|
asset_guid = Prompt.ask("Enter the Asset GUID to view:", default="")
|
254
|
-
asset_viewer(asset_guid,server, url, userid, user_pass)
|
257
|
+
asset_viewer(asset_guid, server, url, userid, user_pass)
|
255
258
|
except (KeyboardInterrupt) as e:
|
256
259
|
# console.print_exception()
|
257
260
|
pass
|
261
|
+
except Exception as e:
|
262
|
+
console.print_exception()
|
263
|
+
|
258
264
|
|
259
265
|
if __name__ == "__main__":
|
260
|
-
main()
|
266
|
+
main()
|
@@ -31,9 +31,11 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
31
31
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
32
32
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
33
33
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
34
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
35
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
34
36
|
|
35
|
-
|
36
|
-
|
37
|
+
def collection_viewer(root: str, server_name: str, platform_url: str, user: str, user_password: str,
|
38
|
+
jupyter:bool=EGERIA_JUPYTER, width:int = EGERIA_WIDTH):
|
37
39
|
""" A simple collection viewer"""
|
38
40
|
def walk_collection_hierarchy(collection_client: CollectionManager, root_collection_name: str, tree: Tree) -> None:
|
39
41
|
"""Recursively build a Tree with collection contents."""
|
@@ -40,13 +40,17 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
40
40
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
41
41
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
42
42
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
43
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
44
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
45
|
+
|
43
46
|
|
44
47
|
disable_ssl_warnings = True
|
45
48
|
console = Console(width=200)
|
46
49
|
|
47
50
|
guid_list = []
|
48
51
|
|
49
|
-
def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str, user_pass:str
|
52
|
+
def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str, user_pass:str,
|
53
|
+
jupyter:bool=EGERIA_JUPYTER, width:int=EGERIA_WIDTH):
|
50
54
|
|
51
55
|
def build_classifications(classification: dict) -> Markdown:
|
52
56
|
|
@@ -69,7 +73,8 @@ def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str, use
|
|
69
73
|
|
70
74
|
try:
|
71
75
|
|
72
|
-
console = Console()
|
76
|
+
console = Console(width=width, force_terminal=not jupyter)
|
77
|
+
|
73
78
|
|
74
79
|
a_client = AutomatedCuration(server_name, platform_url,
|
75
80
|
user_id=user)
|
@@ -33,13 +33,17 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
33
33
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
34
34
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
35
35
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
36
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
37
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
38
|
+
|
36
39
|
|
37
40
|
disable_ssl_warnings = True
|
38
41
|
console = Console(width=200)
|
39
42
|
|
40
43
|
guid_list = []
|
41
44
|
|
42
|
-
def
|
45
|
+
def template_viewer(tech_name: str, server_name:str, platform_url:str, user:str, user_pass:str,
|
46
|
+
jupyter: bool = EGERIA_JUPYTER, width: int = EGERIA_WIDTH):
|
43
47
|
|
44
48
|
def build_classifications(classification: dict) -> Markdown:
|
45
49
|
|
@@ -62,7 +66,7 @@ def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str, use
|
|
62
66
|
|
63
67
|
try:
|
64
68
|
|
65
|
-
console = Console()
|
69
|
+
console = Console(width=width, force_terminal=not jupyter)
|
66
70
|
|
67
71
|
a_client = AutomatedCuration(server_name, platform_url,
|
68
72
|
user_id=user)
|
@@ -137,7 +141,7 @@ def main():
|
|
137
141
|
|
138
142
|
try:
|
139
143
|
tech_name = Prompt.ask("Enter the Asset Name to view:", default="Apache Kafka Server")
|
140
|
-
|
144
|
+
template_viewer(tech_name,server, url, userid, user_pass)
|
141
145
|
except(KeyboardInterrupt):
|
142
146
|
pass
|
143
147
|
|
@@ -35,10 +35,14 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
35
35
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
36
36
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
37
37
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
38
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
39
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
40
|
+
|
38
41
|
|
39
42
|
disable_ssl_warnings = True
|
40
43
|
|
41
|
-
def display_assets(search_string: str, server: str, url: str, username: str, user_password: str, time_out: int = 60
|
44
|
+
def display_assets(search_string: str, server: str, url: str, username: str, user_password: str, time_out: int = 60,
|
45
|
+
jupyter: bool = EGERIA_JUPYTER, width: int = EGERIA_WIDTH):
|
42
46
|
|
43
47
|
g_client = AssetCatalog(server, url, username)
|
44
48
|
token = g_client.create_egeria_bearer_token(username, user_password)
|
@@ -114,7 +118,7 @@ def display_assets(search_string: str, server: str, url: str, username: str, use
|
|
114
118
|
# while True:
|
115
119
|
# time.sleep(2)
|
116
120
|
# live.update(generate_table())
|
117
|
-
console = Console()
|
121
|
+
console = Console(width=width, force_terminal=not jupyter)
|
118
122
|
with console.pager(styles=True):
|
119
123
|
console.print(generate_table(search_string))
|
120
124
|
|
@@ -42,9 +42,12 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
42
42
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
43
43
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
44
44
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
45
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
46
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
45
47
|
|
46
48
|
|
47
|
-
def display_glossary_terms(search_string: str, guid: str, server: str, url: str, username: str, user_password: str
|
49
|
+
def display_glossary_terms(search_string: str, guid: str, server: str, url: str, username: str, user_password: str,
|
50
|
+
jupyter: bool = EGERIA_JUPYTER, width: int = EGERIA_WIDTH ):
|
48
51
|
|
49
52
|
g_client = GlossaryBrowser(server, url)
|
50
53
|
token = g_client.create_egeria_bearer_token(username, user_password)
|
@@ -99,7 +102,7 @@ def display_glossary_terms(search_string: str, guid: str, server: str, url: str,
|
|
99
102
|
# while True:
|
100
103
|
# time.sleep(2)
|
101
104
|
# live.update(generate_table(search_string))
|
102
|
-
console = Console(style="bold white on black")
|
105
|
+
console = Console(style="bold white on black", width=width, force_terminal=not jupyter)
|
103
106
|
with console.pager(styles=True):
|
104
107
|
console.print(generate_table(search_string))
|
105
108
|
|
@@ -36,11 +36,15 @@ EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
|
36
36
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
37
37
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
38
38
|
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
39
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
40
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
41
|
+
|
39
42
|
|
40
43
|
disable_ssl_warnings = True
|
41
44
|
|
42
45
|
|
43
|
-
def display_tech_types(search_string:str, server: str, url: str, username: str, user_pass: str
|
46
|
+
def display_tech_types(search_string:str, server: str, url: str, username: str, user_pass: str,
|
47
|
+
jupyter: bool = EGERIA_JUPYTER, width: int = EGERIA_WIDTH):
|
44
48
|
a_client = AutomatedCuration(server, url, username)
|
45
49
|
token = a_client.create_egeria_bearer_token(username, user_pass)
|
46
50
|
tech_list = a_client.find_technology_types(search_string, page_size=0)
|
@@ -88,7 +92,7 @@ def display_tech_types(search_string:str, server: str, url: str, username: str,
|
|
88
92
|
sys.exit(1)
|
89
93
|
|
90
94
|
try:
|
91
|
-
console = Console()
|
95
|
+
console = Console(width=width, force_terminal=not jupyter)
|
92
96
|
with console.pager(styles=True):
|
93
97
|
console.print(generate_table())
|
94
98
|
|
@@ -0,0 +1,198 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
5
|
+
|
6
|
+
|
7
|
+
A command line interface for Egeria Catalog User functions
|
8
|
+
|
9
|
+
This is an emerging capability based on the **click** package. Feedback welcome!
|
10
|
+
|
11
|
+
"""
|
12
|
+
import click
|
13
|
+
from trogon import tui
|
14
|
+
|
15
|
+
from examples.widgets.catalog_user.get_asset_graph import asset_viewer
|
16
|
+
from examples.widgets.catalog_user.get_collection import collection_viewer
|
17
|
+
from examples.widgets.catalog_user.get_tech_type_elements import tech_viewer
|
18
|
+
from examples.widgets.catalog_user.get_tech_type_template import template_viewer
|
19
|
+
from examples.widgets.catalog_user.list_assets import display_assets
|
20
|
+
from examples.widgets.catalog_user.list_glossary import display_glossary_terms
|
21
|
+
from examples.widgets.catalog_user.list_tech_types import display_tech_types
|
22
|
+
# from pyegeria import ServerOps
|
23
|
+
from examples.widgets.cli.ops_config import Config
|
24
|
+
|
25
|
+
|
26
|
+
# class Config(object):
|
27
|
+
# def __init__(self, server: str = None, url: str = None, userid:str = None, password:str = None,
|
28
|
+
# timeout:int = 30, paging: bool = False):
|
29
|
+
# self.server = server
|
30
|
+
# self.url = url
|
31
|
+
# self.userid = userid
|
32
|
+
# self.password = password
|
33
|
+
# self.timeout = timeout
|
34
|
+
# self.paging = paging
|
35
|
+
#
|
36
|
+
#
|
37
|
+
# pass_config = click.make_pass_decorator(Config)
|
38
|
+
|
39
|
+
# @tui
|
40
|
+
@tui()
|
41
|
+
@click.version_option("0.0.1", prog_name="egeria_ops")
|
42
|
+
@click.group()
|
43
|
+
@click.option('--server', default='active-metadata-store', envvar='EGERIA_METADATA_STORE',
|
44
|
+
help='Egeria metadata store to work with')
|
45
|
+
@click.option('--url', default='https://localhost:9443', envvar='EGERIA_PLATFORM_URL',
|
46
|
+
help='URL of Egeria metadata store platform to connect to')
|
47
|
+
@click.option('--integration-daemon', default='integration-daemon', envvar='EGERIA_INTEGRATION_DAEMON',
|
48
|
+
help='Egeria integration daemon to work with')
|
49
|
+
@click.option('--integration_daemon_url', default='https://localhost:9443', envvar='EGERIA_INTEGRATION_DAEMON_URL',
|
50
|
+
help='URL of Egeria integration daemon platform to connect to')
|
51
|
+
@click.option('--view_server', default='view-server', envvar='EGERIA_VIEW_SERVER',
|
52
|
+
help='Egeria view server to work with')
|
53
|
+
@click.option('--view_server_url', default='https://localhost:9443', envvar='EGERIA_VIEW_SERVER_URL',
|
54
|
+
help='URL of Egeria view server platform to connect to')
|
55
|
+
@click.option('--engine_host', default='engine-host', envvar='EGERIA_ENGINE_HOST',
|
56
|
+
help='Egeria engine host to work with')
|
57
|
+
@click.option('--engine_host_url', default='https://localhost:9443', envvar='EGERIA_ENGINE_HOST_URL',
|
58
|
+
help='URL of Egeria engine host platform to connect to')
|
59
|
+
@click.option('--admin_user', default='garygeeke', envvar='EGERIA_ADMIN_USER', help='Egeria admin user')
|
60
|
+
@click.option('--admin_user_password', default='secret', envvar='EGERIA_ADMIN_PASSWORD',
|
61
|
+
help='Egeria admin password')
|
62
|
+
@click.option('--userid', default='garygeeke', envvar='EGERIA_USER', help='Egeria user')
|
63
|
+
@click.option('--password', default='secret', envvar='EGERIA_PASSWORD',
|
64
|
+
help='Egeria user password')
|
65
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
66
|
+
@click.option('--verbose', is_flag=True, default=False, help='Enable verbose mode')
|
67
|
+
@click.option('--paging', is_flag=True, default=False, help='Enable paging snapshots vs live updates')
|
68
|
+
@click.option('--jupyter', is_flag=True, default=False, envvar='EGERIA_JUPYTER',
|
69
|
+
help='Enable for rendering in a Jupyter terminal')
|
70
|
+
@click.option('--width', default=200, envvar='EGERIA_WIDTH', help='Screen width, in characters, to use')
|
71
|
+
@click.pass_context
|
72
|
+
def cli(ctx, server, url, view_server, view_server_url, integration_daemon, integration_daemon_url,
|
73
|
+
engine_host, engine_host_url, admin_user, admin_user_password, userid, password, timeout, paging,
|
74
|
+
verbose, jupyter, width):
|
75
|
+
"""An Egeria Command Line interface for Operations """
|
76
|
+
ctx.obj = Config(server, url, view_server, view_server_url, integration_daemon,
|
77
|
+
integration_daemon_url, engine_host, engine_host_url,
|
78
|
+
admin_user, admin_user_password, userid, password,
|
79
|
+
timeout, paging, verbose, jupyter, width)
|
80
|
+
ctx.max_content_width = 200
|
81
|
+
ctx.ensure_object(Config)
|
82
|
+
if verbose:
|
83
|
+
click.echo(f"we are in verbose mode - server is {server}")
|
84
|
+
|
85
|
+
|
86
|
+
@cli.group("show")
|
87
|
+
@click.pass_context
|
88
|
+
def show(ctx):
|
89
|
+
"""Display an Egeria Object"""
|
90
|
+
pass
|
91
|
+
|
92
|
+
|
93
|
+
@show.command('tech_types')
|
94
|
+
@click.option('--tech_type', default='*', help='Tech type to search for')
|
95
|
+
@click.pass_context
|
96
|
+
def show_tech_types(ctx, tech_type):
|
97
|
+
"""List deployed technology types"""
|
98
|
+
c = ctx.obj
|
99
|
+
display_tech_types(tech_type, c.view_server, c.view_server_url,
|
100
|
+
c.userid, c.password)
|
101
|
+
|
102
|
+
|
103
|
+
@show.command('tech_type_elements')
|
104
|
+
@click.option('--tech_type', default='PostgreSQL Server', help='Specific tech type to get elements for')
|
105
|
+
@click.pass_context
|
106
|
+
def show_tech_type_elements(ctx, tech_type):
|
107
|
+
"""List technology type elements"""
|
108
|
+
c = ctx.obj
|
109
|
+
tech_viewer(tech_type, c.view_server, c.view_server_url,
|
110
|
+
c.userid, c.password)
|
111
|
+
|
112
|
+
|
113
|
+
@show.command('tech_type_templates')
|
114
|
+
@click.option('--tech_type', default='PostgreSQL Server', help='Specific tech type to get elements for')
|
115
|
+
@click.pass_context
|
116
|
+
def show_tech_type_templates(ctx, tech_type):
|
117
|
+
"""List technology type templates"""
|
118
|
+
c = ctx.obj
|
119
|
+
template_viewer(tech_type, c.view_server, c.view_server_url, c.userid,
|
120
|
+
c.password, c.jupyter, c.width)
|
121
|
+
|
122
|
+
|
123
|
+
@show.command('assets')
|
124
|
+
@click.option('--search_string', help='List assets similar to search string - minimum of 4 characters')
|
125
|
+
@click.pass_context
|
126
|
+
def show_assets(ctx, search_string):
|
127
|
+
"""Find and display assets"""
|
128
|
+
c = ctx.obj
|
129
|
+
display_assets(search_string, c.view_server, c.view_server_url, c.userid,
|
130
|
+
c.password, c.jupyter, c.width)
|
131
|
+
|
132
|
+
|
133
|
+
@show.command('glossary_terms')
|
134
|
+
@click.option('--search_string', default='*',
|
135
|
+
help='List glossary terms similar to search string - minimum of 4 characters')
|
136
|
+
@click.option('--glossary_guid', default=None, help='Optionally restrict search to glossary with the specified guid')
|
137
|
+
@click.pass_context
|
138
|
+
def show_terms(ctx, search_string, glossary_guid):
|
139
|
+
"""Find and display glossary terms"""
|
140
|
+
c = ctx.obj
|
141
|
+
display_glossary_terms(search_string, glossary_guid, c.view_server, c.view_server_url, c.userid,
|
142
|
+
c.password, c.jupyter, c.width)
|
143
|
+
|
144
|
+
|
145
|
+
@show.command('asset_graph')
|
146
|
+
@click.argument('asset_guid', nargs=1)
|
147
|
+
@click.pass_context
|
148
|
+
def show_asset_graph(ctx, asset_guid):
|
149
|
+
"""Display a tree graph of information about an asset """
|
150
|
+
c = ctx.obj
|
151
|
+
asset_viewer(asset_guid, c.view_server, c.view_server_url, c.userid,
|
152
|
+
c.password, c.jupyter, c.width)
|
153
|
+
|
154
|
+
|
155
|
+
@show.command('collection')
|
156
|
+
@click.option('--root_collection', default='Root Sustainability Collection',
|
157
|
+
help='View of tree of collections from a given root')
|
158
|
+
@click.pass_context
|
159
|
+
def show_asset_graph(ctx, root_collection):
|
160
|
+
"""Display a tree graph of information about an asset """
|
161
|
+
c = ctx.obj
|
162
|
+
collection_viewer(root_collection, c.view_server, c.view_server_url, c.userid,
|
163
|
+
c.password, c.jupyter, c.width)
|
164
|
+
|
165
|
+
|
166
|
+
#
|
167
|
+
# Tell
|
168
|
+
#
|
169
|
+
|
170
|
+
@cli.group('tell')
|
171
|
+
@click.pass_context
|
172
|
+
def tell(ctx):
|
173
|
+
"""Perform actions an Egeria Objects"""
|
174
|
+
pass
|
175
|
+
|
176
|
+
|
177
|
+
@tell.group('survey')
|
178
|
+
@click.pass_context
|
179
|
+
def survey(ctx):
|
180
|
+
"""Refresh the specified integration connector or ALL connectors if not specified"""
|
181
|
+
c = ctx.obj
|
182
|
+
pass
|
183
|
+
|
184
|
+
|
185
|
+
@survey.command('survey_uc_server')
|
186
|
+
@click.pass_context
|
187
|
+
@click.option('--uc_endpoint', default='https://localhost:8080',
|
188
|
+
help="Endpoint of the Unity Catalog Server to Survey")
|
189
|
+
def survey_uc_server(ctx, uc_endpoint):
|
190
|
+
"""Survey the Unity Catalog server at the given endpoint"""
|
191
|
+
c = ctx.obj
|
192
|
+
pass
|
193
|
+
# restart_connector(connector, c.integration_daemon, c.integration_daemon_url,
|
194
|
+
# c.userid, c.password)
|
195
|
+
|
196
|
+
|
197
|
+
if __name__ == '__main__':
|
198
|
+
cli()
|
@@ -144,7 +144,7 @@ def gov_eng_status(ctx, list):
|
|
144
144
|
"""Display engine-host status information"""
|
145
145
|
c = ctx.obj
|
146
146
|
display_gov_eng_status(c.engine_host, c.engine_host_url,
|
147
|
-
c.
|
147
|
+
c.admin_user, c.admin_user_password,
|
148
148
|
list, c.jupyter, c.width)
|
149
149
|
|
150
150
|
|
@@ -155,7 +155,7 @@ def eng_activity_status(ctx, list):
|
|
155
155
|
"""Show Governance Activity in engine-host"""
|
156
156
|
c = ctx.obj
|
157
157
|
display_engine_activity(c.view_server, c.view_server_url,
|
158
|
-
c.
|
158
|
+
c.admin_user, c.admin_user_password,
|
159
159
|
list, c.jupyter, c.width)
|
160
160
|
|
161
161
|
|
@@ -84,6 +84,8 @@ def display_catalog_targets(connector: str, server: str, url: str, username: str
|
|
84
84
|
for prop in config_props:
|
85
85
|
config_props_md += f"* {prop}: {config_props[prop]}\n"
|
86
86
|
config_props_out = Markdown(config_props_md)
|
87
|
+
else:
|
88
|
+
config_props_out = '---'
|
87
89
|
|
88
90
|
template_props = target.get('templateProperties', '---')
|
89
91
|
if type(template_props) is dict:
|
@@ -91,6 +93,8 @@ def display_catalog_targets(connector: str, server: str, url: str, username: str
|
|
91
93
|
for prop in template_props:
|
92
94
|
template_props_md += f"* {prop}: {template_props[prop]}\n"
|
93
95
|
template_props_out = Markdown(template_props_md)
|
96
|
+
else:
|
97
|
+
template_props_out = '---'
|
94
98
|
|
95
99
|
table.add_row(
|
96
100
|
connector_unique, target_name, target_source, target_rel,
|
@@ -112,8 +116,9 @@ def display_catalog_targets(connector: str, server: str, url: str, username: str
|
|
112
116
|
|
113
117
|
except (InvalidParameterException, PropertyServerException, UserNotAuthorizedException) as e:
|
114
118
|
print_exception_response(e)
|
115
|
-
except Exception:
|
119
|
+
except Exception as e:
|
116
120
|
print(f"\n\n===> Perhaps integration connector {connector} is not known?\n\n")
|
121
|
+
console.print_exception()
|
117
122
|
finally:
|
118
123
|
a_client.close_session()
|
119
124
|
|
@@ -130,7 +135,7 @@ def main():
|
|
130
135
|
args = parser.parse_args()
|
131
136
|
|
132
137
|
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
133
|
-
url = args.url if args.url is not None else
|
138
|
+
url = args.url if args.url is not None else EGERIA_VIEW_SERVER_URL
|
134
139
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
135
140
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
136
141
|
jupyter = args.jupyter if args.jupyter is not None else EGERIA_JUPYTER
|
@@ -138,7 +143,7 @@ def main():
|
|
138
143
|
|
139
144
|
try:
|
140
145
|
connector = Prompt.ask("Enter the Integration Connector to list catalog targets for")
|
141
|
-
display_catalog_targets(connector, server, url, userid, user_pass, jupyter)
|
146
|
+
display_catalog_targets(connector, server, url, userid, user_pass, jupyter, width=width)
|
142
147
|
|
143
148
|
except KeyboardInterrupt:
|
144
149
|
pass
|
@@ -34,6 +34,7 @@ EGERIA_PLATFORM_URL = os.environ.get('EGERIA_PLATFORM_URL', 'https://localhost:9
|
|
34
34
|
EGERIA_VIEW_SERVER = os.environ.get('VIEW_SERVER', 'view-server')
|
35
35
|
EGERIA_VIEW_SERVER_URL = os.environ.get('EGERIA_VIEW_SERVER_URL', 'https://localhost:9443')
|
36
36
|
EGERIA_ENGINE_HOST = os.environ.get('INTEGRATION_ENGINE_HOST', 'engine-host')
|
37
|
+
EGERIA_ENGINE_HOST_URL = os.environ.get('INTEGRATION_ENGINE_HOST_URL', 'https://localhost:9443')
|
37
38
|
EGERIA_INTEGRATION_DAEMON = os.environ.get('INTEGRATION_DAEMON', 'integration-daemon')
|
38
39
|
EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
39
40
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
@@ -150,7 +151,7 @@ def main_live():
|
|
150
151
|
args = parser.parse_args()
|
151
152
|
|
152
153
|
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
153
|
-
url = args.url if args.url is not None else
|
154
|
+
url = args.url if args.url is not None else EGERIA_VIEW_SERVER_URL
|
154
155
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
155
156
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
156
157
|
|
@@ -167,7 +168,7 @@ def main_paging():
|
|
167
168
|
args = parser.parse_args()
|
168
169
|
|
169
170
|
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
170
|
-
url = args.url if args.url is not None else
|
171
|
+
url = args.url if args.url is not None else EGERIA_VIEW_SERVER_URL
|
171
172
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
172
173
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
173
174
|
|
@@ -33,6 +33,7 @@ EGERIA_VIEW_SERVER = os.environ.get('VIEW_SERVER', 'view-server')
|
|
33
33
|
EGERIA_VIEW_SERVER_URL = os.environ.get('EGERIA_VIEW_SERVER_URL', 'https://localhost:9443')
|
34
34
|
EGERIA_INTEGRATION_DAEMON = os.environ.get('INTEGRATION_DAEMON', 'integration-daemon')
|
35
35
|
EGERIA_ENGINE_HOST = os.environ.get('INTEGRATION_ENGINE_HOST', 'engine-host')
|
36
|
+
EGERIA_ENGINE_HOST_URL = os.environ.get('INTEGRATION_ENGINE_HOST_URL', 'https://localhost:9443')
|
36
37
|
EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
37
38
|
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
38
39
|
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
@@ -122,7 +123,7 @@ def main_live():
|
|
122
123
|
args = parser.parse_args()
|
123
124
|
|
124
125
|
server = args.server if args.server is not None else EGERIA_ENGINE_HOST
|
125
|
-
url = args.url if args.url is not None else
|
126
|
+
url = args.url if args.url is not None else EGERIA_ENGINE_HOST_URL
|
126
127
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
127
128
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
128
129
|
display_gov_eng_status(server=server, url=url, username=userid, user_pass=user_pass, paging=False)
|
@@ -137,7 +138,7 @@ def main_paging():
|
|
137
138
|
args = parser.parse_args()
|
138
139
|
|
139
140
|
server = args.server if args.server is not None else EGERIA_ENGINE_HOST
|
140
|
-
url = args.url if args.url is not None else
|
141
|
+
url = args.url if args.url is not None else EGERIA_ENGINE_HOST_URL
|
141
142
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
142
143
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
143
144
|
display_gov_eng_status(server=server, url=url, username=userid, user_pass=user_pass, paging=True)
|
@@ -2,14 +2,16 @@ examples/doc_samples/Create_Collection_Sample.py,sha256=D8nhc4qLXIzAqVdJQjmFIS-j
|
|
2
2
|
examples/doc_samples/Create_Sustainability_Collection_Sample.py,sha256=iLBm1LwRLi42Gayyb-wcWZ5NySQ6sc4kVSmwIAzP2Po,5049
|
3
3
|
examples/widgets/catalog_user/README.md,sha256=aCCVo7iqyE-XGEvmoYXnkIGM0VskF95JTj6Egzec7LM,883
|
4
4
|
examples/widgets/catalog_user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
examples/widgets/catalog_user/get_asset_graph.py,sha256=
|
6
|
-
examples/widgets/catalog_user/get_collection.py,sha256=
|
7
|
-
examples/widgets/catalog_user/get_tech_type_elements.py,sha256=
|
8
|
-
examples/widgets/catalog_user/get_tech_type_template.py,sha256=
|
9
|
-
examples/widgets/catalog_user/list_assets.py,sha256=
|
10
|
-
examples/widgets/catalog_user/list_glossary.py,sha256=
|
5
|
+
examples/widgets/catalog_user/get_asset_graph.py,sha256=EM4J0kG-2dZKLvgEETqRnszPsoDr5OIGekjy9p38Pm8,11044
|
6
|
+
examples/widgets/catalog_user/get_collection.py,sha256=DBZ5-XkoYsz4WmMSPz0Ao0wz3DlAUQve89KI26-44nc,4613
|
7
|
+
examples/widgets/catalog_user/get_tech_type_elements.py,sha256=SvnDWfBIA1NzpkKZj4-ZapIeM2SEhe5jJt7rTkvTzaA,6129
|
8
|
+
examples/widgets/catalog_user/get_tech_type_template.py,sha256=gMFVcgCIm09GQu1Vsc5ZUVH9XLhItAG1eVGZJrcnHeQ,6174
|
9
|
+
examples/widgets/catalog_user/list_assets.py,sha256=y569wLu2hkaIpeDnXpJAbA9Tg9xKIliYIzewFcjFMBI,5909
|
10
|
+
examples/widgets/catalog_user/list_glossary.py,sha256=TDmOgUjr_pR9oaW5vhK-Tq5SLpz0FeYaKh0CL79s6zk,5427
|
11
|
+
examples/widgets/catalog_user/list_tech_types.py,sha256=20T4v6L5qeebSsaL1nGkFMDAIsy2W3A3SMm1RcgFoh0,4609
|
11
12
|
examples/widgets/cli/__init__.py,sha256=ReG7mIcm5c512S_z1UZIpMtE67zlO_zj-1HhHWYS4fI,30
|
12
|
-
examples/widgets/cli/
|
13
|
+
examples/widgets/cli/egeria_cat.py,sha256=ifuDk1AP_QZpcTnNA2G6hYFd4PObUcADNhSkz6HYeZA,8127
|
14
|
+
examples/widgets/cli/egeria_ops.py,sha256=Zsexe-dMY8wS_UHASmqmRg507wL947cQThkYz8BZkc8,9634
|
13
15
|
examples/widgets/cli/ops_config.py,sha256=BPfiU2mZA61aA1p1DHRA5eLWH8qaAwgWNoRmazzAlM4,1398
|
14
16
|
examples/widgets/developer/README.md,sha256=nxDnfr3BCiGgW5G1VxWxiwUWJXIe5wreNuUeRyIt_hY,1343
|
15
17
|
examples/widgets/developer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -19,18 +21,17 @@ examples/widgets/developer/list_asset_types.py,sha256=aHueMCVHmvrn331kgFrEzvTOxB
|
|
19
21
|
examples/widgets/developer/list_registered_services.py,sha256=AV6CfSt05RYfSPZT-jms3r10Q72r3ly4Ihu_y4YXKL8,6108
|
20
22
|
examples/widgets/developer/list_relationship_types.py,sha256=uRiLTy4Gk1Cryxvqj5Bo8f-Ll55SMC_XEzm8TsH0JqQ,5340
|
21
23
|
examples/widgets/developer/list_tech_templates.py,sha256=d1YARxPaRWG5Ri2I5m8OjBna4y0HxeWNyll8SiWLIaM,5943
|
22
|
-
examples/widgets/developer/list_tech_types.py,sha256=L12F7JP1-HXXQpzmPMzsTfP-Xy0tfsiKIwIh31aWPn0,4364
|
23
24
|
examples/widgets/developer/list_valid_metadata_values.py,sha256=jbJsqELH1MlsKTBR4zbuRnzCCd412I_atlrR0kkhBCs,5785
|
24
25
|
examples/widgets/operational/README.md,sha256=PJsSDcvMv6E6og6y-cwvxFX5lhCII0UCwgKiM1T17MQ,1595
|
25
26
|
examples/widgets/operational/__init__.py,sha256=SCfzF3-aMx8EpqLWmH7JQf13gTmMAtHRbg69oseLvi8,480
|
26
27
|
examples/widgets/operational/engine_actions.py,sha256=j4OL-Gpo4n8CAqcwdCRI8nnAm0F7NOEpX6Bp6FB-Pmg,3064
|
27
28
|
examples/widgets/operational/integration_daemon_actions.py,sha256=SacZaweJWYIUKgEu2B1y0iQXg0Aj4zeJjX4Jhs93TpM,3942
|
28
|
-
examples/widgets/operational/list_catalog_targets.py,sha256=
|
29
|
+
examples/widgets/operational/list_catalog_targets.py,sha256=VAWnT5lhteIgX5rKAWnFzFST2RVT3WMVv5E5nOdUkcw,6526
|
29
30
|
examples/widgets/operational/load_archive.py,sha256=j9K4uPpUzvqEyvsUMZoY0-1NVuljAwqcMg8Lhin_p1E,2280
|
30
31
|
examples/widgets/operational/monitor_asset_events.py,sha256=cjdlVqE0XYnoRW3aorNbsVkjByDXefPBnllaZLelGls,3838
|
31
32
|
examples/widgets/operational/monitor_coco_status.py,sha256=ERz3OJ0TXImNKHGD4gJvgT3pl2gS23ewAdUuYVLUhEE,3299
|
32
|
-
examples/widgets/operational/monitor_engine_activity.py,sha256=
|
33
|
-
examples/widgets/operational/monitor_gov_eng_status.py,sha256=
|
33
|
+
examples/widgets/operational/monitor_engine_activity.py,sha256=5ceNWogsJqKTxerBRWK68T4Qr5OcqnqZF1ERqFnYbGk,7282
|
34
|
+
examples/widgets/operational/monitor_gov_eng_status.py,sha256=cVRtA1Ub9uGf4fic1FnMwmzCwNEnU7joCqsjsiAZ7bg,5912
|
34
35
|
examples/widgets/operational/monitor_integ_daemon_status.py,sha256=IeRQ72Eh-PR13-lLxe7QeSqxei3LWiilXRT1lDs6vlc,8751
|
35
36
|
examples/widgets/operational/monitor_platform_status.py,sha256=pQEWt8Vy-5whF5aVC1IFLYsHLoCNUKtTz1DfOIWOBfw,5948
|
36
37
|
examples/widgets/operational/monitor_server_list.py,sha256=eHSeM5dW7Wyjp2zR_AD6_FalFnZ2dBaZKxtob2kva9I,4483
|
@@ -69,8 +70,8 @@ pyegeria/runtime_manager_omvs.py,sha256=WekK7Yeyn6Qu9YmbSDo3m57MN0xOsIm9M8kGHfRO
|
|
69
70
|
pyegeria/server_operations.py,sha256=ZX7FlJRrAC7RK4bq4wHWepEsYbbWlqkUZdsJrTplVVU,16534
|
70
71
|
pyegeria/utils.py,sha256=pkVmS3RrbjaS9yz7FtOCwaOfV5FMqz-__Rt5koCnd9c,5374
|
71
72
|
pyegeria/valid_metadata_omvs.py,sha256=aisdRodIwJSkyArAzfm_sEnBELh69xE8k4Nea-vHu8M,36745
|
72
|
-
pyegeria-0.5.8.
|
73
|
-
pyegeria-0.5.8.
|
74
|
-
pyegeria-0.5.8.
|
75
|
-
pyegeria-0.5.8.
|
76
|
-
pyegeria-0.5.8.
|
73
|
+
pyegeria-0.5.8.19.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
74
|
+
pyegeria-0.5.8.19.dist-info/METADATA,sha256=Ztx6zjaJ-qDagV-xGmxoZ2VpEIc8TqL6B-iw8qBZxHQ,2689
|
75
|
+
pyegeria-0.5.8.19.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
76
|
+
pyegeria-0.5.8.19.dist-info/entry_points.txt,sha256=f0Y00CKCkY9k2_p5mV_ce0InCNKAzI7kPPJ9A2x-Q4A,2867
|
77
|
+
pyegeria-0.5.8.19.dist-info/RECORD,,
|
@@ -1,16 +1,18 @@
|
|
1
1
|
[console_scripts]
|
2
|
+
egeria_cat=examples.widgets.cli.egeria_cat:cli
|
3
|
+
egeria_cat_tui=examples.widgets.cli.egeria_cat:tui
|
2
4
|
egeria_ops=examples.widgets.cli.egeria_ops:cli
|
3
5
|
egeria_ops_tui=examples.widgets.cli.egeria_ops:tui
|
4
6
|
get_asset_graph=examples.widgets.catalog_user.get_asset_graph:main
|
5
7
|
get_collection=examples.widgets.catalog_user.get_collection:main
|
6
8
|
get_guid_info=examples.widgets.developer.get_guid_info:main
|
7
9
|
get_tech_details=examples.widgets.developer.get_tech_details:main
|
8
|
-
get_tech_type_elements=examples.widgets.
|
9
|
-
get_tech_type_template=examples.widgets.
|
10
|
+
get_tech_type_elements=examples.widgets.catalog_user.get_tech_type_elements:main
|
11
|
+
get_tech_type_template=examples.widgets.catalog_user.get_tech_type_template:main
|
10
12
|
list_asset_types=examples.widgets.developer.list_asset_types:main
|
11
13
|
list_assets=examples.widgets.catalog_user.list_assets:main
|
12
14
|
list_catalog_targets=examples.widgets.operational.list_catalog_targets:main
|
13
|
-
|
15
|
+
list_engine_activity=examples.widgets.operational.monitor_engine_activity:main_paging
|
14
16
|
list_glossary=examples.widgets.catalog_user.list_glossary:main
|
15
17
|
list_gov_eng_status=examples.widgets.operational.monitor_gov_eng_status:main_paging
|
16
18
|
list_integ_daemon_status=examples.widgets.operational.monitor_integ_daemon_status:main_paging
|
@@ -19,14 +21,14 @@ list_projects=examples.widgets.personal_organizer.list_projects:main
|
|
19
21
|
list_registered_services=examples.widgets.developer.list_registered_services:main
|
20
22
|
list_relationship_types=examples.widgets.developer.list_relationship_types:main
|
21
23
|
list_tech_templates=examples.widgets.developer.list_tech_templates:main
|
22
|
-
list_tech_types=examples.widgets.
|
24
|
+
list_tech_types=examples.widgets.catalog_user.list_tech_types:main
|
23
25
|
list_todos=examples.widgets.personal_organizer.list_todos:main
|
24
26
|
list_valid_metadata_values=examples.widgets.developer.list_valid_metadata_values:main
|
25
27
|
load_archive=examples.widgets.operational.load_archive:load_archive
|
26
28
|
load_archive_tui=examples.widgets.operational.load_archive:tui
|
27
29
|
monitor_asset_events=examples.widgets.operational.monitor_asset_events:main
|
28
30
|
monitor_coco_status=examples.widgets.operational.monitor_coco_status:main
|
29
|
-
|
31
|
+
monitor_engine_activity=examples.widgets.operational.monitor_engine_activity:main_live
|
30
32
|
monitor_gov_eng_status=examples.widgets.operational.monitor_gov_eng_status:main_live
|
31
33
|
monitor_integ_daemon_status=examples.widgets.operational.monitor_integ_daemon_status:main_live
|
32
34
|
monitor_my_todos=examples.widgets.personal_organizer.monitor_my_todos:main
|
File without changes
|
File without changes
|