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.
@@ -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["assignedActors"]
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
+
@@ -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 start_server as start_engine_host, \
31
- stop_server as stop_engine_host
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 start_server as start_engine_host, \
18
- stop_server as stop_engine_host
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("status")
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 json
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 ServerOps, AutomatedCuration, INTEGRATION_GUIDS, MyProfile
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 ="a187bc48-8154-491f-97b4-a2f3c3f1a00e"
25
- tanya_guid ="26ec1614-bede-4b25-a2a3-f8ed26db3aaa"
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('--name',prompt='Todo Name',help='Name of Todo', required=True)
30
- @click.option('--description',prompt='Description',help='Brief description of To Do item', required=True)
31
- @click.option('--type',prompt='Todo Type',help='Type of Todo', required=True, default = 'forMe')
32
- @click.option('--priority',prompt='Todo Priority',type = int, help='Priority of Todo', required=True, default= 0)
33
- @click.option('--due',prompt='Due Date',help='Due date of Todo (yyyy-mm-dd)', required=True)
34
- @click.option('--assigned-to',prompt='Assigned to',help='Party the Todo is assigned to', required=True,
35
- default = 'Peter')
36
- @click.pass_context
37
- def create_todo(ctx,name,description,type,priority,due,assigned_to):
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
- c = ctx.obj
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": peter_guid
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
- @click.pass_context
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
- c = ctx.obj
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('--new-status', type=click.Choice(['OPEN','IN_PROGRESS','WAITING','COMPLETE', 'ABANDONED'],
91
- case_sensitive='False'), help = 'Enter the new ToDo item status', required=True)
92
- @click.pass_context
93
- def change_todo_status(ctx, todo_guid, new_status):
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
- c = ctx.obj
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
- @click.pass_context
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
- c = ctx.obj
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" : time.asctime(),
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
- @click.pass_context
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
- c = ctx.obj
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 ServerOps, AutomatedCuration, INTEGRATION_GUIDS, Platform
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.pass_context
25
- def stop_server(ctx):
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 {c.engine_host}")
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.pass_context
40
- def start_server(ctx):
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 {c.engine_host}")
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, time
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, server_name: str = None) -> 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, server_name: str = None) -> 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, server_name))
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-browser/glossaries/"
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-browser/glossaries/"
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-browser/glossaries/"
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-browser/glossaries/"
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-browser/glossaries/terms/"
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-browser/glossaries/"
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-browser/glossaries/"
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-browser/glossaries/"
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-browser/elements/"
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-browser/elements/"
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-browser/terms/{glossary_term_guid}/"
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-browser/terms/{glossary_term_guid}/"
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")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyegeria
3
- Version: 0.7.19
3
+ Version: 0.7.21
4
4
  Summary: A python client for Egeria
5
5
  Home-page: https://github.com/odpi/egeria-python
6
6
  License: Apache 2.0
@@ -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=eAVJbygWnusX5puGhP41FgT2fO9K08a9oeJsOPiOS0E,6266
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=jkcJ4SwPp2SQt2wjmfUJABxl6UTluqFbu549MfIaoYc,25690
20
- examples/widgets/cli/egeria_cat.py,sha256=MLHZVH8HnY35E7Va0ueIHUjehpyYfrVAWbfu11J1m84,11643
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=Y2fNDFnaaMjt8vjOeUXneh4_WEyxp0ucMvIfdLn8Bik,10139
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=DIeWC-2tN1EtmgC2rWJfsGMVQhtNcngobJ8paBiXXBI,5396
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=F9rFjvM9FoKZlK55MzgPla6fOIk9W-JqZ2WsoeL4O-M,5445
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=DsigDB_CNOwyRPgYxhLWjmgJV1_7hK8ip11T9gXsc0o,1332
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=AyTNBeOwa7ISOkpjzHHEtpiFzFo0ykcEQ525h_wqfMM,133328
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.19.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
89
- pyegeria-0.7.19.dist-info/METADATA,sha256=pAGkNBHyZaVYavuNVAcxZSs7LjXVH6Gr-bqzNWHlHoo,2775
90
- pyegeria-0.7.19.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
91
- pyegeria-0.7.19.dist-info/entry_points.txt,sha256=2VMlZJaIGnqbFcp9ZQz-mjnuiF3_def2qcTV-sQT4QQ,3397
92
- pyegeria-0.7.19.dist-info/RECORD,,
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