pyegeria 1.5.1.1.30__py3-none-any.whl → 1.5.1.1.34__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyegeria/asset_catalog_omvs.py +110 -0
- pyegeria/commands/__init__.py +12 -3
- pyegeria/commands/cat/__init__.py +5 -5
- pyegeria/commands/cat/list_deployed_catalogs.py +27 -7
- pyegeria/commands/cat/list_deployed_database_schemas.py +25 -7
- pyegeria/commands/cat/list_deployed_databases.py +22 -6
- pyegeria/commands/cat/list_glossaries.py +25 -8
- pyegeria/commands/cat/list_terms.py +38 -11
- pyegeria/commands/cli/egeria.py +13 -13
- pyegeria/commands/cli/egeria_cat.py +20 -20
- pyegeria/commands/cli/egeria_tech.py +2 -2
- pyegeria/commands/ops/engine_actions.py +1 -1
- pyegeria/commands/ops/monitor_engine_activity_c.py +28 -9
- pyegeria/commands/ops/monitor_gov_eng_status.py +31 -1
- pyegeria/commands/ops/monitor_integ_daemon_status.py +43 -1
- pyegeria/commands/ops/monitor_platform_status.py +6 -6
- pyegeria/commands/ops/table_integ_daemon_status.py +48 -103
- pyegeria/glossary_manager_omvs.py +24 -11
- {pyegeria-1.5.1.1.30.dist-info → pyegeria-1.5.1.1.34.dist-info}/METADATA +1 -1
- {pyegeria-1.5.1.1.30.dist-info → pyegeria-1.5.1.1.34.dist-info}/RECORD +23 -23
- {pyegeria-1.5.1.1.30.dist-info → pyegeria-1.5.1.1.34.dist-info}/LICENSE +0 -0
- {pyegeria-1.5.1.1.30.dist-info → pyegeria-1.5.1.1.34.dist-info}/WHEEL +0 -0
- {pyegeria-1.5.1.1.30.dist-info → pyegeria-1.5.1.1.34.dist-info}/entry_points.txt +0 -0
pyegeria/asset_catalog_omvs.py
CHANGED
@@ -506,6 +506,116 @@ class AssetCatalog(Client):
|
|
506
506
|
)
|
507
507
|
return response
|
508
508
|
|
509
|
+
async def _async_get_asset_lineage_graph(
|
510
|
+
self,
|
511
|
+
asset_guid: str,
|
512
|
+
start_from: int = 0,
|
513
|
+
page_size: int = max_paging_size,
|
514
|
+
) -> str | dict:
|
515
|
+
"""Return the asset lineage including a mermaid markdown string. Async Version.
|
516
|
+
Parameters
|
517
|
+
----------
|
518
|
+
asset_guid : str
|
519
|
+
The unique identity of the asset to get the graph for.
|
520
|
+
|
521
|
+
start_from : int, optional
|
522
|
+
The index from which to start fetching the engine actions. Default is 0.
|
523
|
+
|
524
|
+
page_size : int, optional
|
525
|
+
The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
|
526
|
+
|
527
|
+
Returns
|
528
|
+
-------
|
529
|
+
str | dict
|
530
|
+
A dictionary of the asset graph that includes a mermaid markdown string.
|
531
|
+
|
532
|
+
Raises:
|
533
|
+
------
|
534
|
+
InvalidParameterException
|
535
|
+
PropertyServerException
|
536
|
+
UserNotAuthorizedException
|
537
|
+
|
538
|
+
"""
|
539
|
+
|
540
|
+
url = (
|
541
|
+
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/{asset_guid}/"
|
542
|
+
f"as-lineage-graph?startFrom={start_from}&pageSize={page_size}"
|
543
|
+
)
|
544
|
+
|
545
|
+
response = await self._async_make_request("POST", url)
|
546
|
+
return response.json().get("assetLineageGraph", "no asset found")
|
547
|
+
|
548
|
+
def get_asset_lineage_graph(
|
549
|
+
self,
|
550
|
+
asset_guid: str,
|
551
|
+
start_from: int = 0,
|
552
|
+
page_size: int = max_paging_size,
|
553
|
+
) -> str | dict:
|
554
|
+
"""Return the asset lineage including a mermaid markdown string. Async Version.
|
555
|
+
Parameters
|
556
|
+
----------
|
557
|
+
asset_guid : str
|
558
|
+
The unique identity of the asset to get the graph for.
|
559
|
+
|
560
|
+
start_from : int, optional
|
561
|
+
The index from which to start fetching the engine actions. Default is 0.
|
562
|
+
|
563
|
+
page_size : int, optional
|
564
|
+
The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
|
565
|
+
|
566
|
+
Returns
|
567
|
+
-------
|
568
|
+
dict or str
|
569
|
+
A dictionary of the asset graph.
|
570
|
+
|
571
|
+
Raises:
|
572
|
+
------
|
573
|
+
InvalidParameterException
|
574
|
+
PropertyServerException
|
575
|
+
UserNotAuthorizedException
|
576
|
+
|
577
|
+
"""
|
578
|
+
|
579
|
+
loop = asyncio.get_event_loop()
|
580
|
+
response = loop.run_until_complete(
|
581
|
+
self._async_get_asset_lineage_graph(asset_guid, start_from, page_size)
|
582
|
+
)
|
583
|
+
return response
|
584
|
+
|
585
|
+
def get_asset_lineage_mermaid_graph(
|
586
|
+
self,
|
587
|
+
asset_guid: str,
|
588
|
+
start_from: int = 0,
|
589
|
+
page_size: int = max_paging_size,
|
590
|
+
) -> str:
|
591
|
+
"""Return the lineage as mermaid markdown string. Async Version.
|
592
|
+
Parameters
|
593
|
+
----------
|
594
|
+
asset_guid : str
|
595
|
+
The unique identity of the asset to get the graph for.
|
596
|
+
|
597
|
+
start_from : int, optional
|
598
|
+
The index from which to start fetching the engine actions. Default is 0.
|
599
|
+
|
600
|
+
page_size : int, optional
|
601
|
+
The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
|
602
|
+
|
603
|
+
Returns
|
604
|
+
-------
|
605
|
+
str
|
606
|
+
A mermaid string representing the lineage.
|
607
|
+
|
608
|
+
Raises:
|
609
|
+
------
|
610
|
+
InvalidParameterException
|
611
|
+
PropertyServerException
|
612
|
+
UserNotAuthorizedException
|
613
|
+
|
614
|
+
"""
|
615
|
+
|
616
|
+
asset_graph = self.get_asset_lineage_graph(asset_guid, start_from, page_size)
|
617
|
+
return asset_graph.get("mermaidGraph")
|
618
|
+
|
509
619
|
async def _async_get_assets_by_metadata_collection_id(
|
510
620
|
self,
|
511
621
|
metadata_collection_id: str,
|
pyegeria/commands/__init__.py
CHANGED
@@ -1,12 +1,21 @@
|
|
1
1
|
"""
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
2
4
|
|
3
|
-
|
5
|
+
|
6
|
+
|
7
|
+
pyegeria commands available also from python.
|
4
8
|
"""
|
5
9
|
|
6
10
|
from .ops.monitor_gov_eng_status import display_gov_eng_status
|
7
11
|
from .ops.monitor_integ_daemon_status import display_integration_daemon_status
|
8
|
-
from .cat.list_glossaries import display_glossaries
|
9
|
-
from .cat.list_terms import display_glossary_terms
|
10
12
|
from .ops.table_integ_daemon_status import (
|
11
13
|
display_integration_daemon_status as table_integ_daemon_status,
|
12
14
|
)
|
15
|
+
from .ops.monitor_engine_activity_c import display_engine_activity_c
|
16
|
+
|
17
|
+
from .cat.list_glossaries import display_glossaries
|
18
|
+
from .cat.list_terms import display_glossary_terms
|
19
|
+
from .cat.list_deployed_catalogs import list_deployed_catalogs
|
20
|
+
from .cat.list_deployed_database_schemas import list_deployed_database_schemas
|
21
|
+
from .cat.list_deployed_databases import list_deployed_databases
|
@@ -1,5 +1,5 @@
|
|
1
|
-
from .list_glossaries import display_glossaries
|
2
|
-
from .list_terms import display_glossary_terms
|
3
|
-
from .list_deployed_catalogs import list_deployed_catalogs
|
4
|
-
from .list_deployed_database_schemas import list_deployed_database_schemas
|
5
|
-
from .list_deployed_databases import list_deployed_databases
|
1
|
+
# from .list_glossaries import display_glossaries
|
2
|
+
# from .list_terms import display_glossary_terms
|
3
|
+
# from .list_deployed_catalogs import list_deployed_catalogs
|
4
|
+
# from .list_deployed_database_schemas import list_deployed_database_schemas
|
5
|
+
# from .list_deployed_databases import list_deployed_databases
|
@@ -47,21 +47,41 @@ def check_if_template(header: dict) -> bool:
|
|
47
47
|
|
48
48
|
|
49
49
|
def list_deployed_catalogs(
|
50
|
-
catalog_server: str,
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
catalog_server: str = "*",
|
51
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
52
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
53
|
+
user: str = EGERIA_USER,
|
54
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
55
55
|
jupyter: bool = EGERIA_JUPYTER,
|
56
56
|
width: int = EGERIA_WIDTH,
|
57
57
|
):
|
58
|
-
|
58
|
+
"""
|
59
|
+
Display the list of deployed catalogs. These could be metadata catalogs or other catalogs such as database catalogs..
|
60
|
+
|
61
|
+
Parameters
|
62
|
+
----------
|
63
|
+
catalog_server : str, optional
|
64
|
+
The name of the catalog server to query. Default is "*" for all catalog servers.
|
65
|
+
view_server : str, optional
|
66
|
+
The server providing the view. Default is EGERIA_VIEW_SERVER.
|
67
|
+
view_url : str, optional
|
68
|
+
The URL of the view server. Default is EGERIA_VIEW_SERVER_URL.
|
69
|
+
user : str, optional
|
70
|
+
The user ID for authentication. Default is EGERIA_USER.
|
71
|
+
user_pass : str, optional
|
72
|
+
The password for the user. Default is EGERIA_USER_PASSWORD.
|
73
|
+
jupyter : bool, optional
|
74
|
+
Enable Jupyter notebook output. Default is EGERIA_JUPYTER.
|
75
|
+
width : int, optional
|
76
|
+
The width of the console output. Default is EGERIA_WIDTH.
|
77
|
+
"""
|
78
|
+
c_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
59
79
|
token = c_client.create_egeria_bearer_token()
|
60
80
|
|
61
81
|
def generate_table() -> Table:
|
62
82
|
"""Make a new table."""
|
63
83
|
table = Table(
|
64
|
-
caption=f"Databases found: {
|
84
|
+
caption=f"Databases found: {view_url} - {view_server} @ {time.asctime()}",
|
65
85
|
style="bold bright_white on black",
|
66
86
|
row_styles=["bold bright_white on black"],
|
67
87
|
header_style="white on dark_blue",
|
@@ -55,21 +55,39 @@ def make_prop_md(props: dict) -> str:
|
|
55
55
|
|
56
56
|
|
57
57
|
def list_deployed_database_schemas(
|
58
|
-
db_name: str,
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
db_name: str = "*",
|
59
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
60
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
61
|
+
user: str = EGERIA_USER,
|
62
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
63
63
|
jupyter: bool = EGERIA_JUPYTER,
|
64
64
|
width: int = EGERIA_WIDTH,
|
65
65
|
):
|
66
|
-
|
66
|
+
"""List schemas that have been deployed in database catalogs or databases.
|
67
|
+
Parameters
|
68
|
+
----------
|
69
|
+
db_name : str
|
70
|
+
Name of the database or catalog to get schemas for, or '*' for all databases.
|
71
|
+
view_server : str
|
72
|
+
The view server to connect to.
|
73
|
+
view_url : str
|
74
|
+
URL of the view server.
|
75
|
+
user : str
|
76
|
+
Username for authentication.
|
77
|
+
user_pass : str
|
78
|
+
Password for authentication.
|
79
|
+
jupyter : bool
|
80
|
+
Whether to force the terminal output to behave as if in a Jupyter notebook.
|
81
|
+
width : int
|
82
|
+
Width of the console output.
|
83
|
+
"""
|
84
|
+
c_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
67
85
|
token = c_client.create_egeria_bearer_token()
|
68
86
|
|
69
87
|
def generate_table() -> Table:
|
70
88
|
"""Make a new table."""
|
71
89
|
table = Table(
|
72
|
-
caption=f"Databases found: {
|
90
|
+
caption=f"Databases found: {view_url} - {view_server} @ {time.asctime()}",
|
73
91
|
style="bold bright_white on black",
|
74
92
|
row_styles=["bold bright_white on black"],
|
75
93
|
header_style="white on dark_blue",
|
@@ -47,20 +47,36 @@ def check_if_template(header: dict) -> bool:
|
|
47
47
|
|
48
48
|
|
49
49
|
def list_deployed_databases(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
50
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
51
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
52
|
+
user: str = EGERIA_USER,
|
53
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
54
54
|
jupyter: bool = EGERIA_JUPYTER,
|
55
55
|
width: int = EGERIA_WIDTH,
|
56
56
|
):
|
57
|
-
|
57
|
+
"""
|
58
|
+
Parameters
|
59
|
+
----------
|
60
|
+
view_server : str
|
61
|
+
The view server name to which the Egeria client will connect. By default, this is set to EGERIA_VIEW_SERVER.
|
62
|
+
view_url : str
|
63
|
+
The URL of the Egeria view server. By default, this is set to EGERIA_VIEW_SERVER_URL.
|
64
|
+
user : str
|
65
|
+
The username used for authentication with the Egeria server. By default, it is set to EGERIA_USER.
|
66
|
+
user_pass : str
|
67
|
+
The password used for authentication with the Egeria server. By default, it is set to EGERIA_USER_PASSWORD.
|
68
|
+
jupyter : bool
|
69
|
+
A flag indicating whether the output is displayed within a Jupyter notebook. Default is set to EGERIA_JUPYTER.
|
70
|
+
width : int
|
71
|
+
The width of the output console. By default, it is set to EGERIA_WIDTH.
|
72
|
+
"""
|
73
|
+
c_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
58
74
|
token = c_client.create_egeria_bearer_token()
|
59
75
|
|
60
76
|
def generate_table() -> Table:
|
61
77
|
"""Make a new table."""
|
62
78
|
table = Table(
|
63
|
-
caption=f"Databases found: {
|
79
|
+
caption=f"Databases found: {view_url} - {view_server} @ {time.asctime()}",
|
64
80
|
style="bold bright_white on black",
|
65
81
|
row_styles=["bold bright_white on black"],
|
66
82
|
header_style="white on dark_blue",
|
@@ -46,16 +46,33 @@ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
|
46
46
|
|
47
47
|
|
48
48
|
def display_glossaries(
|
49
|
-
search_string: str,
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
search_string: str = "*",
|
50
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
51
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
52
|
+
user: str = EGERIA_USER,
|
53
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
54
54
|
jupyter: bool = EGERIA_JUPYTER,
|
55
55
|
width: int = EGERIA_WIDTH,
|
56
56
|
):
|
57
|
-
"""
|
58
|
-
|
57
|
+
"""Display either a specified glossary or all glossaries if the search_string is '*'.
|
58
|
+
Parameters
|
59
|
+
----------
|
60
|
+
search_string : str, default is '*'
|
61
|
+
The string used to search for glossaries.
|
62
|
+
view_server : str
|
63
|
+
The view server name or address where the Egeria services are hosted.
|
64
|
+
view_url : str
|
65
|
+
The URL of the platform the view server is on.
|
66
|
+
user : str
|
67
|
+
The user ID for authentication with the Egeria server.
|
68
|
+
user_pass : str
|
69
|
+
The password for authentication with the Egeria server.
|
70
|
+
jupyter : bool, optional
|
71
|
+
A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
|
72
|
+
width : int, optional
|
73
|
+
The width of the console output (default is EGERIA_WIDTH).
|
74
|
+
"""
|
75
|
+
m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
59
76
|
token = m_client.create_egeria_bearer_token()
|
60
77
|
try:
|
61
78
|
table = Table(
|
@@ -66,7 +83,7 @@ def display_glossaries(
|
|
66
83
|
caption_style="white on black",
|
67
84
|
show_lines=True,
|
68
85
|
box=box.ROUNDED,
|
69
|
-
caption=f"View Server '{
|
86
|
+
caption=f"View Server '{view_server}' @ Platform - {view_url}",
|
70
87
|
expand=True,
|
71
88
|
)
|
72
89
|
table.add_column("Glossary Name")
|
@@ -46,18 +46,45 @@ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
|
46
46
|
|
47
47
|
|
48
48
|
def display_glossary_terms(
|
49
|
-
search_string: str,
|
50
|
-
glossary_guid: str,
|
51
|
-
glossary_name: str,
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
49
|
+
search_string: str = "*",
|
50
|
+
glossary_guid: str = None,
|
51
|
+
glossary_name: str = None,
|
52
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
53
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
54
|
+
user_id: str = EGERIA_USER,
|
55
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
56
56
|
jupyter: bool = EGERIA_JUPYTER,
|
57
57
|
width: int = EGERIA_WIDTH,
|
58
58
|
):
|
59
|
-
"""Display glossary terms
|
60
|
-
|
59
|
+
"""Display a table of glossary terms filtered by search_string and glossary, if specified. If no
|
60
|
+
filters then all terms are displayed. If glossary_guid or name is specified, then only terms from that
|
61
|
+
glossary are displayed.
|
62
|
+
Parameters
|
63
|
+
----------
|
64
|
+
search_string : str, optional
|
65
|
+
The string to search for terms. Defaults to "*".
|
66
|
+
glossary_guid : str, optional
|
67
|
+
The unique identifier of the glossary. Defaults to None. If specified, then only terms from that glossary
|
68
|
+
are displayed. If both glossary_guid and glossary_name are provided then glossary_guid will take precedence.
|
69
|
+
glossary_name : str, optional
|
70
|
+
The display name of the glossary. Defaults to None. If specified, then only terms from that glossary
|
71
|
+
are displayed. If both glossary_guid and glossary_name are provided then glossary_guid will take precedence.
|
72
|
+
Note that the use of glossary display name relies on the qualified name conforming to convention. GUID is more
|
73
|
+
reliable.
|
74
|
+
view_server : str
|
75
|
+
The server where the glossary is hosted. Defaults to EGERIA_VIEW_SERVER.
|
76
|
+
view_url : str
|
77
|
+
The URL of the server where the glossary is hosted. Defaults to EGERIA_VIEW_SERVER_URL.
|
78
|
+
user_id : str
|
79
|
+
The user ID for authentication. Defaults to EGERIA_USER.
|
80
|
+
user_pass : str
|
81
|
+
The user password for authentication. Defaults to EGERIA_USER_PASSWORD.
|
82
|
+
jupyter : bool
|
83
|
+
Flag to indicate if the output should be formatted for Jupyter notebook. Defaults to EGERIA_JUPYTER.
|
84
|
+
width : int
|
85
|
+
The width of the console output. Defaults to EGERIA_WIDTH.
|
86
|
+
"""
|
87
|
+
g_client = EgeriaTech(view_server, view_url, user_id, user_pass)
|
61
88
|
token = g_client.create_egeria_bearer_token()
|
62
89
|
if (glossary_name is not None) and (glossary_name != "*"):
|
63
90
|
glossary_guid = g_client.__get_guid__(
|
@@ -78,7 +105,7 @@ def display_glossary_terms(
|
|
78
105
|
caption_style="white on black",
|
79
106
|
show_lines=True,
|
80
107
|
box=box.ROUNDED,
|
81
|
-
caption=f"View Server '{
|
108
|
+
caption=f"View Server '{view_server}' @ Platform - {view_url}",
|
82
109
|
expand=True,
|
83
110
|
)
|
84
111
|
table.add_column("Term Name")
|
@@ -117,7 +144,7 @@ def display_glossary_terms(
|
|
117
144
|
display_name = Text(props["displayName"], style=style)
|
118
145
|
qualified_name = props["qualifiedName"]
|
119
146
|
term_guid = term["elementHeader"]["guid"]
|
120
|
-
q_name = Text(f"{qualified_name}\n\t\t
|
147
|
+
q_name = Text(f"{qualified_name}\n\t\t&\n{term_guid}", style=style)
|
121
148
|
abbrev = Text(props.get("abbreviation", " "), style=style)
|
122
149
|
summary = Text(props.get("summary", " "), style=style)
|
123
150
|
description = Text(props.get("description", " "), style=style)
|
pyegeria/commands/cli/egeria.py
CHANGED
@@ -356,7 +356,7 @@ def get_element_info(ctx, om_type):
|
|
356
356
|
)
|
357
357
|
|
358
358
|
|
359
|
-
@show.command("
|
359
|
+
@show.command("elements")
|
360
360
|
@click.pass_context
|
361
361
|
@click.option("--om_type", default="Project", help="Metadata type to query")
|
362
362
|
def list_element_info(ctx, om_type):
|
@@ -373,9 +373,9 @@ def list_element_info(ctx, om_type):
|
|
373
373
|
)
|
374
374
|
|
375
375
|
|
376
|
-
@show.command("
|
376
|
+
@show.command("processes")
|
377
377
|
@click.pass_context
|
378
|
-
def
|
378
|
+
def list_process_info(ctx):
|
379
379
|
"""Display the valid metadata values for a property and type"""
|
380
380
|
c = ctx.obj
|
381
381
|
list_elements(
|
@@ -917,9 +917,9 @@ def show_todos(ctx):
|
|
917
917
|
)
|
918
918
|
|
919
919
|
|
920
|
-
@show.command("
|
920
|
+
@show.command("archives")
|
921
921
|
@click.pass_context
|
922
|
-
def
|
922
|
+
def archives(ctx):
|
923
923
|
"""Display a tree graph of information about an asset"""
|
924
924
|
c = ctx.obj
|
925
925
|
display_archive_list(
|
@@ -933,12 +933,12 @@ def list_archives(ctx):
|
|
933
933
|
)
|
934
934
|
|
935
935
|
|
936
|
-
@show.command("
|
936
|
+
@show.command("deployed-schemas")
|
937
937
|
@click.option(
|
938
938
|
"--search_catalog", default="*", help="What database or catalog to search"
|
939
939
|
)
|
940
940
|
@click.pass_context
|
941
|
-
def
|
941
|
+
def deployed_schemas(search_catalog, ctx):
|
942
942
|
"""Display a tree graph of information about an asset"""
|
943
943
|
c = ctx.obj
|
944
944
|
list_deployed_database_schemas(
|
@@ -952,10 +952,10 @@ def list_deployed_schemas(search_catalog, ctx):
|
|
952
952
|
)
|
953
953
|
|
954
954
|
|
955
|
-
@show.command("
|
955
|
+
@show.command("catalogs")
|
956
956
|
@click.option("--search_server", default="*", help="Server to search for catalogs")
|
957
957
|
@click.pass_context
|
958
|
-
def
|
958
|
+
def catalogs(search_server, ctx):
|
959
959
|
"""Display a tree graph of information about an asset"""
|
960
960
|
c = ctx.obj
|
961
961
|
list_deployed_catalogs(
|
@@ -969,9 +969,9 @@ def list_catalogs(search_server, ctx):
|
|
969
969
|
)
|
970
970
|
|
971
971
|
|
972
|
-
@show.command("
|
972
|
+
@show.command("databases")
|
973
973
|
@click.pass_context
|
974
|
-
def
|
974
|
+
def databases(ctx):
|
975
975
|
"""Display a tree graph of information about an asset"""
|
976
976
|
c = ctx.obj
|
977
977
|
list_deployed_databases(
|
@@ -979,10 +979,10 @@ def list_databases(ctx):
|
|
979
979
|
)
|
980
980
|
|
981
981
|
|
982
|
-
@show.command("
|
982
|
+
@show.command("glossaries")
|
983
983
|
@click.option("--search_string", default="*", help="Name to search for glossaries")
|
984
984
|
@click.pass_context
|
985
|
-
def
|
985
|
+
def glossaries(ctx, search_string):
|
986
986
|
"""Display a tree graph of information about an asset"""
|
987
987
|
c = ctx.obj
|
988
988
|
display_glossaries(
|
@@ -500,7 +500,7 @@ def show_todos(ctx):
|
|
500
500
|
)
|
501
501
|
|
502
502
|
|
503
|
-
@show.command("
|
503
|
+
@show.command("archives")
|
504
504
|
@click.pass_context
|
505
505
|
def list_archives(ctx):
|
506
506
|
"""Display a tree graph of information about an asset"""
|
@@ -516,10 +516,10 @@ def list_archives(ctx):
|
|
516
516
|
)
|
517
517
|
|
518
518
|
|
519
|
-
@show.command("
|
519
|
+
@show.command("deployed-schemas")
|
520
520
|
@click.option("--catalog", default="*", help="What database or catalog to search")
|
521
521
|
@click.pass_context
|
522
|
-
def
|
522
|
+
def deployed_schemas(ctx, catalog):
|
523
523
|
"""Display a tree graph of information about an asset"""
|
524
524
|
c = ctx.obj
|
525
525
|
list_deployed_database_schemas(
|
@@ -533,7 +533,7 @@ def list_deployed_schemas(ctx, catalog):
|
|
533
533
|
)
|
534
534
|
|
535
535
|
|
536
|
-
@show.command("
|
536
|
+
@show.command("catalogs")
|
537
537
|
@click.option("--search_server", default="*", help="Server to search for catalogs")
|
538
538
|
@click.pass_context
|
539
539
|
def list_catalogs(ctx, search_server):
|
@@ -550,10 +550,10 @@ def list_catalogs(ctx, search_server):
|
|
550
550
|
)
|
551
551
|
|
552
552
|
|
553
|
-
@show.command("
|
553
|
+
@show.command("glossaries")
|
554
554
|
@click.option("--search_string", default="*", help="Name to search for glossaries")
|
555
555
|
@click.pass_context
|
556
|
-
def
|
556
|
+
def glossaries(ctx, search_string):
|
557
557
|
"""Display a tree graph of information about an asset"""
|
558
558
|
c = ctx.obj
|
559
559
|
display_glossaries(
|
@@ -567,7 +567,7 @@ def list_glossaries(ctx, search_string):
|
|
567
567
|
)
|
568
568
|
|
569
569
|
|
570
|
-
@show.command("
|
570
|
+
@show.command("databases")
|
571
571
|
@click.pass_context
|
572
572
|
def list_databases(ctx):
|
573
573
|
"""Display a tree graph of information about an asset"""
|
@@ -608,19 +608,19 @@ def survey(ctx):
|
|
608
608
|
pass
|
609
609
|
|
610
610
|
|
611
|
-
@survey.command("survey-uc-server")
|
612
|
-
@click.pass_context
|
613
|
-
@click.option(
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
)
|
618
|
-
def survey_uc_server(ctx, uc_endpoint):
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
611
|
+
# @survey.command("survey-uc-server")
|
612
|
+
# @click.pass_context
|
613
|
+
# @click.option(
|
614
|
+
# "--uc_endpoint",
|
615
|
+
# default="https://localhost:8080",
|
616
|
+
# help="Endpoint of the Unity Catalog Server to Survey",
|
617
|
+
# )
|
618
|
+
# def survey_uc_server(ctx, uc_endpoint):
|
619
|
+
# """Survey the Unity Catalog server at the given endpoint"""
|
620
|
+
# c = ctx.obj
|
621
|
+
# pass
|
622
|
+
# # restart_connector(connector, c.integration_daemon, c.integration_daemon_url,
|
623
|
+
# # c.userid, c.password)
|
624
624
|
|
625
625
|
|
626
626
|
if __name__ == "__main__":
|
@@ -468,7 +468,7 @@ def valid_metadata_values(ctx, property, type_name):
|
|
468
468
|
)
|
469
469
|
|
470
470
|
|
471
|
-
@show.command("
|
471
|
+
@show.command("elements")
|
472
472
|
@click.pass_context
|
473
473
|
@click.option("--om_type", default="Organization", help="Metadata type to query")
|
474
474
|
def list_element_info(ctx, om_type):
|
@@ -485,7 +485,7 @@ def list_element_info(ctx, om_type):
|
|
485
485
|
)
|
486
486
|
|
487
487
|
|
488
|
-
@show.command("
|
488
|
+
@show.command("processes")
|
489
489
|
@click.pass_context
|
490
490
|
def list_element_info(ctx):
|
491
491
|
"""Display the valid metadata values for a property and type"""
|
@@ -98,7 +98,7 @@ def start_server(ctx, server):
|
|
98
98
|
p_client.close_session()
|
99
99
|
|
100
100
|
|
101
|
-
@click.command("refresh
|
101
|
+
@click.command("refresh")
|
102
102
|
@click.pass_context
|
103
103
|
# @click.option(
|
104
104
|
# "--engine-host", default=EGERIA_ENGINE_HOST, help="Engine Host to refresh"
|
@@ -54,20 +54,39 @@ disable_ssl_warnings = True
|
|
54
54
|
|
55
55
|
|
56
56
|
def display_engine_activity_c(
|
57
|
-
|
58
|
-
|
59
|
-
user: str,
|
60
|
-
user_pass: str,
|
61
|
-
paging: bool,
|
57
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
58
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
59
|
+
user: str = EGERIA_USER,
|
60
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
61
|
+
paging: bool = True,
|
62
62
|
jupyter: bool = EGERIA_JUPYTER,
|
63
|
-
width=EGERIA_WIDTH,
|
63
|
+
width: int = EGERIA_WIDTH,
|
64
64
|
):
|
65
|
-
|
65
|
+
"""Display governance engine activity as a table.
|
66
|
+
|
67
|
+
Parameters
|
68
|
+
----------
|
69
|
+
view_server : str
|
70
|
+
The Egeria view server name.
|
71
|
+
view_url : str
|
72
|
+
The URL for the Egeria view server.
|
73
|
+
user : str
|
74
|
+
The user name for authenticating with the Egeria server.
|
75
|
+
user_pass : str
|
76
|
+
The user password for authenticating with the Egeria server.
|
77
|
+
paging : bool, default is True
|
78
|
+
Whether to enable paging mode when displaying the table.
|
79
|
+
jupyter : bool
|
80
|
+
Indicates if the environment is a Jupyter notebook.
|
81
|
+
width : int
|
82
|
+
The width of the console for table printing.
|
83
|
+
"""
|
84
|
+
g_client = AutomatedCuration(view_server, view_url, user, user_pwd=user_pass)
|
66
85
|
|
67
86
|
def generate_table() -> Table:
|
68
87
|
"""Make a new table."""
|
69
88
|
table = Table(
|
70
|
-
title=f"Engine Action Status for Platform {
|
89
|
+
title=f"Engine Action Status for Platform {view_url} @ {time.asctime()}",
|
71
90
|
style="bold white on black",
|
72
91
|
row_styles=["bold white on black"],
|
73
92
|
header_style="white on dark_blue",
|
@@ -75,7 +94,7 @@ def display_engine_activity_c(
|
|
75
94
|
caption_style="white on black",
|
76
95
|
show_lines=True,
|
77
96
|
box=box.ROUNDED,
|
78
|
-
caption=f"Engine Status for Server '{
|
97
|
+
caption=f"Engine Status for Server '{view_server}' @ Platform - {view_url}",
|
79
98
|
expand=True,
|
80
99
|
)
|
81
100
|
table.add_column("Requested Time")
|
@@ -62,7 +62,37 @@ def display_gov_eng_status(
|
|
62
62
|
jupyter: bool = EGERIA_JUPYTER,
|
63
63
|
width: int = EGERIA_WIDTH,
|
64
64
|
sort: bool = True,
|
65
|
-
):
|
65
|
+
) -> None:
|
66
|
+
"""Displays the status table of the governance engines on the specified Engine Host OMAG Server
|
67
|
+
|
68
|
+
Parameters
|
69
|
+
----------
|
70
|
+
search_list : list of str
|
71
|
+
List of governance engine names to search for. Defaults to ["*"] which returns all governance engines.
|
72
|
+
engine_host : str
|
73
|
+
The host name of the governance engine.
|
74
|
+
view_server : str
|
75
|
+
The name of the view server to interact with.
|
76
|
+
url : str
|
77
|
+
The URL of the view server.
|
78
|
+
username : str
|
79
|
+
Username for authentication with the view server.
|
80
|
+
user_pass : str
|
81
|
+
Password for authentication with the view server.
|
82
|
+
paging : bool
|
83
|
+
Determines whether to use a pager or live monitor for output. Defaults to True.
|
84
|
+
jupyter : bool
|
85
|
+
Specifies if the code is running in a Jupyter environment. Defaults to EGERIA_JUPYTER.
|
86
|
+
width : int
|
87
|
+
Width of the console output. Defaults to EGERIA_WIDTH.
|
88
|
+
sort : bool
|
89
|
+
Determines whether to sort the governance engine statuses. Defaults to True.
|
90
|
+
|
91
|
+
Returns
|
92
|
+
-------
|
93
|
+
|
94
|
+
Nothing
|
95
|
+
"""
|
66
96
|
console = Console(width=EGERIA_WIDTH)
|
67
97
|
|
68
98
|
s_client = EgeriaTech(view_server, url, username, user_pass)
|
@@ -60,7 +60,49 @@ def display_integration_daemon_status(
|
|
60
60
|
jupyter: bool = EGERIA_JUPYTER,
|
61
61
|
width: int = EGERIA_WIDTH,
|
62
62
|
sort: bool = True,
|
63
|
-
):
|
63
|
+
) -> None:
|
64
|
+
"""Display the status of connectors running on the specified Integration Daemon OMAG Server.
|
65
|
+
|
66
|
+
Parameters
|
67
|
+
----------
|
68
|
+
search_list : list[str], optional
|
69
|
+
A list of connector names to search for. Default is ["*"], which returns all connectors.
|
70
|
+
|
71
|
+
integ_server : str, optional
|
72
|
+
The name of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON.
|
73
|
+
|
74
|
+
integ_url : str, optional
|
75
|
+
The URL of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON_URL.
|
76
|
+
|
77
|
+
view_server : str, optional
|
78
|
+
The name of the view server. Default is EGERIA_VIEW_SERVER.
|
79
|
+
|
80
|
+
view_url : str, optional
|
81
|
+
The URL of the view server. Default is EGERIA_VIEW_SERVER_URL.
|
82
|
+
|
83
|
+
user : str, optional
|
84
|
+
The username for authentication. Default is EGERIA_USER.
|
85
|
+
|
86
|
+
user_pass : str, optional
|
87
|
+
The password for authenticated access. Default is EGERIA_USER_PASSWORD.
|
88
|
+
|
89
|
+
paging : bool, optional
|
90
|
+
Determines whether to use paging or a live monitor for console output. Default is True.
|
91
|
+
|
92
|
+
jupyter : bool, optional
|
93
|
+
Determines whether running in a Jupyter environment. Default is EGERIA_JUPYTER.
|
94
|
+
|
95
|
+
width : int, optional
|
96
|
+
The width of the console display. Default is EGERIA_WIDTH.
|
97
|
+
|
98
|
+
sort : bool, optional
|
99
|
+
Determines whether to sort the connector reports. Default is True.
|
100
|
+
|
101
|
+
Returns
|
102
|
+
-------
|
103
|
+
|
104
|
+
Nothing
|
105
|
+
"""
|
64
106
|
s_client = EgeriaTech(view_server, view_url, user, user_pass)
|
65
107
|
token = s_client.create_egeria_bearer_token()
|
66
108
|
|
@@ -45,15 +45,15 @@ console = Console(width=200)
|
|
45
45
|
|
46
46
|
|
47
47
|
def display_status(
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
user_pass: str,
|
48
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
49
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
50
|
+
user: str = EGERIA_USER,
|
51
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
52
52
|
jupyter: bool = EGERIA_JUPYTER,
|
53
53
|
width: int = EGERIA_WIDTH,
|
54
54
|
):
|
55
|
-
r_client = RuntimeManager(
|
56
|
-
token = r_client.create_egeria_bearer_token(
|
55
|
+
r_client = RuntimeManager(view_server, view_url, user)
|
56
|
+
token = r_client.create_egeria_bearer_token(user, user_pass)
|
57
57
|
|
58
58
|
def generate_table() -> Table:
|
59
59
|
"""Make a new table."""
|
@@ -8,19 +8,16 @@ A simple status display for the Integration Daemon.
|
|
8
8
|
|
9
9
|
|
10
10
|
"""
|
11
|
-
import argparse
|
12
11
|
import os
|
13
12
|
import time
|
13
|
+
from typing import Union
|
14
14
|
|
15
|
+
import nest_asyncio
|
15
16
|
from rich import box
|
16
|
-
from rich.console import Console
|
17
|
-
from rich.live import Live
|
18
17
|
from rich.table import Table
|
19
|
-
import nest_asyncio
|
20
|
-
from typing import Union
|
21
18
|
from textual.widgets import DataTable
|
22
19
|
|
23
|
-
from pyegeria import EgeriaTech
|
20
|
+
from pyegeria import EgeriaTech
|
24
21
|
from pyegeria._exceptions import (
|
25
22
|
InvalidParameterException,
|
26
23
|
PropertyServerException,
|
@@ -80,6 +77,50 @@ def display_integration_daemon_status(
|
|
80
77
|
sort: bool = True,
|
81
78
|
data_table: bool = False,
|
82
79
|
) -> Table | DataTable:
|
80
|
+
"""Returns a table representing the status of connectors running on the specified Integration Daemon OMAG Server.
|
81
|
+
This routine is meant to be used in a python script or Jupyter Notebook where the resulting table is rendered
|
82
|
+
in either a Rich Console or a Textual Application.
|
83
|
+
|
84
|
+
Parameters
|
85
|
+
----------
|
86
|
+
integ_server : str, optional
|
87
|
+
The name of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON.
|
88
|
+
|
89
|
+
integ_url : str, optional
|
90
|
+
The URL of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON_URL.
|
91
|
+
|
92
|
+
view_server : str, optional
|
93
|
+
The name of the view server. Default is EGERIA_VIEW_SERVER.
|
94
|
+
|
95
|
+
view_url : str, optional
|
96
|
+
The URL of the view server. Default is EGERIA_VIEW_SERVER_URL.
|
97
|
+
|
98
|
+
user : str, optional
|
99
|
+
The username for authentication. Default is EGERIA_USER.
|
100
|
+
|
101
|
+
user_pass : str, optional
|
102
|
+
The password for authenticated access. Default is EGERIA_USER_PASSWORD.
|
103
|
+
|
104
|
+
paging : bool, optional
|
105
|
+
Determines whether to use paging or a live monitor for console output. Default is True.
|
106
|
+
|
107
|
+
jupyter : bool, optional
|
108
|
+
Determines whether running in a Jupyter environment. Default is EGERIA_JUPYTER.
|
109
|
+
|
110
|
+
width : int, optional
|
111
|
+
The width of the console display. Default is EGERIA_WIDTH.
|
112
|
+
|
113
|
+
sort : bool, optional
|
114
|
+
Determines whether to sort the connector reports. Default is True.
|
115
|
+
data_table: bool, optional, default is False.
|
116
|
+
If True, a Textual DataTable widget is returned. If false, a Rich table is returned..
|
117
|
+
|
118
|
+
Returns
|
119
|
+
-------
|
120
|
+
|
121
|
+
Either a Rich Table or a Textual DataTable depending on the status of data_table
|
122
|
+
"""
|
123
|
+
|
83
124
|
s_client = EgeriaTech(view_server, view_url, user, user_pass)
|
84
125
|
nest_asyncio.apply()
|
85
126
|
|
@@ -180,20 +221,7 @@ def display_integration_daemon_status(
|
|
180
221
|
return table
|
181
222
|
|
182
223
|
try:
|
183
|
-
|
184
|
-
console = Console(width=width, force_terminal=not jupyter)
|
185
|
-
with console.pager():
|
186
|
-
console.print(generate_table())
|
187
|
-
else:
|
188
|
-
with Live(
|
189
|
-
generate_table(),
|
190
|
-
refresh_per_second=1,
|
191
|
-
screen=True,
|
192
|
-
vertical_overflow="visible",
|
193
|
-
) as live:
|
194
|
-
while True:
|
195
|
-
time.sleep(2)
|
196
|
-
live.update(generate_table())
|
224
|
+
return generate_table()
|
197
225
|
|
198
226
|
except (
|
199
227
|
InvalidParameterException,
|
@@ -207,86 +235,3 @@ def display_integration_daemon_status(
|
|
207
235
|
|
208
236
|
finally:
|
209
237
|
s_client.close_session()
|
210
|
-
|
211
|
-
|
212
|
-
def main_live():
|
213
|
-
parser = argparse.ArgumentParser()
|
214
|
-
parser.add_argument(
|
215
|
-
"--integ_server", help="Name of the integration server to display status for"
|
216
|
-
)
|
217
|
-
parser.add_argument("--integ_url", help="URL Platform to connect to")
|
218
|
-
parser.add_argument("--view_server", help="Name of the view server to use")
|
219
|
-
parser.add_argument("--view_url", help="view server URL Platform to connect to")
|
220
|
-
parser.add_argument("--userid", help="User Id")
|
221
|
-
parser.add_argument("--password", help="User Password")
|
222
|
-
args = parser.parse_args()
|
223
|
-
|
224
|
-
integ_server = (
|
225
|
-
args.integ_server
|
226
|
-
if args.integ_server is not None
|
227
|
-
else EGERIA_INTEGRATION_DAEMON
|
228
|
-
)
|
229
|
-
integ_url = (
|
230
|
-
args.integ_url if args.integ_url is not None else EGERIA_INTEGRATION_DAEMON_URL
|
231
|
-
)
|
232
|
-
view_server = (
|
233
|
-
args.view_server if args.view_server is not None else EGERIA_VIEW_SERVER
|
234
|
-
)
|
235
|
-
view_url = args.view_url if args.view_url is not None else EGERIA_VIEW_SERVER_URL
|
236
|
-
userid = args.userid if args.userid is not None else EGERIA_USER
|
237
|
-
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
238
|
-
display_integration_daemon_status(
|
239
|
-
integ_server=integ_server,
|
240
|
-
integ_url=integ_url,
|
241
|
-
view_server=view_server,
|
242
|
-
view_url=view_url,
|
243
|
-
user=userid,
|
244
|
-
user_pass=user_pass,
|
245
|
-
paging=False,
|
246
|
-
data_table=False,
|
247
|
-
)
|
248
|
-
|
249
|
-
|
250
|
-
def main_paging():
|
251
|
-
parser = argparse.ArgumentParser()
|
252
|
-
parser.add_argument(
|
253
|
-
"--integ_server", help="Name of the integration server to display status for"
|
254
|
-
)
|
255
|
-
parser.add_argument("--integ_url", help="URL Platform to connect to")
|
256
|
-
parser.add_argument("--view_server", help="Name of the view server to use")
|
257
|
-
parser.add_argument("--view_url", help="view server URL Platform to connect to")
|
258
|
-
parser.add_argument("--userid", help="User Id")
|
259
|
-
parser.add_argument("--password", help="User Password")
|
260
|
-
args = parser.parse_args()
|
261
|
-
|
262
|
-
integ_server = (
|
263
|
-
args.integ_server
|
264
|
-
if args.integ_server is not None
|
265
|
-
else EGERIA_INTEGRATION_DAEMON
|
266
|
-
)
|
267
|
-
integ_url = (
|
268
|
-
args.integ_url if args.integ_url is not None else EGERIA_INTEGRATION_DAEMON_URL
|
269
|
-
)
|
270
|
-
view_server = (
|
271
|
-
args.view_server if args.view_server is not None else EGERIA_VIEW_SERVER
|
272
|
-
)
|
273
|
-
view_url = args.view_url if args.view_url is not None else EGERIA_VIEW_SERVER_URL
|
274
|
-
userid = args.userid if args.userid is not None else EGERIA_USER
|
275
|
-
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
276
|
-
display_integration_daemon_status(
|
277
|
-
integ_server=integ_server,
|
278
|
-
integ_url=integ_url,
|
279
|
-
view_server=view_server,
|
280
|
-
view_url=view_url,
|
281
|
-
user=userid,
|
282
|
-
user_pass=user_pass,
|
283
|
-
paging=True,
|
284
|
-
data_table=False,
|
285
|
-
)
|
286
|
-
|
287
|
-
|
288
|
-
if __name__ == "__main__":
|
289
|
-
main_live()
|
290
|
-
|
291
|
-
if __name__ == "__main_paging__":
|
292
|
-
main_paging()
|
@@ -1577,13 +1577,24 @@ class GlossaryManager(GlossaryBrowser):
|
|
1577
1577
|
|
1578
1578
|
# process each row
|
1579
1579
|
for row in csv_reader:
|
1580
|
+
# Parse the file. When the value '---' is encountered, make the value None.git+https:
|
1580
1581
|
term_name = row.get("Term Name", None)
|
1581
1582
|
qualified_name = row.get("Qualified Name", None)
|
1582
|
-
|
1583
|
-
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1583
|
+
abbrev_in = row.get("Abbreviation", None)
|
1584
|
+
abbrev = None if abbrev_in == "---" else abbrev_in
|
1585
|
+
|
1586
|
+
summary_in = row.get("Summary", None)
|
1587
|
+
summary = None if summary_in == "---" else summary_in
|
1588
|
+
|
1589
|
+
description_in = row.get("Description", None)
|
1590
|
+
description = None if description_in == "---" else description_in
|
1591
|
+
|
1592
|
+
examples_in = row.get("Examples", None)
|
1593
|
+
examples = None if examples_in == "---" else examples_in
|
1594
|
+
|
1595
|
+
usage_in = row.get("Usage", None)
|
1596
|
+
usage = None if usage_in == "---" else usage_in
|
1597
|
+
|
1587
1598
|
version = row.get("Version Identifier", "1.0")
|
1588
1599
|
status = row.get("Status", "DRAFT")
|
1589
1600
|
status = status.upper()
|
@@ -1727,12 +1738,14 @@ class GlossaryManager(GlossaryBrowser):
|
|
1727
1738
|
for term in term_list:
|
1728
1739
|
term_name = term["glossaryTermProperties"]["displayName"]
|
1729
1740
|
qualified_name = term["glossaryTermProperties"]["qualifiedName"]
|
1730
|
-
abbrev = term["glossaryTermProperties"]
|
1731
|
-
summary = term["glossaryTermProperties"]
|
1732
|
-
description = term["glossaryTermProperties"]
|
1733
|
-
examples = term["glossaryTermProperties"]
|
1734
|
-
usage = term["glossaryTermProperties"]
|
1735
|
-
version = term["glossaryTermProperties"]
|
1741
|
+
abbrev = term["glossaryTermProperties"].get("abbreviation", "---")
|
1742
|
+
summary = term["glossaryTermProperties"].get("summary", "---")
|
1743
|
+
description = term["glossaryTermProperties"].get("description", "---")
|
1744
|
+
examples = term["glossaryTermProperties"].get("examples", "---")
|
1745
|
+
usage = term["glossaryTermProperties"].get("usage", "---")
|
1746
|
+
version = term["glossaryTermProperties"].get(
|
1747
|
+
"publishVersionIdentifier", "---"
|
1748
|
+
)
|
1736
1749
|
status = term["elementHeader"]["status"]
|
1737
1750
|
|
1738
1751
|
csv_writer.writerow(
|
@@ -5,15 +5,15 @@ pyegeria/_deprecated_gov_engine.py,sha256=dWNcwVsE5__dF2u4QiIyQrssozzzOjBbLld8Md
|
|
5
5
|
pyegeria/_exceptions.py,sha256=NJ7vAhmvusK1ENvY2MMrBB6A6TgpYjzS9QJxFH56b8c,18470
|
6
6
|
pyegeria/_globals.py,sha256=1Uc8392wjbiVN5L__RzxC1-U97RMXj77_iUsMSgeAjQ,638
|
7
7
|
pyegeria/_validators.py,sha256=rnZelHJnjHaLZ8UhUTDyB59MfIUJifhALtkYoHBaos4,12736
|
8
|
-
pyegeria/asset_catalog_omvs.py,sha256=
|
8
|
+
pyegeria/asset_catalog_omvs.py,sha256=Bgw5pRO8wUdVlLTRQ9ySd34Rl_FFoeDnEoybBBVNNhU,24576
|
9
9
|
pyegeria/automated_curation_omvs.py,sha256=BwNuF7XQJAV-POvzaWwFh0TS5yRnHZZPhlayvtIMlwY,130243
|
10
10
|
pyegeria/classification_manager_omvs.py,sha256=3yInuRy7Cf43oSFZ8BuzcIgtGSm5BfvlKYqtWKRMlPU,186678
|
11
11
|
pyegeria/collection_manager_omvs.py,sha256=kye2kjthNnmwxMZhHQKV0xoHbxcNPWjNzRAYOItj_gY,99201
|
12
12
|
pyegeria/commands/.DS_Store,sha256=nBgW7MKJ6b4wSWyEEeGYHWwC8QJAiteQaWKM9PoNRzY,6148
|
13
13
|
pyegeria/commands/README.md,sha256=zNfWZppDxoKqTJeRtcewzku9z1m6_hKacCyQUQw1iq4,1974
|
14
|
-
pyegeria/commands/__init__.py,sha256=
|
14
|
+
pyegeria/commands/__init__.py,sha256=dVtdNVBwR_n04rMwDPFmND4fZyuywAoucYeT7hJtIq4,782
|
15
15
|
pyegeria/commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
|
16
|
-
pyegeria/commands/cat/__init__.py,sha256=
|
16
|
+
pyegeria/commands/cat/__init__.py,sha256=3LHTWeyxLdFGDhWVTBzgJ6Y_9b2pM5CO2-kbsUASv4M,300
|
17
17
|
pyegeria/commands/cat/get_asset_graph.py,sha256=4AO4KlCgb7vbMihJK7W_GAnrd4J9sKwc4kXxa2ZrRW4,12447
|
18
18
|
pyegeria/commands/cat/get_collection.py,sha256=v7hCeEDcAQmcjM9qepuk8gg_RnYra3_v009AJOunkKk,5005
|
19
19
|
pyegeria/commands/cat/get_project_dependencies.py,sha256=B0JaMSUi0hzVgos1sTY2uUPGy1DzKEJMIbbYfMUWvQA,5981
|
@@ -24,22 +24,22 @@ pyegeria/commands/cat/glossary_actions.py,sha256=T1JkB-uhf1WyM1xcIBux_kNcAnpkLt8
|
|
24
24
|
pyegeria/commands/cat/list_archives.py,sha256=FEZ2XYnQIWo2PztWqnj6unn0pbblPU0-bMbTyI3csv4,5464
|
25
25
|
pyegeria/commands/cat/list_assets.py,sha256=bNwSaBDz661hfnc2Rn4j4HPHAugKvz0XwN9L1m4FVQk,6529
|
26
26
|
pyegeria/commands/cat/list_cert_types.py,sha256=mbCls_EqC5JKG5rvS4o69k7KgZ6aNXlcqoJ3DtHsTFA,7127
|
27
|
-
pyegeria/commands/cat/list_deployed_catalogs.py,sha256=
|
28
|
-
pyegeria/commands/cat/list_deployed_database_schemas.py,sha256=
|
29
|
-
pyegeria/commands/cat/list_deployed_databases.py,sha256=
|
30
|
-
pyegeria/commands/cat/list_glossaries.py,sha256=
|
27
|
+
pyegeria/commands/cat/list_deployed_catalogs.py,sha256=sdfhzK0Wqo59tpoX6jpjnBWl5MLdD1qzU0TcXC_QtsY,8140
|
28
|
+
pyegeria/commands/cat/list_deployed_database_schemas.py,sha256=g-O5Qk6t9mHl3yAYwHIbVWNxjy5bR4YOfvJ5YMoeMyw,9535
|
29
|
+
pyegeria/commands/cat/list_deployed_databases.py,sha256=DTpt7l2z81YsmadsHsnSgrbRGPlkBzHjg2p1TdnI-zc,7565
|
30
|
+
pyegeria/commands/cat/list_glossaries.py,sha256=_2viz45k-PZQXyDfuwHEBThFCjYdmVerpN_xjjpp0fY,5527
|
31
31
|
pyegeria/commands/cat/list_projects.py,sha256=Jzs-DtIpPhCH-gY4PYT6mnRBWnEf4m18TFfcw8UymNU,8011
|
32
32
|
pyegeria/commands/cat/list_relationships.py,sha256=U9f78cOi4HyaacqNaFSMq_7rRxVcEczvwPv468GYw3Q,5869
|
33
33
|
pyegeria/commands/cat/list_tech_types.py,sha256=20T4v6L5qeebSsaL1nGkFMDAIsy2W3A3SMm1RcgFoh0,4609
|
34
|
-
pyegeria/commands/cat/list_terms.py,sha256=
|
34
|
+
pyegeria/commands/cat/list_terms.py,sha256=acflhC9YwSog2rGmGOI-U52g21xre9eF9w2nFbUYmJg,8936
|
35
35
|
pyegeria/commands/cat/list_todos.py,sha256=iPxHRyW3X5tiREio4TUOwRPvNPjU0gxm3pVnUI79ir4,6542
|
36
36
|
pyegeria/commands/cat/list_user_ids.py,sha256=7JinL7rknPbGusIb8ikXKEaV1vvbuvx_WWtbmlfS_DY,5093
|
37
37
|
pyegeria/commands/cli/__init__.py,sha256=hpTVSMP2gnPRhcAZPdeUEsQ-eaDySlXlk239dNWYmng,292
|
38
|
-
pyegeria/commands/cli/egeria.py,sha256=
|
39
|
-
pyegeria/commands/cli/egeria_cat.py,sha256=
|
38
|
+
pyegeria/commands/cli/egeria.py,sha256=PC6_mVoeQu5tIoUzmNClywEWliAZMbEnJMDsZg_GkDM,32764
|
39
|
+
pyegeria/commands/cli/egeria_cat.py,sha256=o6RfCYRhykXfFegd47-Z2fsXLzcREViGkqts1fOnrAs,15763
|
40
40
|
pyegeria/commands/cli/egeria_my.py,sha256=Memyxzhrn_i3nMNRor-5N40_SKJJMzylA4iQgBW3T4g,6235
|
41
41
|
pyegeria/commands/cli/egeria_ops.py,sha256=aI3BU7btQa0ZrT3LDXto4gLWzLn2qoS4r499eHoAntc,11998
|
42
|
-
pyegeria/commands/cli/egeria_tech.py,sha256=
|
42
|
+
pyegeria/commands/cli/egeria_tech.py,sha256=o6g_xwP8S-ehwgpkl-0BD_-FyGfyr90bEiKWNvHj9xk,13303
|
43
43
|
pyegeria/commands/cli/ops_config.py,sha256=m4AfPjf-fR4EBTx8Dc2mcgrfWwAxb30YGeV-v79bg4U,1450
|
44
44
|
pyegeria/commands/my/README.md,sha256=ZheFhj_VoPMhcWjW3pGchHB0vH_A9PklSmrSkzKdrcQ,844
|
45
45
|
pyegeria/commands/my/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -50,23 +50,23 @@ pyegeria/commands/my/monitor_open_todos.py,sha256=KDrAjdLPP3j0K9Y3G95BIgr51ktTx3
|
|
50
50
|
pyegeria/commands/my/todo_actions.py,sha256=iazoRhsQ9aecCwJk6r4lWRP-mPD2t-YGU_GmPrFtR-Q,8372
|
51
51
|
pyegeria/commands/ops/README.md,sha256=PJsSDcvMv6E6og6y-cwvxFX5lhCII0UCwgKiM1T17MQ,1595
|
52
52
|
pyegeria/commands/ops/__init__.py,sha256=GyDGBYodxuJ-7k87z2farDs9vhR__RNrYeAe94HWGPM,764
|
53
|
-
pyegeria/commands/ops/engine_actions.py,sha256=
|
53
|
+
pyegeria/commands/ops/engine_actions.py,sha256=zHmjUhAb3pyIXRo6rdMkx5RL4XnR3ozwIlr7HaG7s3M,4515
|
54
54
|
pyegeria/commands/ops/gov_server_actions.py,sha256=dKYdb2ImwohPjrGE9ufkIhXURhY9V9FnzUh84ycQhTg,5515
|
55
55
|
pyegeria/commands/ops/list_catalog_targets.py,sha256=0FIZqZu7DSh7tnrme6EOhNiVvK8wyvN1iTZKEDuwTmw,6620
|
56
56
|
pyegeria/commands/ops/load_archive.py,sha256=ZsJmQ-2cywsiO5RYHQXFF72wrlBK18jvAkyQ8N-nSp4,2744
|
57
57
|
pyegeria/commands/ops/monitor_asset_events.py,sha256=cjdlVqE0XYnoRW3aorNbsVkjByDXefPBnllaZLelGls,3838
|
58
58
|
pyegeria/commands/ops/monitor_engine_activity.py,sha256=m18OSnRoo5ut0WKKOWNoFGXJW_npjp6hzHK3RUQG8T0,8479
|
59
|
-
pyegeria/commands/ops/monitor_engine_activity_c.py,sha256=
|
60
|
-
pyegeria/commands/ops/monitor_gov_eng_status.py,sha256=
|
61
|
-
pyegeria/commands/ops/monitor_integ_daemon_status.py,sha256
|
62
|
-
pyegeria/commands/ops/monitor_platform_status.py,sha256=
|
59
|
+
pyegeria/commands/ops/monitor_engine_activity_c.py,sha256=LM__vwJUbZOBwcBTEfa4JLcqWtR3POEbt1lMTwHk4lw,10135
|
60
|
+
pyegeria/commands/ops/monitor_gov_eng_status.py,sha256=nR0xI_8L8W6gOJm8-jp8BaAeOLf1Gd5ikYP43AbJMxo,9094
|
61
|
+
pyegeria/commands/ops/monitor_integ_daemon_status.py,sha256=Fjtwwgdz9RuaeW-tPIs_VX_J0x-YrO_TIzk-HOOwqA0,11367
|
62
|
+
pyegeria/commands/ops/monitor_platform_status.py,sha256=3uIgY9JzXnMxxenLpvmKEEfv_GsxslJeeseOEVEmCbU,6492
|
63
63
|
pyegeria/commands/ops/monitor_server_startup.py,sha256=0pwnhv761uuFHGJXVANa5RhQQPPTXFldJ45TfeT7qfk,3901
|
64
64
|
pyegeria/commands/ops/monitor_server_status.py,sha256=eeZY4o_HwrH-csrhHPi95LLGu00j6AYl48A7fDYTG34,6061
|
65
65
|
pyegeria/commands/ops/orig_monitor_server_list.py,sha256=Uhtn8lv7QVXJBi9DSR3Nelmz8TB0vOsat10nFS6Nu20,4637
|
66
66
|
pyegeria/commands/ops/orig_monitor_server_status.py,sha256=A-8hMDfbscdcq-b1OD4wKn0tphumX8WIK-Hz8uPoFkc,3974
|
67
67
|
pyegeria/commands/ops/refresh_integration_daemon.py,sha256=aEaN3RAqlu2Fu9TgbJqnsfyXZ__WBml2EgRKaC48Pig,2961
|
68
68
|
pyegeria/commands/ops/restart_integration_daemon.py,sha256=dqsQ6nOBw-EJgf7NvwTcR__h317dq_cxUWYRTGxvWaM,2901
|
69
|
-
pyegeria/commands/ops/table_integ_daemon_status.py,sha256=
|
69
|
+
pyegeria/commands/ops/table_integ_daemon_status.py,sha256=to93SVOF9tlaG5FpSHV4vZwZQgVoKmj5n-wc3oVQLGU,8414
|
70
70
|
pyegeria/commands/tech/README.md,sha256=nxDnfr3BCiGgW5G1VxWxiwUWJXIe5wreNuUeRyIt_hY,1343
|
71
71
|
pyegeria/commands/tech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
72
72
|
pyegeria/commands/tech/get_element_graph.py,sha256=YhpvHPNuSd-Ft-dBRLswGfqGYv2AlByyV0IyjhV4SSk,7367
|
@@ -96,7 +96,7 @@ pyegeria/egeria_tech_client.py,sha256=7NfqpJFft5GR4NPRDVDw22L9caHbXB8fhx0TAf6qEo
|
|
96
96
|
pyegeria/feedback_manager_omvs.py,sha256=B66e3ZCaC_dirb0mcb2Nz3PYh2ZKsoMAYNOb3euNiro,152931
|
97
97
|
pyegeria/full_omag_server_config.py,sha256=LBnqUiz1ofBdlKBzECFs_pQbdJwcWigAukWHGJRR2nU,47340
|
98
98
|
pyegeria/glossary_browser_omvs.py,sha256=NcitYaZJqwVODBO5zBtWpXPNUJJ3DKzEbRaOFSAyUlg,93554
|
99
|
-
pyegeria/glossary_manager_omvs.py,sha256=
|
99
|
+
pyegeria/glossary_manager_omvs.py,sha256=GfOolBICYMouiJszt6CO1iVlWeb8760AsA55xSkCR8o,126859
|
100
100
|
pyegeria/mermaid_utilities.py,sha256=GXiS-subb5nJcDqlThZWX2T8WspU1neFfhf4TxRoMh4,8344
|
101
101
|
pyegeria/my_profile_omvs.py,sha256=DyECbUFEcgokrIbzdMMNljC3bqfqKGXAF2wZEpzvRYs,34666
|
102
102
|
pyegeria/platform_services.py,sha256=CJIOYIFEbcIGwdWlApAQcXxZTsdrhFtpJcm4O3p7dG0,41646
|
@@ -108,8 +108,8 @@ pyegeria/template_manager_omvs.py,sha256=heqbKeum5hPCHap4r1RUZU8YB3QaQlxVNbq4GZi
|
|
108
108
|
pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
|
109
109
|
pyegeria/valid_metadata_omvs.py,sha256=tfCGXed5LLt59YA8uZNNtd9UJ-lRZfPU_uZxK31Yux0,65069
|
110
110
|
pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
|
111
|
-
pyegeria-1.5.1.1.
|
112
|
-
pyegeria-1.5.1.1.
|
113
|
-
pyegeria-1.5.1.1.
|
114
|
-
pyegeria-1.5.1.1.
|
115
|
-
pyegeria-1.5.1.1.
|
111
|
+
pyegeria-1.5.1.1.34.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
112
|
+
pyegeria-1.5.1.1.34.dist-info/METADATA,sha256=zn9jOqKStTT2xeK5ISFKemBHlMcPQBG_BGwjKg7dm3g,2998
|
113
|
+
pyegeria-1.5.1.1.34.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
114
|
+
pyegeria-1.5.1.1.34.dist-info/entry_points.txt,sha256=YxEUUWKTrK3YStEbBqM6TD_UetgVKy5LYGWBnxnyNz0,4886
|
115
|
+
pyegeria-1.5.1.1.34.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|