pyegeria 1.5.1.0.3__py3-none-any.whl → 1.5.1.0.6__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.
- commands/cat/glossary_actions.py +212 -0
- commands/cat/list_deployed_catalogs.py +187 -0
- commands/cat/list_deployed_database_schemas.py +37 -13
- commands/cli/egeria.py +73 -0
- commands/cli/egeria_cat.py +54 -0
- commands/cli/egeria_tech.py +18 -1
- commands/my/todo_actions.py +5 -5
- commands/tech/list_gov_action_processes.py +139 -0
- pyegeria/automated_curation_omvs.py +2 -2
- pyegeria/classification_manager_omvs.py +2 -4
- pyegeria/glossary_manager_omvs.py +11 -0
- {pyegeria-1.5.1.0.3.dist-info → pyegeria-1.5.1.0.6.dist-info}/METADATA +1 -1
- {pyegeria-1.5.1.0.3.dist-info → pyegeria-1.5.1.0.6.dist-info}/RECORD +16 -13
- {pyegeria-1.5.1.0.3.dist-info → pyegeria-1.5.1.0.6.dist-info}/entry_points.txt +6 -0
- {pyegeria-1.5.1.0.3.dist-info → pyegeria-1.5.1.0.6.dist-info}/LICENSE +0 -0
- {pyegeria-1.5.1.0.3.dist-info → pyegeria-1.5.1.0.6.dist-info}/WHEEL +0 -0
@@ -0,0 +1,212 @@
|
|
1
|
+
"""
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
Execute Glossary actions.
|
8
|
+
|
9
|
+
"""
|
10
|
+
import os
|
11
|
+
import sys
|
12
|
+
import time
|
13
|
+
from datetime import datetime
|
14
|
+
|
15
|
+
import click
|
16
|
+
|
17
|
+
# from ops_config import Config, pass_config
|
18
|
+
from pyegeria import EgeriaTech, body_slimmer
|
19
|
+
from pyegeria._exceptions import (
|
20
|
+
InvalidParameterException,
|
21
|
+
PropertyServerException,
|
22
|
+
print_exception_response,
|
23
|
+
)
|
24
|
+
|
25
|
+
|
26
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
27
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
28
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
29
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
30
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
31
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
32
|
+
)
|
33
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
34
|
+
EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
|
35
|
+
"EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
|
36
|
+
)
|
37
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
38
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
39
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
40
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
41
|
+
|
42
|
+
|
43
|
+
@click.command("create-glossary")
|
44
|
+
@click.option("--name", help="Name of Glossary", required=True)
|
45
|
+
@click.option("--language", help="Language of Glossary", default="English")
|
46
|
+
@click.option(
|
47
|
+
"--description",
|
48
|
+
help="Description of Glossary",
|
49
|
+
default="A description goes here",
|
50
|
+
)
|
51
|
+
@click.option(
|
52
|
+
"--usage",
|
53
|
+
help="Purpose of glossary",
|
54
|
+
default="Definitions",
|
55
|
+
)
|
56
|
+
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use.")
|
57
|
+
@click.option(
|
58
|
+
"--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to"
|
59
|
+
)
|
60
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
61
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
62
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
63
|
+
def create_glossary(
|
64
|
+
server: str,
|
65
|
+
url: str,
|
66
|
+
userid: str,
|
67
|
+
password: str,
|
68
|
+
timeout: int,
|
69
|
+
name: str,
|
70
|
+
language: str,
|
71
|
+
description: str,
|
72
|
+
usage: str,
|
73
|
+
) -> None:
|
74
|
+
"""Create a new Glossary"""
|
75
|
+
|
76
|
+
try:
|
77
|
+
m_client = EgeriaTech(server, url, userid, password)
|
78
|
+
token = m_client.create_egeria_bearer_token()
|
79
|
+
|
80
|
+
existing_glossary = m_client.find_glossaries(name)
|
81
|
+
if type(existing_glossary) is list:
|
82
|
+
click.echo(f"\nFound {len(existing_glossary)} existing Glossaries\n")
|
83
|
+
for glossary in existing_glossary:
|
84
|
+
click.echo(
|
85
|
+
f"\tFound glossary: {glossary['glossaryProperties']['qualifiedName']} with id of {glossary['elementHeader']['guid']}\n"
|
86
|
+
)
|
87
|
+
sys.exit(0)
|
88
|
+
|
89
|
+
glossary_guid = m_client.create_glossary(name, language, description, usage)
|
90
|
+
print(f"New glossary {name} created with id of {glossary_guid}")
|
91
|
+
|
92
|
+
except (InvalidParameterException, PropertyServerException) as e:
|
93
|
+
print_exception_response(e)
|
94
|
+
finally:
|
95
|
+
m_client.close_session()
|
96
|
+
|
97
|
+
|
98
|
+
@click.command("delete-glossary")
|
99
|
+
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use")
|
100
|
+
@click.option(
|
101
|
+
"--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to"
|
102
|
+
)
|
103
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
104
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
105
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
106
|
+
@click.argument("glossary-guid")
|
107
|
+
def delete_glossary(server, url, userid, password, timeout, glossary_guid):
|
108
|
+
"""Delete the glossary specified"""
|
109
|
+
m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
|
110
|
+
token = m_client.create_egeria_bearer_token()
|
111
|
+
try:
|
112
|
+
m_client.delete_to_do(glossary_guid)
|
113
|
+
|
114
|
+
click.echo(f"Deleted Todo item {glossary_guid}")
|
115
|
+
|
116
|
+
except (InvalidParameterException, PropertyServerException) as e:
|
117
|
+
print_exception_response(e)
|
118
|
+
finally:
|
119
|
+
m_client.close_session()
|
120
|
+
|
121
|
+
|
122
|
+
@click.command("create-term")
|
123
|
+
@click.option("--glossary-name", help="Name of Glossary", required=True)
|
124
|
+
@click.option("--term-name", help="Name of Term", required=True)
|
125
|
+
@click.option(
|
126
|
+
"--summary",
|
127
|
+
help="Summary definition",
|
128
|
+
default="Summary goes here",
|
129
|
+
)
|
130
|
+
@click.option(
|
131
|
+
"--description",
|
132
|
+
help="Full description",
|
133
|
+
default="Description goes here",
|
134
|
+
)
|
135
|
+
@click.option("--abbrev", help="Abbreviation", default=None)
|
136
|
+
@click.option("--examples", help="Example usage", default=None)
|
137
|
+
@click.option("--usage", help="Usage notes", default=None)
|
138
|
+
@click.option("--version", help="Version", default="1.0")
|
139
|
+
@click.option(
|
140
|
+
"--status",
|
141
|
+
help="Status",
|
142
|
+
type=click.Choice(
|
143
|
+
["DRAFT", "ACTIVE", "DEPRACATED", "OBSOLETE", "OTHER"], case_sensitive=False
|
144
|
+
),
|
145
|
+
default="DRAFT",
|
146
|
+
)
|
147
|
+
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use.")
|
148
|
+
@click.option(
|
149
|
+
"--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to"
|
150
|
+
)
|
151
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
152
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
153
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
154
|
+
def create_term(
|
155
|
+
server,
|
156
|
+
url,
|
157
|
+
userid,
|
158
|
+
password,
|
159
|
+
timeout,
|
160
|
+
glossary_name,
|
161
|
+
term_name,
|
162
|
+
summary,
|
163
|
+
description,
|
164
|
+
abbrev,
|
165
|
+
examples,
|
166
|
+
usage,
|
167
|
+
version,
|
168
|
+
status,
|
169
|
+
):
|
170
|
+
"""Create a new term"""
|
171
|
+
m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
|
172
|
+
token = m_client.create_egeria_bearer_token()
|
173
|
+
try:
|
174
|
+
body = {
|
175
|
+
"class": "ReferenceableRequestBody",
|
176
|
+
"elementProperties": {
|
177
|
+
"class": "GlossaryTermProperties",
|
178
|
+
"qualifiedName": f"GlossaryTerm: {term_name} : {datetime.now().isoformat()}",
|
179
|
+
"displayName": term_name,
|
180
|
+
"summary": summary,
|
181
|
+
"description": description,
|
182
|
+
"abbreviation": abbrev,
|
183
|
+
"examples": examples,
|
184
|
+
"usage": usage,
|
185
|
+
"publishVersionIdentifier": version,
|
186
|
+
},
|
187
|
+
"initialStatus": status,
|
188
|
+
}
|
189
|
+
exists = False
|
190
|
+
glossary_info = m_client.find_glossaries(glossary_name)
|
191
|
+
if type(glossary_info) is list:
|
192
|
+
for glossary in glossary_info:
|
193
|
+
if glossary["glossaryProperties"]["displayName"] == glossary_name:
|
194
|
+
exists = True
|
195
|
+
glossary_guid = glossary["elementHeader"]["guid"]
|
196
|
+
|
197
|
+
if not exists:
|
198
|
+
click.echo(f"The glossary name {glossary_name} was not found..exiting\n")
|
199
|
+
sys.exit(0)
|
200
|
+
|
201
|
+
term_guid = m_client.create_controlled_glossary_term(
|
202
|
+
glossary_guid, body_slimmer(body)
|
203
|
+
)
|
204
|
+
|
205
|
+
click.echo(
|
206
|
+
f"Successfully created term {term_name} with GUID {term_guid}, in glossary {glossary_name}.\n"
|
207
|
+
)
|
208
|
+
|
209
|
+
except (InvalidParameterException, PropertyServerException) as e:
|
210
|
+
print_exception_response(e)
|
211
|
+
finally:
|
212
|
+
m_client.close_session()
|
@@ -0,0 +1,187 @@
|
|
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
|
+
EgeriaTech,
|
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(
|
27
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
28
|
+
)
|
29
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
30
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
31
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
32
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
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"))
|
36
|
+
|
37
|
+
|
38
|
+
def check_if_template(header: dict) -> bool:
|
39
|
+
"""Check if the the template classification is set"""
|
40
|
+
classifications = header.get("classifications", None)
|
41
|
+
if classifications is None:
|
42
|
+
return False
|
43
|
+
for c in classifications:
|
44
|
+
if c["type"]["typeName"] == "Template":
|
45
|
+
return True
|
46
|
+
return False
|
47
|
+
|
48
|
+
|
49
|
+
def list_deployed_catalogs(
|
50
|
+
uc_server_name: str,
|
51
|
+
server: str,
|
52
|
+
url: str,
|
53
|
+
username: str,
|
54
|
+
password: str,
|
55
|
+
jupyter: bool = EGERIA_JUPYTER,
|
56
|
+
width: int = EGERIA_WIDTH,
|
57
|
+
):
|
58
|
+
c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
|
59
|
+
token = c_client.create_egeria_bearer_token()
|
60
|
+
|
61
|
+
def generate_table() -> Table:
|
62
|
+
"""Make a new table."""
|
63
|
+
table = Table(
|
64
|
+
caption=f"Databases found: {url} - {server} @ {time.asctime()}",
|
65
|
+
style="bold bright_white on black",
|
66
|
+
row_styles=["bold bright_white on black"],
|
67
|
+
header_style="white on dark_blue",
|
68
|
+
title_style="bold bright_white on black",
|
69
|
+
caption_style="white on black",
|
70
|
+
show_lines=True,
|
71
|
+
box=box.ROUNDED,
|
72
|
+
# title=f"Elements for Open Metadata Type: '{om_type}' ",
|
73
|
+
expand=True,
|
74
|
+
# width=500
|
75
|
+
)
|
76
|
+
|
77
|
+
table.add_column("Catalog Name/GUID", width=38, no_wrap=True)
|
78
|
+
table.add_column("Catalog Server")
|
79
|
+
table.add_column("Properties")
|
80
|
+
table.add_column("Catalog Schemas")
|
81
|
+
|
82
|
+
om_type = "DeployedDatabaseSchema"
|
83
|
+
|
84
|
+
cats = c_client.get_elements_by_classification("Anchors", "Catalog")
|
85
|
+
if type(cats) is list:
|
86
|
+
for cat in cats:
|
87
|
+
header = cat["elementHeader"]
|
88
|
+
|
89
|
+
if check_if_template(header):
|
90
|
+
continue
|
91
|
+
el_guid = header["guid"]
|
92
|
+
el_name = cat["properties"].get("name", "---")
|
93
|
+
el_id = f"{el_name}\n{el_guid}"
|
94
|
+
el_home = header["origin"]["homeMetadataCollectionName"]
|
95
|
+
|
96
|
+
el_anchors_md = ""
|
97
|
+
class_info = header["classifications"]
|
98
|
+
for class_i in class_info:
|
99
|
+
class_prop = class_i.get("classificationProperties", None)
|
100
|
+
if class_prop:
|
101
|
+
for anchor in class_prop.keys():
|
102
|
+
if anchor == "anchorGUID":
|
103
|
+
server_guid = class_prop[anchor]
|
104
|
+
el_anchors_md += f"* **{anchor}**: {class_prop[anchor]}\n"
|
105
|
+
el_anchors_out = Markdown(el_anchors_md)
|
106
|
+
|
107
|
+
el_props_md = ""
|
108
|
+
for prop in cat["properties"].keys():
|
109
|
+
el_props_md += f"* **{prop}**: {cat['properties'][prop]}\n"
|
110
|
+
el_props_out = Markdown(el_props_md)
|
111
|
+
|
112
|
+
schemas = c_client.get_elements_by_classification_with_property_value(
|
113
|
+
"Anchors", el_guid, ["anchorGUID"], "DeployedDatabaseSchema"
|
114
|
+
)
|
115
|
+
schemas_md = ""
|
116
|
+
if type(schemas) is list:
|
117
|
+
for schema in schemas:
|
118
|
+
schema_md = ""
|
119
|
+
schema_props = schema["properties"]
|
120
|
+
for key in schema_props.keys():
|
121
|
+
schema_md += f"* **{key}**: {schema_props[key]}\n"
|
122
|
+
schemas_md += schema_md
|
123
|
+
schemas_md_out = Markdown(schemas_md)
|
124
|
+
|
125
|
+
element_info = c_client.get_element_by_guid(server_guid)
|
126
|
+
element_info_md = ""
|
127
|
+
for key in element_info["properties"].keys():
|
128
|
+
element_info_md += (
|
129
|
+
f"* **{key}**: {element_info['properties'][key]}\n"
|
130
|
+
)
|
131
|
+
element_info_out = Markdown(element_info_md)
|
132
|
+
|
133
|
+
table.add_row(
|
134
|
+
el_id,
|
135
|
+
element_info_out,
|
136
|
+
el_props_out,
|
137
|
+
schemas_md_out,
|
138
|
+
)
|
139
|
+
|
140
|
+
return table
|
141
|
+
else:
|
142
|
+
print("No instances found")
|
143
|
+
sys.exit(1)
|
144
|
+
|
145
|
+
try:
|
146
|
+
console = Console(width=width, force_terminal=not jupyter)
|
147
|
+
|
148
|
+
with console.pager(styles=True):
|
149
|
+
console.print(generate_table())
|
150
|
+
|
151
|
+
except (
|
152
|
+
InvalidParameterException,
|
153
|
+
PropertyServerException,
|
154
|
+
UserNotAuthorizedException,
|
155
|
+
) as e:
|
156
|
+
print_exception_response(e)
|
157
|
+
print("\n\nPerhaps the type name isn't known")
|
158
|
+
finally:
|
159
|
+
c_client.close_session()
|
160
|
+
|
161
|
+
|
162
|
+
def main():
|
163
|
+
parser = argparse.ArgumentParser()
|
164
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
165
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
166
|
+
parser.add_argument("--userid", help="User Id")
|
167
|
+
parser.add_argument("--password", help="Password")
|
168
|
+
|
169
|
+
args = parser.parse_args()
|
170
|
+
|
171
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
172
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
173
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
174
|
+
password = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
175
|
+
|
176
|
+
try:
|
177
|
+
# uc_server_name = Prompt.ask(
|
178
|
+
# "Enter the name of a server to retrieve schemas for", default="*"
|
179
|
+
# )
|
180
|
+
uc_server_name = None
|
181
|
+
list_deployed_catalogs(uc_server_name, server, url, userid, password)
|
182
|
+
except KeyboardInterrupt:
|
183
|
+
pass
|
184
|
+
|
185
|
+
|
186
|
+
if __name__ == "__main__":
|
187
|
+
main()
|
@@ -74,19 +74,25 @@ def list_deployed_database_schemas(
|
|
74
74
|
# width=500
|
75
75
|
)
|
76
76
|
|
77
|
-
table.add_column("
|
78
|
-
table.add_column("
|
79
|
-
|
80
|
-
table.add_column("Home Store")
|
81
|
-
table.add_column("GUID", width=38, no_wrap=True)
|
82
|
-
table.add_column("Properties")
|
83
|
-
table.add_column("
|
77
|
+
table.add_column("Schema in Catalog")
|
78
|
+
table.add_column("Schema Properties")
|
79
|
+
|
80
|
+
# table.add_column("Home Store")
|
81
|
+
# table.add_column("GUID", width=38, no_wrap=True)
|
82
|
+
# table.add_column("Properties")
|
83
|
+
table.add_column("Cataloged Resource")
|
84
84
|
|
85
85
|
om_type = "DeployedDatabaseSchema"
|
86
|
+
|
87
|
+
# get the guid for the database or catalog
|
88
|
+
|
86
89
|
if db_name in (None, "*"):
|
87
90
|
dbs = c_client.get_elements(om_type)
|
88
91
|
else:
|
89
|
-
|
92
|
+
db_guid = c_client.get_guid_for_name(db_name)
|
93
|
+
dbs = c_client.get_elements_by_classification_with_property_value(
|
94
|
+
"Anchors", db_guid, ["anchorGUID"], om_type
|
95
|
+
)
|
90
96
|
|
91
97
|
if type(dbs) is list:
|
92
98
|
for element in dbs:
|
@@ -108,6 +114,24 @@ def list_deployed_database_schemas(
|
|
108
114
|
|
109
115
|
el_guid = header["guid"]
|
110
116
|
|
117
|
+
el_classification = header["classifications"]
|
118
|
+
for c in el_classification:
|
119
|
+
if c["type"]["typeName"] == "Anchors":
|
120
|
+
el_anchor_guid = c["classificationProperties"]["anchorGUID"]
|
121
|
+
el_anchor_type_name = c["classificationProperties"][
|
122
|
+
"anchorTypeName"
|
123
|
+
]
|
124
|
+
if el_anchor_type_name == "Catalog":
|
125
|
+
el_cat = c_client.get_element_by_guid(el_anchor_guid)
|
126
|
+
el_cat_name = el_cat["properties"].get("name", None)
|
127
|
+
if el_cat_name is None:
|
128
|
+
el_cat_name = el_cat["properties"].get(
|
129
|
+
"qualifiedName", "---"
|
130
|
+
)
|
131
|
+
el_cat_guid = el_cat["elementHeader"]["guid"]
|
132
|
+
el_schema_id = (
|
133
|
+
f"{el_name}\n{el_guid}\n\n\t\tin\n\n{el_cat_name}\n{el_cat_guid}"
|
134
|
+
)
|
111
135
|
el_props_md = ""
|
112
136
|
for prop in element["properties"].keys():
|
113
137
|
el_props_md += f"* **{prop}**: {element['properties'][prop]}\n"
|
@@ -139,11 +163,11 @@ def list_deployed_database_schemas(
|
|
139
163
|
rel_el_out = Markdown(rel_el_md)
|
140
164
|
|
141
165
|
table.add_row(
|
142
|
-
|
143
|
-
el_type,
|
144
|
-
el_created_out,
|
145
|
-
el_home,
|
146
|
-
el_guid,
|
166
|
+
el_schema_id,
|
167
|
+
# el_type,
|
168
|
+
# el_created_out,
|
169
|
+
# el_home,
|
170
|
+
# el_guid,
|
147
171
|
el_props_out,
|
148
172
|
rel_el_out,
|
149
173
|
)
|
commands/cli/egeria.py
CHANGED
@@ -32,6 +32,16 @@ from commands.my.list_my_profile import display_my_profile
|
|
32
32
|
from commands.my.list_my_roles import display_my_roles
|
33
33
|
from commands.my.monitor_my_todos import display_my_todos
|
34
34
|
from commands.my.monitor_open_todos import display_todos
|
35
|
+
from commands.cat.list_deployed_database_schemas import list_deployed_database_schemas
|
36
|
+
from commands.cat.list_deployed_catalogs import list_deployed_catalogs
|
37
|
+
from commands.cat.glossary_actions import create_glossary, delete_glossary, create_term
|
38
|
+
from commands.my.todo_actions import (
|
39
|
+
mark_todo_complete,
|
40
|
+
reassign_todo,
|
41
|
+
delete_todo,
|
42
|
+
create_todo,
|
43
|
+
)
|
44
|
+
|
35
45
|
|
36
46
|
from commands.ops.gov_server_actions import (
|
37
47
|
add_catalog_target,
|
@@ -71,6 +81,7 @@ from commands.tech.list_related_specification import (
|
|
71
81
|
from commands.tech.list_relationship_types import display_relationship_types
|
72
82
|
from commands.tech.list_tech_templates import display_templates_spec
|
73
83
|
from commands.tech.list_valid_metadata_values import display_metadata_values
|
84
|
+
from commands.tech.list_gov_action_processes import display_gov_processes
|
74
85
|
|
75
86
|
|
76
87
|
@tui()
|
@@ -540,6 +551,23 @@ def tech_template_spec(ctx, search_string):
|
|
540
551
|
)
|
541
552
|
|
542
553
|
|
554
|
+
@show.command("gov-action-processes")
|
555
|
+
@click.pass_context
|
556
|
+
@click.option("--search-string", default="*", help="Search string")
|
557
|
+
def gov_action_processes(ctx, search_string):
|
558
|
+
"""Display available governance action processes."""
|
559
|
+
c = ctx.obj
|
560
|
+
display_gov_processes(
|
561
|
+
search_string,
|
562
|
+
c.view_server,
|
563
|
+
c.view_server_url,
|
564
|
+
c.userid,
|
565
|
+
c.password,
|
566
|
+
c.jupyter,
|
567
|
+
c.width,
|
568
|
+
)
|
569
|
+
|
570
|
+
|
543
571
|
@show.command("valid-metadata-values")
|
544
572
|
@click.pass_context
|
545
573
|
@click.option("--property", default="projectHealth", help="Metadata property to query")
|
@@ -888,6 +916,42 @@ def list_archives(ctx):
|
|
888
916
|
)
|
889
917
|
|
890
918
|
|
919
|
+
@show.command("list-deployed-schemas")
|
920
|
+
@click.option("--search-string", default="*", help="What database or catalog to search")
|
921
|
+
@click.pass_context
|
922
|
+
def list_deployed_schemas(search_string, ctx):
|
923
|
+
"""Display a tree graph of information about an asset"""
|
924
|
+
c = ctx.obj
|
925
|
+
list_deployed_database_schemas(
|
926
|
+
search_string,
|
927
|
+
c.view_server,
|
928
|
+
c.view_server_url,
|
929
|
+
c.userid,
|
930
|
+
c.password,
|
931
|
+
None,
|
932
|
+
c.jupyter,
|
933
|
+
c.width,
|
934
|
+
)
|
935
|
+
|
936
|
+
|
937
|
+
@show.command("list-catalogs")
|
938
|
+
# @click.option("--search-string", default="*", help="What database or catalog to search")
|
939
|
+
@click.pass_context
|
940
|
+
def list_catalogs(ctx):
|
941
|
+
"""Display a tree graph of information about an asset"""
|
942
|
+
c = ctx.obj
|
943
|
+
list_deployed_catalogs(
|
944
|
+
" ",
|
945
|
+
c.view_server,
|
946
|
+
c.view_server_url,
|
947
|
+
c.userid,
|
948
|
+
c.password,
|
949
|
+
None,
|
950
|
+
c.jupyter,
|
951
|
+
c.width,
|
952
|
+
)
|
953
|
+
|
954
|
+
|
891
955
|
#
|
892
956
|
# Catalog User: Tell
|
893
957
|
#
|
@@ -900,6 +964,15 @@ def tell(ctx):
|
|
900
964
|
pass
|
901
965
|
|
902
966
|
|
967
|
+
tell.add_command(create_glossary)
|
968
|
+
tell.add_command(delete_glossary)
|
969
|
+
tell.add_command(create_term)
|
970
|
+
tell.add_command(mark_todo_complete)
|
971
|
+
tell.add_command(reassign_todo)
|
972
|
+
tell.add_command(delete_todo)
|
973
|
+
tell.add_command(create_todo)
|
974
|
+
|
975
|
+
|
903
976
|
@tell.group("survey")
|
904
977
|
@click.pass_context
|
905
978
|
def survey(ctx):
|
commands/cli/egeria_cat.py
CHANGED
@@ -27,9 +27,18 @@ from commands.cat.list_cert_types import display_certifications
|
|
27
27
|
from commands.cat.list_relationships import list_relationships
|
28
28
|
from commands.cat.list_user_ids import list_user_ids
|
29
29
|
from commands.cat.list_archives import display_archive_list
|
30
|
+
from commands.cat.list_deployed_database_schemas import list_deployed_database_schemas
|
31
|
+
from commands.cat.list_deployed_catalogs import list_deployed_catalogs
|
32
|
+
from commands.cat.glossary_actions import create_glossary, delete_glossary, create_term
|
30
33
|
|
31
34
|
# from pyegeria import ServerOps
|
32
35
|
from commands.cli.ops_config import Config
|
36
|
+
from commands.my.todo_actions import (
|
37
|
+
mark_todo_complete,
|
38
|
+
reassign_todo,
|
39
|
+
delete_todo,
|
40
|
+
create_todo,
|
41
|
+
)
|
33
42
|
|
34
43
|
|
35
44
|
# class Config(object):
|
@@ -486,6 +495,42 @@ def list_archives(ctx):
|
|
486
495
|
)
|
487
496
|
|
488
497
|
|
498
|
+
@show.command("list-deployed-schemas")
|
499
|
+
@click.option("--search-string", default="*", help="What database or catalog to search")
|
500
|
+
@click.pass_context
|
501
|
+
def list_deployed_schemas(search_string, ctx):
|
502
|
+
"""Display a tree graph of information about an asset"""
|
503
|
+
c = ctx.obj
|
504
|
+
list_deployed_database_schemas(
|
505
|
+
search_string,
|
506
|
+
c.view_server,
|
507
|
+
c.view_server_url,
|
508
|
+
c.userid,
|
509
|
+
c.password,
|
510
|
+
None,
|
511
|
+
c.jupyter,
|
512
|
+
c.width,
|
513
|
+
)
|
514
|
+
|
515
|
+
|
516
|
+
@show.command("list-catalogs")
|
517
|
+
# @click.option("--search-string", default="*", help="What database or catalog to search")
|
518
|
+
@click.pass_context
|
519
|
+
def list_catalogs(ctx):
|
520
|
+
"""Display a tree graph of information about an asset"""
|
521
|
+
c = ctx.obj
|
522
|
+
list_deployed_catalogs(
|
523
|
+
" ",
|
524
|
+
c.view_server,
|
525
|
+
c.view_server_url,
|
526
|
+
c.userid,
|
527
|
+
c.password,
|
528
|
+
None,
|
529
|
+
c.jupyter,
|
530
|
+
c.width,
|
531
|
+
)
|
532
|
+
|
533
|
+
|
489
534
|
#
|
490
535
|
# Tell
|
491
536
|
#
|
@@ -498,6 +543,15 @@ def tell(ctx):
|
|
498
543
|
pass
|
499
544
|
|
500
545
|
|
546
|
+
tell.add_command(create_glossary)
|
547
|
+
tell.add_command(delete_glossary)
|
548
|
+
tell.add_command(create_term)
|
549
|
+
tell.add_command(mark_todo_complete)
|
550
|
+
tell.add_command(reassign_todo)
|
551
|
+
tell.add_command(delete_todo)
|
552
|
+
tell.add_command(create_todo)
|
553
|
+
|
554
|
+
|
501
555
|
@tell.group("survey")
|
502
556
|
@click.pass_context
|
503
557
|
def survey(ctx):
|
commands/cli/egeria_tech.py
CHANGED
@@ -29,7 +29,7 @@ from commands.tech.list_related_specification import (
|
|
29
29
|
)
|
30
30
|
from commands.tech.list_related_elements import list_related_elements
|
31
31
|
from commands.tech.list_elements_for_classification import list_classified_elements
|
32
|
-
|
32
|
+
from commands.tech.list_gov_action_processes import display_gov_processes
|
33
33
|
|
34
34
|
# from pyegeria import ServerOps
|
35
35
|
|
@@ -429,6 +429,23 @@ def tech_template_spec(ctx, search_string):
|
|
429
429
|
)
|
430
430
|
|
431
431
|
|
432
|
+
@show.command("gov-action-processes")
|
433
|
+
@click.pass_context
|
434
|
+
@click.option("--search-string", default="*", help="Search string")
|
435
|
+
def gov_action_processes(ctx, search_string):
|
436
|
+
"""Display available governance action processes."""
|
437
|
+
c = ctx.obj
|
438
|
+
display_gov_processes(
|
439
|
+
search_string,
|
440
|
+
c.view_server,
|
441
|
+
c.view_server_url,
|
442
|
+
c.userid,
|
443
|
+
c.password,
|
444
|
+
c.jupyter,
|
445
|
+
c.width,
|
446
|
+
)
|
447
|
+
|
448
|
+
|
432
449
|
@show.command("valid-metadata-values")
|
433
450
|
@click.pass_context
|
434
451
|
@click.option("--property", default="projectHealth", help="Metadata property to query")
|
commands/my/todo_actions.py
CHANGED
@@ -25,7 +25,7 @@ erins_guid = "a588fb08-ae09-4415-bd5d-991882ceacba"
|
|
25
25
|
peter_guid = "a187bc48-8154-491f-97b4-a2f3c3f1a00e"
|
26
26
|
tanya_guid = "26ec1614-bede-4b25-a2a3-f8ed26db3aaa"
|
27
27
|
|
28
|
-
|
28
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
29
29
|
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
30
30
|
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
31
31
|
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
@@ -43,11 +43,11 @@ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
43
43
|
|
44
44
|
|
45
45
|
@click.command("create-todo")
|
46
|
+
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use.")
|
46
47
|
@click.option(
|
47
|
-
"--
|
48
|
-
|
49
|
-
|
50
|
-
"--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to"
|
48
|
+
"--url",
|
49
|
+
default=EGERIA_VIEW_SERVER_URL,
|
50
|
+
help="URL of Egeria platform to connect to.",
|
51
51
|
)
|
52
52
|
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
53
53
|
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
@@ -0,0 +1,139 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-Lic
|
4
|
+
ense-Identifier: Apache-2.0
|
5
|
+
Copyright Contributors to the ODPi Egeria project.
|
6
|
+
|
7
|
+
|
8
|
+
List the currently loaded Governance Action Processes.
|
9
|
+
"""
|
10
|
+
import argparse
|
11
|
+
import os
|
12
|
+
import sys
|
13
|
+
import time
|
14
|
+
|
15
|
+
from rich import box
|
16
|
+
from rich import print
|
17
|
+
from rich.console import Console
|
18
|
+
from rich.prompt import Prompt
|
19
|
+
from rich.table import Table
|
20
|
+
|
21
|
+
from pyegeria import (
|
22
|
+
InvalidParameterException,
|
23
|
+
PropertyServerException,
|
24
|
+
UserNotAuthorizedException,
|
25
|
+
print_exception_response,
|
26
|
+
EgeriaTech,
|
27
|
+
)
|
28
|
+
from pyegeria import ValidMetadataManager
|
29
|
+
|
30
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
31
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
32
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
33
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
34
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
35
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
36
|
+
)
|
37
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
38
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
39
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
40
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
41
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
42
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
43
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
44
|
+
|
45
|
+
|
46
|
+
def display_gov_processes(
|
47
|
+
type_name: str,
|
48
|
+
server: str,
|
49
|
+
url: str,
|
50
|
+
username: str,
|
51
|
+
user_pass: str,
|
52
|
+
jupyter: bool = EGERIA_JUPYTER,
|
53
|
+
width: int = EGERIA_WIDTH,
|
54
|
+
) -> Table:
|
55
|
+
p_client = EgeriaTech(server, url, user_id=username, user_pwd=user_pass)
|
56
|
+
token = p_client.create_egeria_bearer_token(username, user_pass)
|
57
|
+
|
58
|
+
def generate_table(type_name: str) -> Table:
|
59
|
+
"""Make a new table."""
|
60
|
+
table = Table(
|
61
|
+
title=f"Available Governance Action Processes @ {time.asctime()}",
|
62
|
+
style="bold white on black",
|
63
|
+
row_styles=["bold white on black"],
|
64
|
+
header_style="white on dark_blue",
|
65
|
+
title_style="bold white on black",
|
66
|
+
caption_style="white on black",
|
67
|
+
show_lines=True,
|
68
|
+
box=box.ROUNDED,
|
69
|
+
caption=f"list for Server '{server}' @ Platform - {url}",
|
70
|
+
expand=True,
|
71
|
+
)
|
72
|
+
|
73
|
+
table.add_column(
|
74
|
+
"Name",
|
75
|
+
no_wrap=True,
|
76
|
+
)
|
77
|
+
table.add_column("Qualified Name")
|
78
|
+
table.add_column(
|
79
|
+
"GUID",
|
80
|
+
no_wrap=True,
|
81
|
+
)
|
82
|
+
table.add_column("Description")
|
83
|
+
|
84
|
+
process_list = p_client.find_gov_action_processes(type_name)
|
85
|
+
|
86
|
+
if type(process_list) is str:
|
87
|
+
print("No Governance Processes found matching the type name\n")
|
88
|
+
sys.exit(1)
|
89
|
+
|
90
|
+
for proc in process_list:
|
91
|
+
guid = proc["elementHeader"]["guid"]
|
92
|
+
props = proc["processProperties"]
|
93
|
+
name = props[("displayName" "")]
|
94
|
+
qualified_name = props["qualifiedName"]
|
95
|
+
description = props.get("description", "---")
|
96
|
+
|
97
|
+
table.add_row(name, qualified_name, guid, description)
|
98
|
+
|
99
|
+
p_client.close_session()
|
100
|
+
return table
|
101
|
+
|
102
|
+
try:
|
103
|
+
console = Console(width=width, force_terminal=not jupyter, record=True)
|
104
|
+
with console.pager(styles=True):
|
105
|
+
console.print(generate_table(type_name))
|
106
|
+
|
107
|
+
except (
|
108
|
+
InvalidParameterException,
|
109
|
+
PropertyServerException,
|
110
|
+
UserNotAuthorizedException,
|
111
|
+
ValueError,
|
112
|
+
) as e:
|
113
|
+
if type(e) is str:
|
114
|
+
print(e)
|
115
|
+
else:
|
116
|
+
print_exception_response(e)
|
117
|
+
|
118
|
+
|
119
|
+
def main():
|
120
|
+
parser = argparse.ArgumentParser()
|
121
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
122
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
123
|
+
parser.add_argument("--userid", help="User Id")
|
124
|
+
parser.add_argument("--password", help="User Password")
|
125
|
+
parser.add_argument("--save-output", help="Save output to file?")
|
126
|
+
|
127
|
+
args = parser.parse_args()
|
128
|
+
|
129
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
130
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
131
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
132
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
133
|
+
type_name = Prompt.ask("Enter the Type Name to retrieve:", default="*")
|
134
|
+
|
135
|
+
display_gov_processes(type_name, server, url, userid, user_pass)
|
136
|
+
|
137
|
+
|
138
|
+
if __name__ == "__main__":
|
139
|
+
main()
|
@@ -2439,11 +2439,11 @@ class AutomatedCuration(Client):
|
|
2439
2439
|
|
2440
2440
|
body = {
|
2441
2441
|
"class": "InitiateGovernanceActionTypeRequestBody",
|
2442
|
-
"governanceActionTypeQualifiedName": "survey-postgres-database",
|
2442
|
+
"governanceActionTypeQualifiedName": "AssetSurvey:survey-postgres-database",
|
2443
2443
|
"actionTargets": [
|
2444
2444
|
{
|
2445
2445
|
"class": "NewActionTarget",
|
2446
|
-
"actionTargetName": "
|
2446
|
+
"actionTargetName": "postgresDatabase",
|
2447
2447
|
"actionTargetGUID": postgres_database_guid,
|
2448
2448
|
}
|
2449
2449
|
],
|
@@ -442,10 +442,8 @@ class ClassificationManager(Client):
|
|
442
442
|
"POST", url, body_slimmer(body), time_out=time_out
|
443
443
|
)
|
444
444
|
|
445
|
-
elements = response.json().get("
|
446
|
-
|
447
|
-
if len(elements) == 0:
|
448
|
-
return "No elements found"
|
445
|
+
elements = response.json().get("element", "No elements found")
|
446
|
+
|
449
447
|
return elements
|
450
448
|
|
451
449
|
def get_element_by_guid(
|
@@ -1405,6 +1405,17 @@ class GlossaryManager(GlossaryBrowser):
|
|
1405
1405
|
|
1406
1406
|
return response
|
1407
1407
|
|
1408
|
+
def load_terms_from_file(
|
1409
|
+
self, glossary_name: str, filename: str, upsert: bool = False
|
1410
|
+
) -> str:
|
1411
|
+
"""This method loads glossary terms into the specified glossary from the indicated file."""
|
1412
|
+
# Check that glossary exists and get guid
|
1413
|
+
|
1414
|
+
# Open file
|
1415
|
+
|
1416
|
+
# Insert terms into glossary
|
1417
|
+
pass
|
1418
|
+
|
1408
1419
|
async def _async_create_term_copy(
|
1409
1420
|
self,
|
1410
1421
|
glossary_guid: str,
|
@@ -6,10 +6,12 @@ commands/cat/get_project_dependencies.py,sha256=B0JaMSUi0hzVgos1sTY2uUPGy1DzKEJM
|
|
6
6
|
commands/cat/get_project_structure.py,sha256=n2GbNd07w1DTo7jTR8b2ewXRyNcat_2BcCBRyDMldwk,5969
|
7
7
|
commands/cat/get_tech_type_elements.py,sha256=-m3Q0BoNqkCtV8h75vMwTcOV-_ymEXmnJcr4Ec7WMAw,6180
|
8
8
|
commands/cat/get_tech_type_template.py,sha256=gMFVcgCIm09GQu1Vsc5ZUVH9XLhItAG1eVGZJrcnHeQ,6174
|
9
|
+
commands/cat/glossary_actions.py,sha256=F5-NNiLvfHLbQKZ_RxS6XJ9HOAuXc75GMIAC5Xo0lJQ,7280
|
9
10
|
commands/cat/list_archives.py,sha256=83LhNeZWhzRiE-oU6veuIk9ob4XDtDWUoXdGGXaYeE8,5454
|
10
11
|
commands/cat/list_assets.py,sha256=bNwSaBDz661hfnc2Rn4j4HPHAugKvz0XwN9L1m4FVQk,6529
|
11
12
|
commands/cat/list_cert_types.py,sha256=mbCls_EqC5JKG5rvS4o69k7KgZ6aNXlcqoJ3DtHsTFA,7127
|
12
|
-
commands/cat/
|
13
|
+
commands/cat/list_deployed_catalogs.py,sha256=yBdLRSJRKlS4R2ALbSnMCvCDz-gLOi9T5cNt9EYBIcI,6822
|
14
|
+
commands/cat/list_deployed_database_schemas.py,sha256=LaO61c2pEJBpDyisypSRgRzVQxQZUfogU2Yywg4DrIs,8276
|
13
15
|
commands/cat/list_deployed_databases.py,sha256=O0-1__4w17vGvERxDO5DMI4u-PW_30iH0A2nrUejaus,6604
|
14
16
|
commands/cat/list_glossary.py,sha256=tUtQQoTGTlDLU-yFbfO3zjiJC9QyEJfg8NxnGCo2mnI,5811
|
15
17
|
commands/cat/list_projects.py,sha256=Jzs-DtIpPhCH-gY4PYT6mnRBWnEf4m18TFfcw8UymNU,8011
|
@@ -18,11 +20,11 @@ commands/cat/list_tech_types.py,sha256=20T4v6L5qeebSsaL1nGkFMDAIsy2W3A3SMm1RcgFo
|
|
18
20
|
commands/cat/list_todos.py,sha256=iPxHRyW3X5tiREio4TUOwRPvNPjU0gxm3pVnUI79ir4,6542
|
19
21
|
commands/cat/list_user_ids.py,sha256=7JinL7rknPbGusIb8ikXKEaV1vvbuvx_WWtbmlfS_DY,5093
|
20
22
|
commands/cli/__init__.py,sha256=hpTVSMP2gnPRhcAZPdeUEsQ-eaDySlXlk239dNWYmng,292
|
21
|
-
commands/cli/egeria.py,sha256=
|
22
|
-
commands/cli/egeria_cat.py,sha256=
|
23
|
+
commands/cli/egeria.py,sha256=mKTlUkyO8B-zBwE7-lvvkesgKqWhoAkYf6ax0DialD8,30910
|
24
|
+
commands/cli/egeria_cat.py,sha256=uaZvSibAAaoOx5O8__0dNUYVfNGKcYGT4WJZo5OCN08,14457
|
23
25
|
commands/cli/egeria_my.py,sha256=9zIpUDLeA_R-0rgCSQfEZTtVmkxPcEAsYcCTn1wQFrE,6181
|
24
26
|
commands/cli/egeria_ops.py,sha256=fxDXYWXRhexx06PdSLCp2FhgUtS13NdDpyg7ea775fc,11531
|
25
|
-
commands/cli/egeria_tech.py,sha256=
|
27
|
+
commands/cli/egeria_tech.py,sha256=eTDHTHDVEYmr6gUPGfido_Uf7Fec0Nuyxlkhg4KAMAw,13160
|
26
28
|
commands/cli/ops_config.py,sha256=m4AfPjf-fR4EBTx8Dc2mcgrfWwAxb30YGeV-v79bg4U,1450
|
27
29
|
commands/my/README.md,sha256=ZheFhj_VoPMhcWjW3pGchHB0vH_A9PklSmrSkzKdrcQ,844
|
28
30
|
commands/my/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -30,7 +32,7 @@ commands/my/list_my_profile.py,sha256=jJaGAHrhFv9VQR9li5pzFN3ihqhHv9LmnAVPiKvPp3
|
|
30
32
|
commands/my/list_my_roles.py,sha256=AhyKXSQxBPDh2QQoL90bPQPkNnu1w7whpk9kZoBxRTQ,5175
|
31
33
|
commands/my/monitor_my_todos.py,sha256=YiwyQgtA7YsfW4-Ps-1ymvFjRqp-Egubv9j8iFUMUXE,6601
|
32
34
|
commands/my/monitor_open_todos.py,sha256=KDrAjdLPP3j0K9Y3G95BIgr51ktTx3mMlKydLFDF2YQ,5466
|
33
|
-
commands/my/todo_actions.py,sha256=
|
35
|
+
commands/my/todo_actions.py,sha256=iazoRhsQ9aecCwJk6r4lWRP-mPD2t-YGU_GmPrFtR-Q,8372
|
34
36
|
commands/ops/README.md,sha256=PJsSDcvMv6E6og6y-cwvxFX5lhCII0UCwgKiM1T17MQ,1595
|
35
37
|
commands/ops/__init__.py,sha256=SCfzF3-aMx8EpqLWmH7JQf13gTmMAtHRbg69oseLvi8,480
|
36
38
|
commands/ops/engine_actions.py,sha256=00s_wkzs0zlZ6PyZ0J5J9lHhw4Viyzbeox7b1K1lmyc,4609
|
@@ -59,6 +61,7 @@ commands/tech/list_asset_types.py,sha256=LG7e8yjewQ_SX8SjzEiEii_-hDvmAJKyLN8iDjb
|
|
59
61
|
commands/tech/list_elements.py,sha256=vO4SPEhcKm0L5rHVr6r8KYX3sPazGJ78oWsO2wLcf2o,5998
|
60
62
|
commands/tech/list_elements_for_classification.py,sha256=oAge8RFz4z9H-jCE0fBDhS4AbIHqhQWBvZ4Dp7BZbfM,6194
|
61
63
|
commands/tech/list_elements_x.py,sha256=k5jkekB7wh6cbzjn7FnwL7pKrPFq_oE-x36c_Z1FuSo,6500
|
64
|
+
commands/tech/list_gov_action_processes.py,sha256=AeS4E-DWrS2etsM6nuYD1En1J-7KeB_ZjyLTO9sy6KU,4580
|
62
65
|
commands/tech/list_registered_services.py,sha256=QzE_ebdopNkHWMxa-xc902GG6ac4Yw-ln8i8NUsgHVA,6542
|
63
66
|
commands/tech/list_related_elements.py,sha256=I1vzNKQfD8Nrwa8JHf4yvWBawKN_vR0AjN0xL_5kWGg,7716
|
64
67
|
commands/tech/list_related_specification.py,sha256=mWrKenXOskL4cl0DHjH2Z8M9-FJzjkzK62W-tsx3WDU,5918
|
@@ -74,8 +77,8 @@ pyegeria/_exceptions.py,sha256=NJ7vAhmvusK1ENvY2MMrBB6A6TgpYjzS9QJxFH56b8c,18470
|
|
74
77
|
pyegeria/_globals.py,sha256=1Uc8392wjbiVN5L__RzxC1-U97RMXj77_iUsMSgeAjQ,638
|
75
78
|
pyegeria/_validators.py,sha256=rnZelHJnjHaLZ8UhUTDyB59MfIUJifhALtkYoHBaos4,12736
|
76
79
|
pyegeria/asset_catalog_omvs.py,sha256=fffZsSukOrG-xszD6uEPf2IX4p0IK63T0_w7_6BpG1Q,21075
|
77
|
-
pyegeria/automated_curation_omvs.py,sha256=
|
78
|
-
pyegeria/classification_manager_omvs.py,sha256=
|
80
|
+
pyegeria/automated_curation_omvs.py,sha256=rvX4RRjvNxlUGVXzNmgEmifV7_UwbgTIJu__JYxORyg,136326
|
81
|
+
pyegeria/classification_manager_omvs.py,sha256=VEwvlaDQT12Dwq8Q4lMvYCWYeq0OsC2P0bfsHUdy0CA,180701
|
79
82
|
pyegeria/collection_manager_omvs.py,sha256=kye2kjthNnmwxMZhHQKV0xoHbxcNPWjNzRAYOItj_gY,99201
|
80
83
|
pyegeria/core_omag_server_config.py,sha256=EtHaPKyc9d6pwTgbnQqGwe5lSBMPIfJOlbJEa1zg1JA,94946
|
81
84
|
pyegeria/create_tech_guid_lists.py,sha256=HHkC6HW58EN1BiolrYSRqSE0JhPbTepOFzwtdwBxVaU,4640
|
@@ -87,7 +90,7 @@ pyegeria/egeria_tech_client.py,sha256=7NfqpJFft5GR4NPRDVDw22L9caHbXB8fhx0TAf6qEo
|
|
87
90
|
pyegeria/feedback_manager_omvs.py,sha256=B66e3ZCaC_dirb0mcb2Nz3PYh2ZKsoMAYNOb3euNiro,152931
|
88
91
|
pyegeria/full_omag_server_config.py,sha256=LBnqUiz1ofBdlKBzECFs_pQbdJwcWigAukWHGJRR2nU,47340
|
89
92
|
pyegeria/glossary_browser_omvs.py,sha256=AnBRp6KKw0507ABz_WmknVL94zLzYzJ4saXrghFlpmw,93455
|
90
|
-
pyegeria/glossary_manager_omvs.py,sha256=
|
93
|
+
pyegeria/glossary_manager_omvs.py,sha256=LmZWwRsDDrvZsf2Whsayj4XHINlER9nu9z2CNc1YOX8,112262
|
91
94
|
pyegeria/mermaid_utilities.py,sha256=GXiS-subb5nJcDqlThZWX2T8WspU1neFfhf4TxRoMh4,8344
|
92
95
|
pyegeria/my_profile_omvs.py,sha256=DyECbUFEcgokrIbzdMMNljC3bqfqKGXAF2wZEpzvRYs,34666
|
93
96
|
pyegeria/platform_services.py,sha256=CJIOYIFEbcIGwdWlApAQcXxZTsdrhFtpJcm4O3p7dG0,41646
|
@@ -98,8 +101,8 @@ pyegeria/server_operations.py,sha256=ciH890hYT85YQ6OpByn4w7s3a7TtvWZpIG5rkRqbcI0
|
|
98
101
|
pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
|
99
102
|
pyegeria/valid_metadata_omvs.py,sha256=tfCGXed5LLt59YA8uZNNtd9UJ-lRZfPU_uZxK31Yux0,65069
|
100
103
|
pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
|
101
|
-
pyegeria-1.5.1.0.
|
102
|
-
pyegeria-1.5.1.0.
|
103
|
-
pyegeria-1.5.1.0.
|
104
|
-
pyegeria-1.5.1.0.
|
105
|
-
pyegeria-1.5.1.0.
|
104
|
+
pyegeria-1.5.1.0.6.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
105
|
+
pyegeria-1.5.1.0.6.dist-info/METADATA,sha256=A483jI58VV00dZNDbnm3ce9pQZeYXXGOd7vESKrfdQY,2997
|
106
|
+
pyegeria-1.5.1.0.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
107
|
+
pyegeria-1.5.1.0.6.dist-info/entry_points.txt,sha256=Pc5kHnxv-vbRpwVMxSSWl66vmf7EZjgzf7nZzz1ow3M,4002
|
108
|
+
pyegeria-1.5.1.0.6.dist-info/RECORD,,
|
@@ -1,6 +1,9 @@
|
|
1
1
|
[console_scripts]
|
2
2
|
change_todo_status=commands.my.todo_actions:change_todo_status
|
3
|
+
create_glossary=commands.cat.glossary_actions:create_glossary
|
4
|
+
create_term=commands.cat.glossary_actions:create_term
|
3
5
|
create_todo=commands.my.todo_actions:create_todo
|
6
|
+
delete_glossary=commands.cat.glossary_actions:delete_glossary
|
4
7
|
delete_todo=commands.my.todo_actions:delete_todo
|
5
8
|
get_asset_graph=commands.cat.get_asset_graph:main
|
6
9
|
get_collection=commands.cat.get_collection:main
|
@@ -21,12 +24,15 @@ list_asset_types=commands.tech.list_asset_types:main
|
|
21
24
|
list_assets=commands.cat.list_assets:main
|
22
25
|
list_catalog_targets=commands.ops.list_catalog_targets:main
|
23
26
|
list_cert_types=commands.cat.list_cert_types:main
|
27
|
+
list_deployed_catalogs=commands.cat.list_deployed_catalogs:main
|
28
|
+
list_deployed_schemas=commands.cat.list_deployed_database_schemas:main
|
24
29
|
list_element_graph=commands.tech.get_element_graph:main
|
25
30
|
list_elements=commands.tech.list_elements:main
|
26
31
|
list_elements_for_classification=commands.tech.list_elements_for_classification:main
|
27
32
|
list_engine_activity=commands.ops.monitor_engine_activity:main_paging
|
28
33
|
list_engine_activity_compressed=commands.ops.monitor_engine_activity_c:main_paging
|
29
34
|
list_glossary=commands.cat.list_glossary:main
|
35
|
+
list_gov_action_processes=commands.tech.list_gov_action_processes:main
|
30
36
|
list_gov_eng_status=commands.ops.monitor_gov_eng_status:main_paging
|
31
37
|
list_integ_daemon_status=commands.ops.monitor_integ_daemon_status:main_paging
|
32
38
|
list_my_profile=commands.my.list_my_profile:main
|
File without changes
|
File without changes
|