pyegeria 0.7.19__py3-none-any.whl → 0.7.21__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/cat/list_todos.py +1 -1
- examples/widgets/cat/list_user_ids.py +119 -0
- examples/widgets/cli/egeria.py +11 -2
- examples/widgets/cli/egeria_cat.py +9 -0
- examples/widgets/cli/egeria_ops.py +2 -2
- examples/widgets/my/monitor_open_todos.py +1 -1
- examples/widgets/my/todo_actions.py +67 -39
- examples/widgets/ops/engine_actions.py +35 -16
- pyegeria/glossary_manager_omvs.py +33 -135
- {pyegeria-0.7.19.dist-info → pyegeria-0.7.21.dist-info}/METADATA +1 -1
- {pyegeria-0.7.19.dist-info → pyegeria-0.7.21.dist-info}/RECORD +14 -13
- {pyegeria-0.7.19.dist-info → pyegeria-0.7.21.dist-info}/entry_points.txt +4 -1
- {pyegeria-0.7.19.dist-info → pyegeria-0.7.21.dist-info}/LICENSE +0 -0
- {pyegeria-0.7.19.dist-info → pyegeria-0.7.21.dist-info}/WHEEL +0 -0
@@ -96,7 +96,7 @@ def display_to_dos(search_string: str, status_filter: str, server: str, url: str
|
|
96
96
|
status = props.get("toDoStatus")
|
97
97
|
|
98
98
|
assigned_out = ''
|
99
|
-
assigned_actors = item
|
99
|
+
assigned_actors = item.get("assignedActors",'---')
|
100
100
|
if type(assigned_actors) is list:
|
101
101
|
assigned_md = ''
|
102
102
|
for actor in assigned_actors:
|
@@ -0,0 +1,119 @@
|
|
1
|
+
"""This creates a templates guid file from the core metadata archive"""
|
2
|
+
from rich.markdown import Markdown
|
3
|
+
from rich.prompt import Prompt
|
4
|
+
import os
|
5
|
+
import argparse
|
6
|
+
import time
|
7
|
+
import sys
|
8
|
+
from rich import box
|
9
|
+
from rich.console import Console
|
10
|
+
from rich.table import Table
|
11
|
+
|
12
|
+
from pyegeria import (
|
13
|
+
InvalidParameterException,
|
14
|
+
PropertyServerException,
|
15
|
+
UserNotAuthorizedException,
|
16
|
+
print_exception_response,
|
17
|
+
ClassificationManager
|
18
|
+
)
|
19
|
+
|
20
|
+
|
21
|
+
console = Console()
|
22
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
23
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get('KAFKA_ENDPOINT', 'localhost:9092')
|
24
|
+
EGERIA_PLATFORM_URL = os.environ.get('EGERIA_PLATFORM_URL', 'https://localhost:9443')
|
25
|
+
EGERIA_VIEW_SERVER = os.environ.get('VIEW_SERVER', 'view-server')
|
26
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get('EGERIA_VIEW_SERVER_URL', 'https://localhost:9443')
|
27
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get('INTEGRATION_DAEMON', 'integration-daemon')
|
28
|
+
EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
29
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
30
|
+
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
31
|
+
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
32
|
+
EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
|
33
|
+
EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
def list_user_ids(server: str,
|
38
|
+
url: str, username: str, password: str, jupyter:bool=EGERIA_JUPYTER, width:int = EGERIA_WIDTH
|
39
|
+
):
|
40
|
+
|
41
|
+
c_client = ClassificationManager(server, url, user_id=username, user_pwd=password)
|
42
|
+
token = c_client.create_egeria_bearer_token()
|
43
|
+
elements = c_client.get_elements('UserIdentity')
|
44
|
+
|
45
|
+
def generate_table() -> Table:
|
46
|
+
"""Make a new table."""
|
47
|
+
table = Table(
|
48
|
+
caption=f"Metadata Elements for: {url} - {server} @ {time.asctime()}",
|
49
|
+
style="bold bright_white on black",
|
50
|
+
row_styles=["bold bright_white on black"],
|
51
|
+
header_style="white on dark_blue",
|
52
|
+
title_style="bold bright_white on black",
|
53
|
+
caption_style="white on black",
|
54
|
+
show_lines=True,
|
55
|
+
box=box.ROUNDED,
|
56
|
+
title=f"Elements for Open Metadata Type: 'User Identities' ",
|
57
|
+
expand=True,
|
58
|
+
# width=500
|
59
|
+
)
|
60
|
+
|
61
|
+
table.add_column("Qualified Name")
|
62
|
+
table.add_column("Created")
|
63
|
+
table.add_column("GUID", width = 38,no_wrap=True)
|
64
|
+
table.add_column("UserId")
|
65
|
+
|
66
|
+
|
67
|
+
if type(elements) is list:
|
68
|
+
for element in elements:
|
69
|
+
header = element['elementHeader']
|
70
|
+
el_q_name = element['properties'].get('qualifiedName',"---")
|
71
|
+
el_create_time = header['versions']['createTime'][:-10]
|
72
|
+
el_guid = header['guid']
|
73
|
+
el_user_id = element['properties'].get('userId',"---")
|
74
|
+
|
75
|
+
table.add_row(el_q_name, el_create_time, el_guid, el_user_id)
|
76
|
+
|
77
|
+
return table
|
78
|
+
else:
|
79
|
+
print("No instances found")
|
80
|
+
sys.exit(1)
|
81
|
+
|
82
|
+
try:
|
83
|
+
console = Console(width=width, force_terminal=not jupyter)
|
84
|
+
|
85
|
+
with console.pager(styles=True):
|
86
|
+
console.print(generate_table())
|
87
|
+
|
88
|
+
except (InvalidParameterException, PropertyServerException, UserNotAuthorizedException) as e:
|
89
|
+
print_exception_response(e)
|
90
|
+
print("Perhaps the type name isn't known")
|
91
|
+
finally:
|
92
|
+
c_client.close_session()
|
93
|
+
|
94
|
+
|
95
|
+
def main():
|
96
|
+
parser = argparse.ArgumentParser()
|
97
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
98
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
99
|
+
parser.add_argument("--userid", help="User Id")
|
100
|
+
parser.add_argument("--password", help="Password")
|
101
|
+
|
102
|
+
args = parser.parse_args()
|
103
|
+
|
104
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
105
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
106
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
107
|
+
password = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
108
|
+
|
109
|
+
try:
|
110
|
+
list_user_ids(server, url, userid, password)
|
111
|
+
except(KeyboardInterrupt):
|
112
|
+
pass
|
113
|
+
|
114
|
+
|
115
|
+
if __name__ == "__main__":
|
116
|
+
main()
|
117
|
+
|
118
|
+
|
119
|
+
|
examples/widgets/cli/egeria.py
CHANGED
@@ -26,9 +26,10 @@ from examples.widgets.cat.list_tech_types import display_tech_types
|
|
26
26
|
from examples.widgets.cat.list_todos import display_to_dos as list_todos
|
27
27
|
from examples.widgets.cli.ops_config import Config
|
28
28
|
from examples.widgets.cat.list_relationships import list_relationships
|
29
|
+
from examples.widgets.cat.list_user_ids import list_user_ids
|
29
30
|
|
30
|
-
from examples.widgets.ops.engine_actions import
|
31
|
-
|
31
|
+
from examples.widgets.ops.engine_actions import start_daemon as start_engine_host, \
|
32
|
+
stop_daemon as stop_engine_host
|
32
33
|
from examples.widgets.ops.integration_daemon_actions import (add_catalog_target, remove_catalog_target,
|
33
34
|
update_catalog_target, stop_server, start_server)
|
34
35
|
from examples.widgets.ops.list_catalog_targets import display_catalog_targets
|
@@ -522,6 +523,14 @@ def show_todos(ctx, search_string, status):
|
|
522
523
|
list_todos(search_string, status, c.view_server, c.view_server_url, c.userid,
|
523
524
|
c.password, c.jupyter, c.width)
|
524
525
|
|
526
|
+
@show.command('user-ids')
|
527
|
+
@click.pass_context
|
528
|
+
def show_todos(ctx):
|
529
|
+
"""Display a tree graph of information about an asset """
|
530
|
+
c = ctx.obj
|
531
|
+
list_user_ids( c.view_server, c.view_server_url, c.userid,
|
532
|
+
c.password, c.jupyter, c.width)
|
533
|
+
|
525
534
|
|
526
535
|
#
|
527
536
|
# Catalog User: Tell
|
@@ -25,6 +25,7 @@ from examples.widgets.cat.get_project_structure import project_structure_viewer
|
|
25
25
|
from examples.widgets.cat.get_project_dependencies import project_dependency_viewer
|
26
26
|
from examples.widgets.cat.list_cert_types import display_certifications
|
27
27
|
from examples.widgets.cat.list_relationships import list_relationships
|
28
|
+
from examples.widgets.cat.list_user_ids import list_user_ids
|
28
29
|
|
29
30
|
# from pyegeria import ServerOps
|
30
31
|
from examples.widgets.cli.ops_config import Config
|
@@ -249,6 +250,14 @@ def show_todos(ctx, search_string, status):
|
|
249
250
|
list_todos(search_string, status, c.view_server, c.view_server_url, c.userid,
|
250
251
|
c.password, c.jupyter, c.width)
|
251
252
|
|
253
|
+
@show.command('user-ids')
|
254
|
+
@click.pass_context
|
255
|
+
def show_todos(ctx):
|
256
|
+
"""Display a tree graph of information about an asset """
|
257
|
+
c = ctx.obj
|
258
|
+
list_user_ids( c.view_server, c.view_server_url, c.userid,
|
259
|
+
c.password, c.jupyter, c.width)
|
260
|
+
|
252
261
|
#
|
253
262
|
# Tell
|
254
263
|
#
|
@@ -14,8 +14,8 @@ from trogon import tui
|
|
14
14
|
|
15
15
|
# from pyegeria import ServerOps
|
16
16
|
from examples.widgets.cli.ops_config import Config
|
17
|
-
from examples.widgets.ops.engine_actions import
|
18
|
-
|
17
|
+
from examples.widgets.ops.engine_actions import start_daemon as start_engine_host, \
|
18
|
+
stop_daemon as stop_engine_host
|
19
19
|
from examples.widgets.ops.integration_daemon_actions import (add_catalog_target, remove_catalog_target,
|
20
20
|
update_catalog_target, stop_server, start_server)
|
21
21
|
from examples.widgets.ops.list_catalog_targets import display_catalog_targets
|
@@ -95,7 +95,7 @@ def display_todos(server: str , url: str, user: str, user_pass:str,
|
|
95
95
|
priority = str(props.get("priority", " "))
|
96
96
|
due = props.get("dueTime", " ")
|
97
97
|
completed = props.get("completionTime", " ")
|
98
|
-
status = props.get("
|
98
|
+
status = props.get("todoStatus")
|
99
99
|
# assigned_actors = item["assignedActors"]
|
100
100
|
# sponsor = assigned_actors[0].get("uniqueName", " ")
|
101
101
|
sponsor = "erinoverview"
|
@@ -7,37 +7,52 @@ Copyright Contributors to the ODPi Egeria project.
|
|
7
7
|
Execute ToDo actions.
|
8
8
|
|
9
9
|
"""
|
10
|
-
import
|
10
|
+
import os
|
11
11
|
import time
|
12
12
|
|
13
13
|
import click
|
14
|
+
|
14
15
|
# from ops_config import Config, pass_config
|
15
|
-
from pyegeria import
|
16
|
+
from pyegeria import MyProfile
|
16
17
|
from pyegeria._exceptions import (
|
17
18
|
InvalidParameterException,
|
18
19
|
PropertyServerException,
|
19
|
-
UserNotAuthorizedException,
|
20
20
|
print_exception_response,
|
21
21
|
)
|
22
22
|
|
23
23
|
erins_guid = "a588fb08-ae09-4415-bd5d-991882ceacba"
|
24
|
-
peter_guid
|
25
|
-
tanya_guid
|
24
|
+
peter_guid = "a187bc48-8154-491f-97b4-a2f3c3f1a00e"
|
25
|
+
tanya_guid = "26ec1614-bede-4b25-a2a3-f8ed26db3aaa"
|
26
|
+
|
27
|
+
ERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
28
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get('KAFKA_ENDPOINT', 'localhost:9092')
|
29
|
+
EGERIA_PLATFORM_URL = os.environ.get('EGERIA_PLATFORM_URL', 'https://localhost:9443')
|
30
|
+
EGERIA_VIEW_SERVER = os.environ.get('VIEW_SERVER', 'view-server')
|
31
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get('EGERIA_VIEW_SERVER_URL', 'https://localhost:9443')
|
32
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get('INTEGRATION_DAEMON', 'integration-daemon')
|
33
|
+
EGERIA_INTEGRATION_DAEMON_URL = os.environ.get('EGERIA_INTEGRATION_DAEMON_URL', 'https://localhost:9443')
|
34
|
+
EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
35
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
36
|
+
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
37
|
+
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
26
38
|
|
27
39
|
|
28
40
|
@click.command('create-todo')
|
29
|
-
@click.option('--
|
30
|
-
@click.option('--
|
31
|
-
@click.option('--
|
32
|
-
@click.option('--
|
33
|
-
@click.option('--
|
34
|
-
@click.option('--
|
35
|
-
|
36
|
-
@click.
|
37
|
-
|
41
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
42
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
43
|
+
@click.option('--userid', default=EGERIA_USER, help='Egeria user')
|
44
|
+
@click.option('--password', default=EGERIA_USER_PASSWORD, help='Egeria user password')
|
45
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
46
|
+
@click.option('--name', prompt='Todo Name', help='Name of Todo', required=True)
|
47
|
+
@click.option('--description', prompt='Description', help='Brief description of To Do item', required=True)
|
48
|
+
@click.option('--type', prompt='Todo Type', help='Type of Todo', required=True, default='forMe')
|
49
|
+
@click.option('--priority', prompt='Todo Priority', type=int, help='Priority of Todo', required=True, default=0)
|
50
|
+
@click.option('--due', prompt='Due Date', help='Due date of Todo (yyyy-mm-dd)', required=True)
|
51
|
+
@click.option('--assigned-to', prompt='Assigned to', help='Party the Todo is assigned to', required=True,
|
52
|
+
default=peter_guid)
|
53
|
+
def create_todo(server, url, userid, password, timeout, name, description, type, priority, due, assigned_to):
|
38
54
|
"""Create a new ToDo item"""
|
39
|
-
|
40
|
-
m_client = MyProfile(c.view_server, c.view_server_url, user_id=c.userid, user_pwd=c.password)
|
55
|
+
m_client = MyProfile(server, url, user_id=userid, user_pwd=password)
|
41
56
|
token = m_client.create_egeria_bearer_token()
|
42
57
|
try:
|
43
58
|
body = {
|
@@ -51,7 +66,7 @@ def create_todo(ctx,name,description,type,priority,due,assigned_to):
|
|
51
66
|
"dueTime": due,
|
52
67
|
"status": "OPEN"
|
53
68
|
},
|
54
|
-
"assignToActorGUID":
|
69
|
+
"assignToActorGUID": assigned_to
|
55
70
|
}
|
56
71
|
|
57
72
|
resp = m_client.create_to_do(body)
|
@@ -66,14 +81,16 @@ def create_todo(ctx,name,description,type,priority,due,assigned_to):
|
|
66
81
|
m_client.close_session()
|
67
82
|
|
68
83
|
|
69
|
-
|
70
84
|
@click.command('delete-todo')
|
85
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
86
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
87
|
+
@click.option('--userid', default=EGERIA_USER, help='Egeria user')
|
88
|
+
@click.option('--password', default=EGERIA_USER_PASSWORD, help='Egeria user password')
|
89
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
71
90
|
@click.argument('todo-guid')
|
72
|
-
|
73
|
-
def delete_todo(ctx, todo_guid):
|
91
|
+
def delete_todo(server, url, userid, password, timeout, todo_guid):
|
74
92
|
"""Delete the todo item specified """
|
75
|
-
|
76
|
-
m_client = MyProfile(c.view_server, c.view_server_url, user_id=c.userid, user_pwd=c.password)
|
93
|
+
m_client = MyProfile(server, url, user_id=userid, user_pwd=password)
|
77
94
|
token = m_client.create_egeria_bearer_token()
|
78
95
|
try:
|
79
96
|
m_client.delete_to_do(todo_guid)
|
@@ -85,19 +102,23 @@ def delete_todo(ctx, todo_guid):
|
|
85
102
|
finally:
|
86
103
|
m_client.close_session()
|
87
104
|
|
105
|
+
|
88
106
|
@click.command('change-todo-status')
|
89
107
|
@click.argument('todo-guid')
|
90
|
-
@click.option('--
|
91
|
-
|
92
|
-
@click.
|
93
|
-
|
108
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
109
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
110
|
+
@click.option('--userid', default=EGERIA_USER, help='Egeria user')
|
111
|
+
@click.option('--password', default=EGERIA_USER_PASSWORD, help='Egeria user password')
|
112
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
113
|
+
@click.option('--new-status', type=click.Choice(['OPEN', 'IN_PROGRESS', 'WAITING', 'COMPLETE', 'ABANDONED'],
|
114
|
+
case_sensitive='False'), help='Enter the new ToDo item status',
|
115
|
+
required=True)
|
116
|
+
def change_todo_status(server, url, userid, password, timeout, todo_guid, new_status):
|
94
117
|
"""Update a ToDo item status"""
|
95
|
-
|
96
|
-
m_client = MyProfile(c.view_server, c.view_server_url, user_id=c.userid, user_pwd=c.password)
|
118
|
+
m_client = MyProfile(server, url, user_id=userid, user_pwd=password)
|
97
119
|
token = m_client.create_egeria_bearer_token()
|
98
120
|
try:
|
99
121
|
|
100
|
-
|
101
122
|
body = {
|
102
123
|
"properties": {
|
103
124
|
"class": "ToDoProperties",
|
@@ -113,19 +134,23 @@ def change_todo_status(ctx, todo_guid, new_status):
|
|
113
134
|
finally:
|
114
135
|
m_client.close_session()
|
115
136
|
|
137
|
+
|
116
138
|
@click.command('mark-todo-complete')
|
139
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
140
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
141
|
+
@click.option('--userid', default=EGERIA_USER, help='Egeria user')
|
142
|
+
@click.option('--password', default=EGERIA_USER_PASSWORD, help='Egeria user password')
|
143
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
117
144
|
@click.argument('todo-guid')
|
118
|
-
|
119
|
-
def mark_todo_complete(ctx, todo_guid):
|
145
|
+
def mark_todo_complete(server, url, userid, password, timeout, todo_guid):
|
120
146
|
"""Mark the specified todo as complete"""
|
121
147
|
try:
|
122
|
-
|
123
|
-
m_client = MyProfile(c.view_server, c.view_server_url, user_id=c.userid, user_pwd=c.password)
|
148
|
+
m_client = MyProfile(server, url, user_id=userid, user_pwd=password)
|
124
149
|
token = m_client.create_egeria_bearer_token()
|
125
150
|
body = {
|
126
151
|
"properties": {
|
127
152
|
"class": "ToDoProperties",
|
128
|
-
"completionTime"
|
153
|
+
"completionTime": time.asctime(),
|
129
154
|
"toDoStatus": "COMPLETE"
|
130
155
|
},
|
131
156
|
}
|
@@ -137,16 +162,19 @@ def mark_todo_complete(ctx, todo_guid):
|
|
137
162
|
print_exception_response(e)
|
138
163
|
finally:
|
139
164
|
m_client.close_session()
|
140
|
-
|
165
|
+
|
141
166
|
|
142
167
|
@click.command('reassign-todo')
|
168
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
169
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
170
|
+
@click.option('--userid', default=EGERIA_USER, help='Egeria user')
|
171
|
+
@click.option('--password', default=EGERIA_USER_PASSWORD, help='Egeria user password')
|
172
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
143
173
|
@click.argument('todo-guid')
|
144
174
|
@click.argument('new-actor-guid')
|
145
|
-
|
146
|
-
def reassign_todo(ctx, todo_guid, new_actor_guid):
|
175
|
+
def reassign_todo(server, url, userid, password, timeout, todo_guid, new_actor_guid):
|
147
176
|
"""Reassign ToDo item to new actor"""
|
148
|
-
|
149
|
-
m_client = MyProfile(c.view_server, c.view_server_url, user_id=c.userid, user_pwd=c.password)
|
177
|
+
m_client = MyProfile(server, url, user_id=userid, user_pwd=password)
|
150
178
|
token = m_client.create_egeria_bearer_token()
|
151
179
|
try:
|
152
180
|
|
@@ -7,46 +7,65 @@ Copyright Contributors to the ODPi Egeria project.
|
|
7
7
|
Execute engine actions.
|
8
8
|
|
9
9
|
"""
|
10
|
+
import os
|
11
|
+
|
10
12
|
import click
|
13
|
+
|
11
14
|
# from ops_config import Config, pass_config
|
12
|
-
from pyegeria import
|
15
|
+
from pyegeria import Platform
|
13
16
|
from pyegeria._exceptions import (
|
14
17
|
InvalidParameterException,
|
15
18
|
PropertyServerException,
|
16
|
-
UserNotAuthorizedException,
|
17
19
|
print_exception_response,
|
18
20
|
)
|
19
21
|
|
20
|
-
|
22
|
+
GERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
23
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get('KAFKA_ENDPOINT', 'localhost:9092')
|
24
|
+
EGERIA_PLATFORM_URL = os.environ.get('EGERIA_PLATFORM_URL', 'https://localhost:9443')
|
25
|
+
EGERIA_VIEW_SERVER = os.environ.get('VIEW_SERVER', 'view-server')
|
26
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get('EGERIA_VIEW_SERVER_URL', 'https://localhost:9443')
|
27
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get('INTEGRATION_DAEMON', 'integration-daemon')
|
28
|
+
EGERIA_INTEGRATION_DAEMON_URL = os.environ.get('EGERIA_INTEGRATION_DAEMON_URL', 'https://localhost:9443')
|
29
|
+
EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
|
30
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
|
31
|
+
EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
|
32
|
+
EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
|
21
33
|
|
22
34
|
|
23
35
|
@click.command('stop')
|
24
|
-
@click.
|
25
|
-
|
36
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
37
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
38
|
+
@click.option('--userid', default=EGERIA_ADMIN_USER, help='Egeria admin user')
|
39
|
+
@click.option('--password', default=EGERIA_ADMIN_PASSWORD, help='Egeria admin password')
|
40
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
41
|
+
def stop_daemon(file, server, url, userid, password, timeout):
|
26
42
|
"""Stop an engine-host daemon"""
|
43
|
+
p_client = Platform(server, url, userid, password)
|
27
44
|
try:
|
28
|
-
c = ctx.obj
|
29
|
-
p_client = Platform(c.engine_host, c.engine_host_url, c.admin_user, c.admin_user_password)
|
30
|
-
|
31
45
|
p_client.shutdown_server()
|
32
46
|
|
33
|
-
click.echo(f"Stopped server {
|
47
|
+
click.echo(f"Stopped server {server}")
|
34
48
|
except (InvalidParameterException, PropertyServerException) as e:
|
35
49
|
print_exception_response(e)
|
50
|
+
finally:
|
51
|
+
p_client.close_session()
|
36
52
|
|
37
53
|
|
38
54
|
@click.command('start')
|
39
|
-
@click.
|
40
|
-
|
55
|
+
@click.option('--server', default=EGERIA_VIEW_SERVER, help='Egeria metadata store to load')
|
56
|
+
@click.option('--url', default=EGERIA_VIEW_SERVER_URL, help='URL of Egeria platform to connect to')
|
57
|
+
@click.option('--userid', default=EGERIA_ADMIN_USER, help='Egeria admin user')
|
58
|
+
@click.option('--password', default=EGERIA_ADMIN_PASSWORD, help='Egeria admin password')
|
59
|
+
@click.option('--timeout', default=60, help='Number of seconds to wait')
|
60
|
+
def start_daemon(file, server, url, userid, password, timeout):
|
41
61
|
"""Start or restart an engine-host from its known configuration """
|
62
|
+
p_client = Platform(server, url, userid, password)
|
42
63
|
try:
|
43
|
-
c = ctx.obj
|
44
|
-
p_client = Platform(c.engine_host, c.engine_host_url, c.admin_user, c.admin_user_password)
|
45
|
-
|
46
64
|
p_client.activate_server_stored_config()
|
47
65
|
|
48
|
-
click.echo(f"Started server {
|
66
|
+
click.echo(f"Started server {server}")
|
49
67
|
|
50
68
|
except (InvalidParameterException, PropertyServerException) as e:
|
51
69
|
print_exception_response(e)
|
52
|
-
|
70
|
+
finally:
|
71
|
+
p_client.close_session()
|
@@ -7,7 +7,8 @@ added in subsequent versions of the glossary_omvs module.
|
|
7
7
|
|
8
8
|
"""
|
9
9
|
import asyncio
|
10
|
-
from datetime import datetime
|
10
|
+
from datetime import datetime
|
11
|
+
import time
|
11
12
|
|
12
13
|
# import json
|
13
14
|
from pyegeria._client import Client
|
@@ -48,7 +49,8 @@ class GlossaryManager(GlossaryBrowser):
|
|
48
49
|
# Get Valid Values for Enumerations
|
49
50
|
#
|
50
51
|
|
51
|
-
async def _async_create_glossary(self, display_name: str, description: str,
|
52
|
+
async def _async_create_glossary(self, display_name: str, description: str, language: str = "English",
|
53
|
+
usage: str = None, server_name: str = None) -> str:
|
52
54
|
""" Create a new glossary. Async version.
|
53
55
|
|
54
56
|
Parameters
|
@@ -57,6 +59,10 @@ class GlossaryManager(GlossaryBrowser):
|
|
57
59
|
The name of the new glossary. This will be used to produce a unique qualified name for the glossary.
|
58
60
|
description: str
|
59
61
|
A description of the glossary.
|
62
|
+
language: str, optional, default = "English"
|
63
|
+
The language the used for the glossary
|
64
|
+
usage: str, optional, default = None
|
65
|
+
How the glossary is intended to be used
|
60
66
|
server_name : str, optional
|
61
67
|
The name of the server to query. If not provided, the server name associated with the instance is used.
|
62
68
|
|
@@ -69,7 +75,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
69
75
|
if server_name is None:
|
70
76
|
server_name = self.server_name
|
71
77
|
|
72
|
-
url = f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries
|
78
|
+
url = f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries"
|
73
79
|
body = {
|
74
80
|
"class": "ReferenceableRequestBody",
|
75
81
|
"elementProperties":
|
@@ -77,13 +83,16 @@ class GlossaryManager(GlossaryBrowser):
|
|
77
83
|
"class": "GlossaryProperties",
|
78
84
|
"qualifiedName": f"Glossary-{display_name}-{time.asctime()}",
|
79
85
|
"displayName": display_name,
|
80
|
-
"description": description
|
86
|
+
"description": description,
|
87
|
+
"language" : language,
|
88
|
+
"usage" : usage
|
81
89
|
}
|
82
90
|
}
|
83
|
-
response = await self._async_make_request("POST", url, body)
|
91
|
+
response = await self._async_make_request("POST", url, body_slimmer(body))
|
84
92
|
return response.json().get("guid", None)
|
85
93
|
|
86
|
-
def create_glossary(self, display_name: str, description: str,
|
94
|
+
def create_glossary(self, display_name: str, description: str, language: str = "English", usage: str= None,
|
95
|
+
server_name: str = None) -> str:
|
87
96
|
""" Create a new glossary.
|
88
97
|
|
89
98
|
Parameters
|
@@ -92,6 +101,10 @@ class GlossaryManager(GlossaryBrowser):
|
|
92
101
|
The name of the new glossary. This will be used to produce a unique qualified name for the glossary.
|
93
102
|
description: str
|
94
103
|
A description of the glossary.
|
104
|
+
language: str, optional, default = "English"
|
105
|
+
The language the used for the glossary
|
106
|
+
usage: str, optional, default = None
|
107
|
+
How the glossary is intended to be used
|
95
108
|
server_name : str, optional
|
96
109
|
The name of the server to query. If not provided, the server name associated with the instance is used.
|
97
110
|
|
@@ -102,7 +115,8 @@ class GlossaryManager(GlossaryBrowser):
|
|
102
115
|
|
103
116
|
"""
|
104
117
|
loop = asyncio.get_event_loop()
|
105
|
-
response = loop.run_until_complete(self._async_create_glossary(display_name, description,
|
118
|
+
response = loop.run_until_complete(self._async_create_glossary(display_name, description, language,
|
119
|
+
usage, server_name))
|
106
120
|
return response
|
107
121
|
|
108
122
|
async def _async_delete_glossary(self, glossary_guid: str, server_name: str = None) -> None:
|
@@ -499,7 +513,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
499
513
|
if server_name is None:
|
500
514
|
server_name = self.server_name
|
501
515
|
|
502
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
516
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
503
517
|
f"{glossary_guid}/categories")
|
504
518
|
body = {
|
505
519
|
"class": "ReferenceableRequestBody",
|
@@ -590,7 +604,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
590
604
|
|
591
605
|
body = {"class": "EffectiveTimeQueryRequestBody", "effectiveTime": effective_time}
|
592
606
|
|
593
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
607
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
594
608
|
f"for-category/{glossary_category_guid}/retrieve")
|
595
609
|
|
596
610
|
response = await self._async_make_request("POST", url, body)
|
@@ -698,7 +712,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
698
712
|
body = {"class": "SearchStringRequestBody", "searchString": search_string, "effectiveTime": effective_time}
|
699
713
|
body = body_slimmer(body)
|
700
714
|
|
701
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
715
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
702
716
|
f"categories/by-search-string?startFrom={start_from}&pageSize={page_size}&startsWith={starts_with_s}&"
|
703
717
|
f"endsWith={ends_with_s}&ignoreCase={ignore_case_s}")
|
704
718
|
|
@@ -797,7 +811,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
797
811
|
if page_size is None:
|
798
812
|
page_size = self.page_size
|
799
813
|
|
800
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
814
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
801
815
|
f"{glossary_guid}/categories/retrieve?startFrom={start_from}&pageSize={page_size}")
|
802
816
|
|
803
817
|
response = await self._async_make_request("POST", url)
|
@@ -880,7 +894,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
880
894
|
if page_size is None:
|
881
895
|
page_size = self.page_size
|
882
896
|
|
883
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
897
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/terms/"
|
884
898
|
f"{glossary_term_guid}/categories/retrieve?startFrom={start_from}&pageSize={page_size}")
|
885
899
|
|
886
900
|
response = await self._async_make_request("POST", url)
|
@@ -1263,7 +1277,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1263
1277
|
server_name = self.server_name
|
1264
1278
|
validate_guid(glossary_guid)
|
1265
1279
|
|
1266
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1280
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
1267
1281
|
f"{glossary_guid}/terms/new-controlled"
|
1268
1282
|
)
|
1269
1283
|
|
@@ -1377,7 +1391,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1377
1391
|
validate_guid(glossary_guid)
|
1378
1392
|
validate_guid(glossary_term_guid)
|
1379
1393
|
|
1380
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1394
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
1381
1395
|
f"{glossary_guid}/terms/from-template/{glossary_term_guid}"
|
1382
1396
|
)
|
1383
1397
|
|
@@ -1492,7 +1506,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1492
1506
|
server_name = self.server_name
|
1493
1507
|
validate_guid(glossary_term_guid)
|
1494
1508
|
|
1495
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1509
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/glossaries/"
|
1496
1510
|
f"terms/{glossary_term_guid}/is-data-field"
|
1497
1511
|
)
|
1498
1512
|
|
@@ -1585,7 +1599,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1585
1599
|
server_name = self.server_name
|
1586
1600
|
validate_guid(glossary_term_guid)
|
1587
1601
|
|
1588
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1602
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/elements/"
|
1589
1603
|
f"{glossary_term_guid}/confidentiality"
|
1590
1604
|
)
|
1591
1605
|
|
@@ -1679,7 +1693,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1679
1693
|
server_name = self.server_name
|
1680
1694
|
validate_guid(glossary_term_guid)
|
1681
1695
|
|
1682
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1696
|
+
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/elements/"
|
1683
1697
|
f"{glossary_term_guid}/subject-area-member"
|
1684
1698
|
)
|
1685
1699
|
|
@@ -1785,7 +1799,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1785
1799
|
is_merge_update_s = str(is_merge_update).lower()
|
1786
1800
|
|
1787
1801
|
url = (
|
1788
|
-
f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1802
|
+
f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/terms/{glossary_term_guid}/"
|
1789
1803
|
f"update?isMergeUpdate={is_merge_update_s}"
|
1790
1804
|
)
|
1791
1805
|
|
@@ -1882,7 +1896,7 @@ class GlossaryManager(GlossaryBrowser):
|
|
1882
1896
|
validate_guid(glossary_term_guid)
|
1883
1897
|
|
1884
1898
|
url = (
|
1885
|
-
f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-
|
1899
|
+
f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-manager/terms/{glossary_term_guid}/"
|
1886
1900
|
f"update?isMergeUpdate=true"
|
1887
1901
|
)
|
1888
1902
|
|
@@ -2884,119 +2898,3 @@ class GlossaryManager(GlossaryBrowser):
|
|
2884
2898
|
|
2885
2899
|
return response
|
2886
2900
|
|
2887
|
-
#
|
2888
|
-
# Feedback
|
2889
|
-
#
|
2890
|
-
async def _async_get_comment(self, commemtGUID: str, effective_time: str, server_name: str = None,
|
2891
|
-
for_lineage: bool = False, for_duplicate_processing: bool = False) -> dict | list:
|
2892
|
-
""" Retrieve the comment specified by the comment GUID """
|
2893
|
-
if server_name is None:
|
2894
|
-
server_name = self.server_name
|
2895
|
-
|
2896
|
-
validate_guid(commemtGUID)
|
2897
|
-
|
2898
|
-
if effective_time is None:
|
2899
|
-
effective_time = datetime.now().isoformat()
|
2900
|
-
|
2901
|
-
for_lineage_s = str(for_lineage).lower()
|
2902
|
-
for_duplicate_processing_s = str(for_duplicate_processing).lower()
|
2903
|
-
|
2904
|
-
body = {"effective_time": effective_time}
|
2905
|
-
|
2906
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-browser/comments/"
|
2907
|
-
f"{commemtGUID}?forLineage={for_lineage_s}&"
|
2908
|
-
f"forDuplicateProcessing={for_duplicate_processing_s}")
|
2909
|
-
|
2910
|
-
# print(f"\n\nURL is: \n {url}\n\nBody is: \n{body}")
|
2911
|
-
|
2912
|
-
response = await self._async_make_request("POST", url, body)
|
2913
|
-
return response.json()
|
2914
|
-
|
2915
|
-
async def _async_add_comment_reply(self, commentGUID: str, is_public: bool, comment_type: str, comment_text: str,
|
2916
|
-
server_name: str = None, for_lineage: bool = False,
|
2917
|
-
for_duplicate_processing: bool = False) -> str:
|
2918
|
-
""" Reply to a comment """
|
2919
|
-
|
2920
|
-
if server_name is None:
|
2921
|
-
server_name = self.server_name
|
2922
|
-
|
2923
|
-
validate_guid(commentGUID)
|
2924
|
-
validate_name(comment_type)
|
2925
|
-
|
2926
|
-
is_public_s = str(is_public).lower()
|
2927
|
-
for_lineage_s = str(for_lineage).lower()
|
2928
|
-
for_duplicate_processing_s = str(for_duplicate_processing).lower()
|
2929
|
-
|
2930
|
-
body = {"class": "CommentRequestBody", "commentType": comment_type, "commentText": comment_text,
|
2931
|
-
"isPublic": is_public}
|
2932
|
-
|
2933
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-browser/comments/"
|
2934
|
-
f"{commentGUID}/replies?isPublic={is_public_s}&forLineage={for_lineage_s}&"
|
2935
|
-
f"forDuplicateProcessing={for_duplicate_processing_s}")
|
2936
|
-
|
2937
|
-
# print(f"\n\nURL is: \n {url}\n\nBody is: \n{body}")
|
2938
|
-
|
2939
|
-
response = await self._async_make_request("POST", url, body)
|
2940
|
-
return response
|
2941
|
-
|
2942
|
-
async def _async_update_comment(self, commentGUID: str, is_public: bool, comment_type: str, comment_text: str,
|
2943
|
-
server_name: str = None, is_merge_update: bool = False, for_lineage: bool = False,
|
2944
|
-
for_duplicate_processing: bool = False) -> str:
|
2945
|
-
""" Update the specified comment"""
|
2946
|
-
if server_name is None:
|
2947
|
-
server_name = self.server_name
|
2948
|
-
|
2949
|
-
validate_guid(commentGUID)
|
2950
|
-
validate_name(comment_type)
|
2951
|
-
|
2952
|
-
is_public_s = str(is_public).lower()
|
2953
|
-
for_lineage_s = str(for_lineage).lower()
|
2954
|
-
for_duplicate_processing_s = str(for_duplicate_processing).lower()
|
2955
|
-
|
2956
|
-
body = {"class": "CommentRequestBody", "commentType": comment_type, "commentText": comment_text,
|
2957
|
-
"isPublic": is_public}
|
2958
|
-
|
2959
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-browser/comments/"
|
2960
|
-
f"{commentGUID}/replies?isPublic={is_public_s}&forLineage={for_lineage_s}&"
|
2961
|
-
f"forDuplicateProcessing={for_duplicate_processing_s}")
|
2962
|
-
|
2963
|
-
# print(f"\n\nURL is: \n {url}\n\nBody is: \n{body}")
|
2964
|
-
|
2965
|
-
response = await self._async_make_request("POST", url, body)
|
2966
|
-
return response
|
2967
|
-
|
2968
|
-
async def _async_find_comment(self, search_string: str, glossary_guid: str = None, status_filter: list = [],
|
2969
|
-
effective_time: str = None, starts_with: bool = False, ends_with: bool = False,
|
2970
|
-
ignore_case: bool = False, for_lineage: bool = False,
|
2971
|
-
for_duplicate_processing: bool = False, server_name: str = None, start_from: int = 0,
|
2972
|
-
page_size: int = None):
|
2973
|
-
"""Find comments by search string"""
|
2974
|
-
if server_name is None:
|
2975
|
-
server_name = self.server_name
|
2976
|
-
if page_size is None:
|
2977
|
-
page_size = self.page_size
|
2978
|
-
if effective_time is None:
|
2979
|
-
effective_time = datetime.now().isoformat()
|
2980
|
-
starts_with_s = str(starts_with).lower()
|
2981
|
-
ends_with_s = str(ends_with).lower()
|
2982
|
-
ignore_case_s = str(ignore_case).lower()
|
2983
|
-
for_lineage_s = str(for_lineage).lower()
|
2984
|
-
for_duplicate_processing_s = str(for_duplicate_processing).lower()
|
2985
|
-
if search_string == '*':
|
2986
|
-
search_string = None
|
2987
|
-
|
2988
|
-
# validate_search_string(search_string)
|
2989
|
-
|
2990
|
-
body = {"class": "GlossarySearchStringRequestBody", "glossaryGUID": glossary_guid,
|
2991
|
-
"searchString": search_string, "effectiveTime": effective_time, "limitResultsByStatus": status_filter}
|
2992
|
-
# body = body_slimmer(body)
|
2993
|
-
|
2994
|
-
url = (f"{self.platform_url}/servers/{server_name}/api/open-metadata/glossary-browser/glossaries/"
|
2995
|
-
f"terms/by-search-string?startFrom={start_from}&pageSize={page_size}&startsWith={starts_with_s}&"
|
2996
|
-
f"endsWith={ends_with_s}&ignoreCase={ignore_case_s}&forLineage={for_lineage_s}&"
|
2997
|
-
f"forDuplicateProcessing={for_duplicate_processing_s}")
|
2998
|
-
|
2999
|
-
# print(f"\n\nURL is: \n {url}\n\nBody is: \n{body}")
|
3000
|
-
|
3001
|
-
response = await self._async_make_request("POST", url, body)
|
3002
|
-
return response.json().get("elementList", "No terms found")
|
@@ -14,12 +14,13 @@ examples/widgets/cat/list_glossary.py,sha256=zljSzVKYysFZVmVhHJt0fYFDmAG9azIphOs
|
|
14
14
|
examples/widgets/cat/list_projects.py,sha256=jP6HoVqGi-w4R1itgdAW1zamPLsgkvjvh8reRj0v10Q,7432
|
15
15
|
examples/widgets/cat/list_relationships.py,sha256=lRfnsMUc0KN6Gb3qJoHjAwYGrcvTk3oqQRxln1as9u8,5623
|
16
16
|
examples/widgets/cat/list_tech_types.py,sha256=20T4v6L5qeebSsaL1nGkFMDAIsy2W3A3SMm1RcgFoh0,4609
|
17
|
-
examples/widgets/cat/list_todos.py,sha256=
|
17
|
+
examples/widgets/cat/list_todos.py,sha256=n02XbTX8sMLmCmTFG0N0C1i_nz7WRCwt02fgYyLocEA,6276
|
18
|
+
examples/widgets/cat/list_user_ids.py,sha256=Nci_3KpLWj3Hcq8mbVcIe-cirV_T5C8A4blMb2iwbss,4232
|
18
19
|
examples/widgets/cli/__init__.py,sha256=6d_R0KZBNnJy9EBz9J2xvGFlx-3j_ZPqPCxKgdvYeDQ,291
|
19
|
-
examples/widgets/cli/egeria.py,sha256=
|
20
|
-
examples/widgets/cli/egeria_cat.py,sha256=
|
20
|
+
examples/widgets/cli/egeria.py,sha256=Jo1PlADWrjqFVo_ZduEECF-9-wSlJrBYsdM5_MNI0rc,26011
|
21
|
+
examples/widgets/cli/egeria_cat.py,sha256=h029HG863NFocEYiy6hCmIBGdOiLEJQx6WACNXNLUBE,11964
|
21
22
|
examples/widgets/cli/egeria_my.py,sha256=cGehUFrJKwNQ49CQ-rEX0M-6yjviRSb9KQjAcKD7Mq4,5993
|
22
|
-
examples/widgets/cli/egeria_ops.py,sha256=
|
23
|
+
examples/widgets/cli/egeria_ops.py,sha256=az3P2GkHc-DfkFdD92ulw7TZ0XjwWPWP0pGBMc2RYQY,10139
|
23
24
|
examples/widgets/cli/egeria_tech.py,sha256=AA2PNDKebdDObtrmjF6BHaSuSpNVeQgB61CSX1cBvsg,10255
|
24
25
|
examples/widgets/cli/ops_config.py,sha256=m4AfPjf-fR4EBTx8Dc2mcgrfWwAxb30YGeV-v79bg4U,1450
|
25
26
|
examples/widgets/my/README.md,sha256=ZheFhj_VoPMhcWjW3pGchHB0vH_A9PklSmrSkzKdrcQ,844
|
@@ -27,12 +28,12 @@ examples/widgets/my/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
27
28
|
examples/widgets/my/list_my_profile.py,sha256=zKNjG7iE0NNihnTv1ot1vodEJ321N-gfR6eTyHTWCQM,5479
|
28
29
|
examples/widgets/my/list_my_roles.py,sha256=DCiNdnoHXQueUE5g73D3oRXfJ6LaUQGbibNtDRdicR8,5078
|
29
30
|
examples/widgets/my/monitor_my_todos.py,sha256=2INaUuKE5obKysoGzJLPUpc-oRJvQsx8_qoGtv_eBDI,6405
|
30
|
-
examples/widgets/my/monitor_open_todos.py,sha256=
|
31
|
+
examples/widgets/my/monitor_open_todos.py,sha256=y7cmDe2r7O9xmIo-aFo3gQIgHrK7ZGsPjbSsHlJpiO8,5400
|
31
32
|
examples/widgets/my/my_profile_actions.py,sha256=SrlC0PSix0b78MCWJdGJAVgai8gbJmYyz1ou2ZVOkIs,3949
|
32
|
-
examples/widgets/my/todo_actions.py,sha256=
|
33
|
+
examples/widgets/my/todo_actions.py,sha256=a9A0ZJ_Y8zZ15Pdy6Dd5M1JZKS4-SHyiJcD_W7R8SFQ,8241
|
33
34
|
examples/widgets/ops/README.md,sha256=PJsSDcvMv6E6og6y-cwvxFX5lhCII0UCwgKiM1T17MQ,1595
|
34
35
|
examples/widgets/ops/__init__.py,sha256=SCfzF3-aMx8EpqLWmH7JQf13gTmMAtHRbg69oseLvi8,480
|
35
|
-
examples/widgets/ops/engine_actions.py,sha256=
|
36
|
+
examples/widgets/ops/engine_actions.py,sha256=i0-_wRJqdKARwnEwPQMJvr5bVEGi2WE9Np0_A-o6k3A,2978
|
36
37
|
examples/widgets/ops/integration_daemon_actions.py,sha256=m17Oi8NJfs1qPaV6qRadse3HhLQT16FQA0jAIUYuCTk,3951
|
37
38
|
examples/widgets/ops/list_catalog_targets.py,sha256=0FIZqZu7DSh7tnrme6EOhNiVvK8wyvN1iTZKEDuwTmw,6620
|
38
39
|
examples/widgets/ops/load_archive.py,sha256=duf3wq2ANRBiOj9KTFsw8TseEkJLKdzITAeTCjsMvI0,2453
|
@@ -76,7 +77,7 @@ pyegeria/create_tech_guid_lists.py,sha256=jClpvURy20o4UV83LOwhGg3TZdHGzfjZ9y0MNZ
|
|
76
77
|
pyegeria/feedback_manager_omvs.py,sha256=iDTT-wj1qf-xX9yy2V8eMezR5fDwowv9bQUH4sJofPo,164575
|
77
78
|
pyegeria/full_omag_server_config.py,sha256=l4G0oM6l-axosYACypqNqzkF6wELzs9FgKJwvDMF0Fc,45817
|
78
79
|
pyegeria/glossary_browser_omvs.py,sha256=nUCDSQ8cw8vuYgjfcaj1zLIefVI5j51evxPyXCIc4X8,101716
|
79
|
-
pyegeria/glossary_manager_omvs.py,sha256=
|
80
|
+
pyegeria/glossary_manager_omvs.py,sha256=MsvsTyyTzLbaIQttfhM-izVP06VsdWAueJiiMeKbVwY,128512
|
80
81
|
pyegeria/my_profile_omvs.py,sha256=gvodfLMTxCNBkK9pi28-sECNAkr-RiI1Y-eM-hiqsPg,42078
|
81
82
|
pyegeria/platform_services.py,sha256=T2UiAl7tPfOBGL_H2b73XyyHtR0Y36irgbaljZTjD4I,41808
|
82
83
|
pyegeria/project_manager_omvs.py,sha256=RRPiyEqrcMY3jt3wK-7aEwY3c3PqEodAfDjEJx9duX0,77121
|
@@ -85,8 +86,8 @@ pyegeria/runtime_manager_omvs.py,sha256=oSVFeG_yBGXIvQR0EClLZqTZ6C5z5ReZzwm8cce8
|
|
85
86
|
pyegeria/server_operations.py,sha256=1z2wZLdrNZG6HlswY_Eh8qI1mlcjsQ59zO-AMy9XbUU,16605
|
86
87
|
pyegeria/utils.py,sha256=pkVmS3RrbjaS9yz7FtOCwaOfV5FMqz-__Rt5koCnd9c,5374
|
87
88
|
pyegeria/valid_metadata_omvs.py,sha256=aisdRodIwJSkyArAzfm_sEnBELh69xE8k4Nea-vHu8M,36745
|
88
|
-
pyegeria-0.7.
|
89
|
-
pyegeria-0.7.
|
90
|
-
pyegeria-0.7.
|
91
|
-
pyegeria-0.7.
|
92
|
-
pyegeria-0.7.
|
89
|
+
pyegeria-0.7.21.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
90
|
+
pyegeria-0.7.21.dist-info/METADATA,sha256=yLOlSQCkekIgiVrvXqqSqYnR9V0bwyhZfaL3a34RcSU,2775
|
91
|
+
pyegeria-0.7.21.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
92
|
+
pyegeria-0.7.21.dist-info/entry_points.txt,sha256=22oy5-EM37ldb_-MPtiJygwXU217h8vb2_zT-7vn-yc,3571
|
93
|
+
pyegeria-0.7.21.dist-info/RECORD,,
|
@@ -13,8 +13,8 @@ get_tech_type_elements=examples.widgets.cat.get_tech_type_elements:main
|
|
13
13
|
get_tech_type_template=examples.widgets.cat.get_tech_type_template:main
|
14
14
|
hey_egeria=examples.widgets.cli.egeria:cli
|
15
15
|
hey_egeria_cat=examples.widgets.cli.egeria_cat:cli
|
16
|
+
hey_egeria_my=examples.widgets.cli.egeria_my:cli
|
16
17
|
hey_egeria_ops=examples.widgets.cli.egeria_ops:cli
|
17
|
-
hey_egeria_per=examples.widgets.cli.egeria_per:cli
|
18
18
|
hey_egeria_tech=examples.widgets.cli.egeria_cat:cli
|
19
19
|
list_asset_types=examples.widgets.tech.list_asset_types:main
|
20
20
|
list_assets=examples.widgets.cat.list_assets:main
|
@@ -34,6 +34,7 @@ list_relationships=examples.widgets.cat.list_relationships:main
|
|
34
34
|
list_tech_templates=examples.widgets.tech.list_tech_templates:main
|
35
35
|
list_tech_types=examples.widgets.cat.list_tech_types:main
|
36
36
|
list_todos=examples.widgets.cat.list_todos:main
|
37
|
+
list_user_ids=examples.widgets.cat.list_user_ids:main
|
37
38
|
list_valid_metadata_values=examples.widgets.tech.list_valid_metadata_values:main
|
38
39
|
load_archive=examples.widgets.ops.load_archive:load_archive
|
39
40
|
load_archive_tui=examples.widgets.ops.load_archive:tui
|
@@ -51,4 +52,6 @@ monitor_server_status=examples.widgets.ops.monitor_server_status:main
|
|
51
52
|
reassign_todo=examples.widgets.my.todo_actions:reassign_todo
|
52
53
|
refresh_integration_daemon=examples.widgets.ops.refresh_integration_daemon:main
|
53
54
|
restart_integration_daemon=examples.widgets.ops.restart_integration_daemon:main
|
55
|
+
start_daemon=examples.widgets.ops.engine_actions:start_daemon
|
56
|
+
stop_daemon=examples.widgets.ops.engine_actions:stop_daemon
|
54
57
|
|
File without changes
|
File without changes
|