pyegeria 5.3.9.9.3__py3-none-any.whl → 5.5.3.3__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.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- commands/__init__.py +24 -0
- commands/cat/Dr-Egeria_md-orig.py +2 -2
- commands/cat/__init__.py +1 -17
- commands/cat/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +372 -0
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +27 -182
- commands/cat/exp_list_glossaries.py +11 -14
- commands/cat/get_asset_graph.py +37 -267
- commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
- commands/cat/get_project_dependencies.py +14 -14
- commands/cat/get_project_structure.py +15 -14
- commands/cat/get_tech_type_elements.py +16 -116
- commands/cat/glossary_actions.py +145 -298
- commands/cat/list_assets.py +3 -11
- commands/cat/list_cert_types.py +17 -63
- commands/cat/list_collections.py +46 -138
- commands/cat/list_deployed_catalogs.py +15 -27
- commands/cat/list_deployed_database_schemas.py +27 -43
- commands/cat/list_deployed_databases.py +16 -31
- commands/cat/list_deployed_servers.py +35 -54
- commands/cat/list_glossaries.py +18 -17
- commands/cat/list_projects.py +10 -12
- commands/cat/list_tech_type_elements.py +21 -37
- commands/cat/list_tech_types.py +13 -25
- commands/cat/list_terms.py +38 -79
- commands/cat/list_todos.py +4 -11
- commands/cat/list_user_ids.py +3 -10
- commands/cat/my_reports.py +559 -0
- commands/cat/run_report.py +394 -0
- commands/cat/run_report_orig.py +528 -0
- commands/cli/egeria.py +222 -247
- commands/cli/egeria_cat.py +68 -81
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/cli/ops_config.py +3 -6
- commands/{cat/list_categories.py → deprecated/list_data_designer.py} +53 -64
- commands/{cat/list_data_structures.py → deprecated/list_data_structures_full.py} +3 -6
- commands/deprecated/old_get_asset_graph.py +315 -0
- commands/my/__init__.py +0 -2
- commands/my/list_my_profile.py +27 -34
- commands/my/list_my_roles.py +1 -7
- commands/my/monitor_my_todos.py +1 -7
- commands/my/monitor_open_todos.py +6 -7
- commands/my/todo_actions.py +4 -5
- commands/ops/__init__.py +0 -2
- commands/ops/gov_server_actions.py +17 -21
- commands/ops/list_archives.py +17 -38
- commands/ops/list_catalog_targets.py +33 -40
- commands/ops/load_archive.py +35 -26
- commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
- commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
- commands/ops/monitor_engine_activity.py +79 -77
- commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
- commands/ops/monitor_platform_status.py +38 -50
- commands/ops/monitor_server_startup.py +6 -11
- commands/ops/monitor_server_status.py +7 -11
- commands/ops/orig_monitor_server_list.py +8 -8
- commands/ops/orig_monitor_server_status.py +1 -5
- commands/ops/refresh_integration_daemon.py +5 -5
- commands/ops/restart_integration_daemon.py +5 -5
- commands/ops/table_integ_daemon_status.py +6 -6
- commands/ops/x_engine_actions.py +7 -7
- commands/tech/__init__.py +0 -2
- commands/tech/{generic_actions.py → element_actions.py} +6 -11
- commands/tech/get_element_info.py +20 -29
- commands/tech/get_guid_info.py +23 -42
- commands/tech/get_tech_details.py +20 -35
- commands/tech/get_tech_type_template.py +28 -39
- commands/tech/list_all_om_type_elements.py +24 -30
- commands/tech/list_all_om_type_elements_x.py +22 -28
- commands/tech/list_all_related_elements.py +19 -28
- commands/tech/list_anchored_elements.py +22 -30
- commands/tech/list_asset_types.py +19 -24
- commands/tech/list_elements_by_classification_by_property_value.py +26 -32
- commands/tech/list_elements_by_property_value.py +19 -25
- commands/tech/list_elements_by_property_value_x.py +20 -28
- commands/tech/list_elements_for_classification.py +28 -41
- commands/tech/list_gov_action_processes.py +16 -27
- commands/tech/list_information_supply_chains.py +22 -30
- commands/tech/list_registered_services.py +14 -26
- commands/tech/list_related_elements_with_prop_value.py +15 -25
- commands/tech/list_related_specification.py +1 -4
- commands/tech/list_relationship_types.py +15 -25
- commands/tech/list_relationships.py +20 -36
- commands/tech/list_solution_blueprints.py +28 -33
- commands/tech/list_solution_components.py +23 -29
- commands/tech/list_solution_roles.py +21 -32
- commands/tech/list_tech_templates.py +51 -54
- commands/tech/list_valid_metadata_values.py +5 -9
- commands/tech/table_tech_templates.py +2 -6
- commands/tech/x_list_related_elements.py +1 -4
- examples/GeoSpatial Products Example.py +524 -0
- examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
- examples/Jupyter Notebooks/README.md +2 -0
- examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
- examples/Jupyter Notebooks/common/__init__.py +14 -0
- examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
- examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
- examples/Jupyter Notebooks/common/globals.ipynb +184 -0
- examples/Jupyter Notebooks/common/globals.py +154 -0
- examples/Jupyter Notebooks/common/orig_globals.py +152 -0
- examples/format_sets/all_format_sets.json +910 -0
- examples/format_sets/custom_format_sets.json +268 -0
- examples/format_sets/subset_format_sets.json +187 -0
- examples/format_sets_save_load_example.py +291 -0
- examples/jacquard_data_sets.py +129 -0
- examples/output_formats_example.py +193 -0
- examples/test_jacquard_data_sets.py +54 -0
- examples/test_jacquard_data_sets_scenarios.py +94 -0
- md_processing/__init__.py +90 -0
- md_processing/command_dispatcher.py +33 -0
- md_processing/command_mapping.py +221 -0
- md_processing/data/commands/commands_data_designer.json +537 -0
- md_processing/data/commands/commands_external_reference.json +733 -0
- md_processing/data/commands/commands_feedback.json +155 -0
- md_processing/data/commands/commands_general.json +204 -0
- md_processing/data/commands/commands_glossary.json +218 -0
- md_processing/data/commands/commands_governance.json +3678 -0
- md_processing/data/commands/commands_product_manager.json +865 -0
- md_processing/data/commands/commands_project.json +642 -0
- md_processing/data/commands/commands_solution_architect.json +366 -0
- md_processing/data/commands.json +17568 -0
- md_processing/data/commands_working.json +30641 -0
- md_processing/data/gened_report_specs.py +6584 -0
- md_processing/data/generated_format_sets.json +6533 -0
- md_processing/data/generated_format_sets_old.json +4137 -0
- md_processing/data/generated_format_sets_old.py +45 -0
- md_processing/dr_egeria.py +182 -0
- md_processing/md_commands/__init__.py +3 -0
- md_processing/md_commands/data_designer_commands.py +1276 -0
- md_processing/md_commands/ext_ref_commands.py +530 -0
- md_processing/md_commands/feedback_commands.py +726 -0
- md_processing/md_commands/glossary_commands.py +684 -0
- md_processing/md_commands/governance_officer_commands.py +600 -0
- md_processing/md_commands/product_manager_commands.py +1266 -0
- md_processing/md_commands/project_commands.py +383 -0
- md_processing/md_commands/solution_architect_commands.py +1184 -0
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/__init__.py +4 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +1249 -0
- md_processing/md_processing_utils/common_md_utils.py +578 -0
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +547 -0
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +193 -0
- md_processing/md_processing_utils/generate_md_cmd_templates.py +144 -0
- md_processing/md_processing_utils/generate_md_templates.py +83 -0
- md_processing/md_processing_utils/md_processing_constants.py +1228 -0
- md_processing/md_processing_utils/message_constants.py +19 -0
- pyegeria/__init__.py +201 -443
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/core/_exceptions.py +457 -0
- pyegeria/core/_globals.py +60 -0
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/core/_validators.py +257 -0
- pyegeria/core/config.py +654 -0
- pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
- pyegeria/core/load_config.py +37 -0
- pyegeria/core/logging_configuration.py +207 -0
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/deprecated/__init__.py +0 -0
- pyegeria/{_client.py → deprecated/_client.py} +62 -24
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1988 -1878
- pyegeria/deprecated/output_formatter_with_machine_keys.py +1127 -0
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +216 -229
- pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
- pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
- pyegeria/egeria_cat_client.py +25 -51
- pyegeria/egeria_client.py +140 -98
- pyegeria/egeria_config_client.py +48 -24
- pyegeria/egeria_tech_client.py +170 -83
- pyegeria/models/__init__.py +150 -0
- pyegeria/models/collection_models.py +168 -0
- pyegeria/models/models.py +654 -0
- pyegeria/omvs/__init__.py +84 -0
- pyegeria/omvs/action_author.py +342 -0
- pyegeria/omvs/actor_manager.py +5980 -0
- pyegeria/omvs/asset_catalog.py +842 -0
- pyegeria/omvs/asset_maker.py +2736 -0
- pyegeria/omvs/automated_curation.py +4403 -0
- pyegeria/omvs/classification_manager.py +11213 -0
- pyegeria/omvs/collection_manager.py +5780 -0
- pyegeria/omvs/community_matters_omvs.py +468 -0
- pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
- pyegeria/{data_designer_omvs.py → omvs/data_designer.py} +1991 -1691
- pyegeria/omvs/data_discovery.py +869 -0
- pyegeria/omvs/data_engineer.py +372 -0
- pyegeria/omvs/digital_business.py +1133 -0
- pyegeria/omvs/external_links.py +1752 -0
- pyegeria/omvs/feedback_manager.py +834 -0
- pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
- pyegeria/omvs/glossary_manager.py +3231 -0
- pyegeria/omvs/governance_officer.py +3009 -0
- pyegeria/omvs/lineage_linker.py +314 -0
- pyegeria/omvs/location_arena.py +1525 -0
- pyegeria/omvs/metadata_expert.py +668 -0
- pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
- pyegeria/omvs/my_profile.py +1042 -0
- pyegeria/omvs/notification_manager.py +358 -0
- pyegeria/omvs/people_organizer.py +394 -0
- pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
- pyegeria/omvs/product_manager.py +1825 -0
- pyegeria/omvs/project_manager.py +1907 -0
- pyegeria/omvs/reference_data.py +1140 -0
- pyegeria/omvs/registered_info.py +334 -0
- pyegeria/omvs/runtime_manager.py +2817 -0
- pyegeria/omvs/schema_maker.py +446 -0
- pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
- pyegeria/omvs/solution_architect.py +6490 -0
- pyegeria/omvs/specification_properties.py +37 -0
- pyegeria/omvs/subject_area.py +1042 -0
- pyegeria/omvs/template_manager_omvs.py +236 -0
- pyegeria/omvs/time_keeper.py +1761 -0
- pyegeria/omvs/valid_metadata.py +3221 -0
- pyegeria/omvs/valid_metadata_lists.py +37 -0
- pyegeria/omvs/valid_type_lists.py +37 -0
- pyegeria/view/__init__.py +28 -0
- pyegeria/view/_output_format_models.py +514 -0
- pyegeria/view/_output_formats.py +14 -0
- pyegeria/view/base_report_formats.py +2719 -0
- pyegeria/view/dr_egeria_reports.py +56 -0
- pyegeria/view/format_set_executor.py +397 -0
- pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
- pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
- pyegeria/view/output_formatter.py +1297 -0
- pyegeria-5.5.3.3.dist-info/METADATA +218 -0
- pyegeria-5.5.3.3.dist-info/RECORD +241 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
- pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
- pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
- commands/cat/.DS_Store +0 -0
- commands/cat/README.md +0 -16
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_globals.py +0 -47
- pyegeria/_validators.py +0 -385
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/collection_manager_omvs.py +0 -2744
- pyegeria/dr.egeria spec.md +0 -9
- pyegeria/egeria_my_client.py +0 -56
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/glossary_browser_omvs.py +0 -3728
- pyegeria/glossary_manager_omvs.py +0 -2440
- pyegeria/m_test.py +0 -118
- pyegeria/md_processing_helpers.py +0 -58
- pyegeria/md_processing_utils_orig.py +0 -1103
- pyegeria/metadata_explorer_omvs.py +0 -2326
- pyegeria/my_profile_omvs.py +0 -1022
- pyegeria/output_formatter.py +0 -389
- pyegeria/project_manager_omvs.py +0 -1933
- pyegeria/registered_info.py +0 -167
- pyegeria/solution_architect_omvs.py +0 -2156
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -197
- pyegeria-5.3.9.9.3.dist-info/METADATA +0 -72
- pyegeria-5.3.9.9.3.dist-info/RECORD +0 -143
- pyegeria-5.3.9.9.3.dist-info/entry_points.txt +0 -99
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -18,11 +18,9 @@ from rich.tree import Tree
|
|
|
18
18
|
|
|
19
19
|
from pyegeria import (
|
|
20
20
|
CollectionManager,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
)
|
|
25
|
-
from pyegeria._exceptions import print_exception_response
|
|
21
|
+
NO_ELEMENTS_FOUND,
|
|
22
|
+
PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table
|
|
23
|
+
)
|
|
26
24
|
|
|
27
25
|
disable_ssl_warnings = True
|
|
28
26
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
|
@@ -74,9 +72,9 @@ def collection_viewer(
|
|
|
74
72
|
)
|
|
75
73
|
text_guid = Text(f"* GUID: {member['guid']}", "green")
|
|
76
74
|
text_collection_type = Text(
|
|
77
|
-
f"* Collection Type: {member
|
|
75
|
+
f"* Collection Type: {member.get('typeName','')}"
|
|
78
76
|
)
|
|
79
|
-
text_description = Text(f"* Description: {member
|
|
77
|
+
text_description = Text(f"* Description: {member.get('description','')}")
|
|
80
78
|
p = Panel.fit(
|
|
81
79
|
f"{text_collection_name}[green]\n{text_qualified_name}\n{text_guid}\n"
|
|
82
80
|
f"{text_collection_type}\n{text_description}"
|
|
@@ -94,9 +92,7 @@ def collection_viewer(
|
|
|
94
92
|
)
|
|
95
93
|
walk_collection_hierarchy(branch, collection_client, member["guid"])
|
|
96
94
|
else:
|
|
97
|
-
tt = tree.add(
|
|
98
|
-
f"[bold magenta on black]No collections found in {root_collection_name}"
|
|
99
|
-
)
|
|
95
|
+
tt = tree.add("[bold magenta on black]No Members found")
|
|
100
96
|
|
|
101
97
|
try:
|
|
102
98
|
tree = Tree(f"[bold bright green]{root}", guide_style="bold bright_blue")
|
|
@@ -106,15 +102,11 @@ def collection_viewer(
|
|
|
106
102
|
walk_collection_hierarchy(tree, c_client, None, root)
|
|
107
103
|
print(tree)
|
|
108
104
|
|
|
109
|
-
except (
|
|
110
|
-
|
|
111
|
-
PropertyServerException,
|
|
112
|
-
UserNotAuthorizedException,
|
|
113
|
-
) as e:
|
|
114
|
-
if e.exception_error_message_parameters[1] == NO_ELEMENTS_FOUND:
|
|
105
|
+
except (PyegeriaAPIException, PyegeriaClientException) as e:
|
|
106
|
+
if hasattr(e, 'exception_error_message_parameters') and len(e.exception_error_message_parameters) > 1 and e.exception_error_message_parameters[1] == NO_ELEMENTS_FOUND:
|
|
115
107
|
print("The collection was not found.")
|
|
116
108
|
else:
|
|
117
|
-
|
|
109
|
+
print_basic_exception(e)
|
|
118
110
|
finally:
|
|
119
111
|
c_client.close_session()
|
|
120
112
|
|
|
@@ -136,7 +128,7 @@ def main():
|
|
|
136
128
|
try:
|
|
137
129
|
root_collection = Prompt.ask(
|
|
138
130
|
"Enter the Root Collection to start from:",
|
|
139
|
-
default="
|
|
131
|
+
default="GeoSpatial-Root",
|
|
140
132
|
)
|
|
141
133
|
collection_viewer(root_collection, server, url, userid, user_pass)
|
|
142
134
|
except KeyboardInterrupt:
|
|
@@ -10,6 +10,7 @@ A simple viewer for project dependencies - provide the root and we display the d
|
|
|
10
10
|
import argparse
|
|
11
11
|
import os
|
|
12
12
|
|
|
13
|
+
from pydantic import ValidationError
|
|
13
14
|
from rich import print
|
|
14
15
|
from rich.console import Console
|
|
15
16
|
from rich.markdown import Markdown
|
|
@@ -18,12 +19,11 @@ from rich.prompt import Prompt
|
|
|
18
19
|
from rich.tree import Tree
|
|
19
20
|
|
|
20
21
|
from pyegeria import (
|
|
21
|
-
InvalidParameterException,
|
|
22
22
|
ProjectManager,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
PyegeriaAPIException, PyegeriaClientException,
|
|
24
|
+
print_basic_exception,
|
|
25
|
+
print_validation_error,
|
|
25
26
|
)
|
|
26
|
-
from pyegeria._exceptions import print_exception_response
|
|
27
27
|
|
|
28
28
|
disable_ssl_warnings = True
|
|
29
29
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
|
@@ -72,7 +72,7 @@ def project_dependency_viewer(
|
|
|
72
72
|
proj_type = proj_props.get("typeName", "---")
|
|
73
73
|
proj_unique = proj_props.get("qualifiedName", "---")
|
|
74
74
|
proj_identifier = proj_props.get("identifier", "---")
|
|
75
|
-
proj_name = proj_props.get("
|
|
75
|
+
proj_name = proj_props.get("displayName", "---")
|
|
76
76
|
proj_desc = proj_props.get("description", "---")
|
|
77
77
|
proj_status = proj_props.get("projectStatus", "---")
|
|
78
78
|
proj_priority = proj_props.get("priority", "---")
|
|
@@ -90,12 +90,12 @@ def project_dependency_viewer(
|
|
|
90
90
|
else:
|
|
91
91
|
return
|
|
92
92
|
|
|
93
|
-
team = project_client.get_project_team(proj_guid)
|
|
93
|
+
team = project_client.get_project_team(proj_guid,"")
|
|
94
94
|
member_md = ""
|
|
95
95
|
if type(team) is list:
|
|
96
96
|
for member in team:
|
|
97
|
-
member_guid = member["
|
|
98
|
-
member_unique = member["
|
|
97
|
+
member_guid = member["elementHeader"]["guid"]
|
|
98
|
+
member_unique = member["properties"]["qualifiedName"]
|
|
99
99
|
member_md += f"* Member Unique Name: {member_unique}\n* Member GUID: {member_guid}"
|
|
100
100
|
proj_props_md += f"\n### Team Members\n {member_md}"
|
|
101
101
|
|
|
@@ -131,12 +131,12 @@ def project_dependency_viewer(
|
|
|
131
131
|
walk_project_hierarchy(p_client, root, tree, root=True)
|
|
132
132
|
print(tree)
|
|
133
133
|
|
|
134
|
-
except (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
134
|
+
except (PyegeriaAPIException, PyegeriaClientException) as e:
|
|
135
|
+
print_basic_exception(e)
|
|
136
|
+
except ValidationError as e:
|
|
137
|
+
print_validation_error(e)
|
|
138
|
+
except Exception as e:
|
|
139
|
+
print_basic_exception(e)
|
|
140
140
|
|
|
141
141
|
|
|
142
142
|
def main():
|
|
@@ -10,6 +10,7 @@ A simple viewer for project structure - provide the root and we display the hier
|
|
|
10
10
|
import argparse
|
|
11
11
|
import os
|
|
12
12
|
|
|
13
|
+
from pydantic import ValidationError
|
|
13
14
|
from rich import print
|
|
14
15
|
from rich.console import Console
|
|
15
16
|
from rich.markdown import Markdown
|
|
@@ -18,12 +19,9 @@ from rich.prompt import Prompt
|
|
|
18
19
|
from rich.tree import Tree
|
|
19
20
|
|
|
20
21
|
from pyegeria import (
|
|
21
|
-
InvalidParameterException,
|
|
22
22
|
ProjectManager,
|
|
23
|
-
|
|
24
|
-
UserNotAuthorizedException,
|
|
23
|
+
PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table, print_validation_error
|
|
25
24
|
)
|
|
26
|
-
from pyegeria._exceptions import print_exception_response
|
|
27
25
|
|
|
28
26
|
disable_ssl_warnings = True
|
|
29
27
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
|
@@ -72,7 +70,7 @@ def project_structure_viewer(
|
|
|
72
70
|
proj_type = proj_props.get("typeName", "---")
|
|
73
71
|
proj_unique = proj_props.get("qualifiedName", "---")
|
|
74
72
|
proj_identifier = proj_props.get("identifier", "---")
|
|
75
|
-
proj_name = proj_props.get("
|
|
73
|
+
proj_name = proj_props.get("displayName", "---")
|
|
76
74
|
proj_desc = proj_props.get("description", "---")
|
|
77
75
|
proj_status = proj_props.get("projectStatus", "---")
|
|
78
76
|
proj_priority = proj_props.get("priority", "---")
|
|
@@ -90,12 +88,12 @@ def project_structure_viewer(
|
|
|
90
88
|
else:
|
|
91
89
|
return
|
|
92
90
|
|
|
93
|
-
team = project_client.get_project_team(proj_guid)
|
|
91
|
+
team = project_client.get_project_team(proj_guid,"")
|
|
94
92
|
member_md = ""
|
|
95
93
|
if type(team) is list:
|
|
96
94
|
for member in team:
|
|
97
|
-
member_guid = member["
|
|
98
|
-
member_unique = member["
|
|
95
|
+
member_guid = member["elementHeader"]["guid"]
|
|
96
|
+
member_unique = member["properties"]["qualifiedName"]
|
|
99
97
|
member_md += f"* Member Unique Name: {member_unique}\n* Member GUID: {member_guid}"
|
|
100
98
|
proj_props_md += f"\n### Team Members\n {member_md}"
|
|
101
99
|
|
|
@@ -131,12 +129,15 @@ def project_structure_viewer(
|
|
|
131
129
|
walk_project_hierarchy(p_client, root, tree, root=True)
|
|
132
130
|
print(tree)
|
|
133
131
|
|
|
134
|
-
except (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
except (PyegeriaAPIException, PyegeriaClientException) as e:
|
|
133
|
+
print_basic_exception(e)
|
|
134
|
+
|
|
135
|
+
except ValidationError as e:
|
|
136
|
+
print_validation_error(e)
|
|
137
|
+
|
|
138
|
+
except Exception as e:
|
|
139
|
+
console.print_exception()
|
|
140
|
+
|
|
140
141
|
|
|
141
142
|
|
|
142
143
|
def main():
|
|
@@ -7,45 +7,22 @@ Display the status of cataloged platforms and servers.
|
|
|
7
7
|
"""
|
|
8
8
|
import argparse
|
|
9
9
|
import os
|
|
10
|
-
import sys
|
|
11
|
-
import time
|
|
12
10
|
|
|
13
|
-
from rich import json, print
|
|
14
11
|
from rich.console import Console
|
|
15
|
-
from rich.live import Live
|
|
16
|
-
from rich.markdown import Markdown
|
|
17
|
-
from rich.panel import Panel
|
|
18
12
|
from rich.prompt import Prompt
|
|
19
|
-
from rich.table import Table
|
|
20
|
-
from rich.text import Text
|
|
21
|
-
from rich.tree import Tree
|
|
22
13
|
|
|
14
|
+
from commands.cat.run_report import list_generic
|
|
23
15
|
from pyegeria import (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
PropertyServerException,
|
|
27
|
-
UserNotAuthorizedException,
|
|
28
|
-
print_exception_response,
|
|
16
|
+
settings,
|
|
17
|
+
config_logging, print_basic_exception, PyegeriaAPIException, PyegeriaClientException
|
|
29
18
|
)
|
|
30
19
|
|
|
31
|
-
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
|
32
|
-
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
|
33
|
-
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
|
34
|
-
EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
|
|
35
|
-
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
|
36
|
-
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
|
37
|
-
)
|
|
38
|
-
EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
|
|
39
|
-
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
|
40
|
-
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
|
41
20
|
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
42
21
|
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
43
|
-
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
|
44
|
-
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
|
45
|
-
|
|
46
22
|
|
|
47
|
-
|
|
48
|
-
|
|
23
|
+
app_config = settings.Environment
|
|
24
|
+
config_logging()
|
|
25
|
+
console = Console(width=app_config.console_width)
|
|
49
26
|
|
|
50
27
|
guid_list = []
|
|
51
28
|
|
|
@@ -56,94 +33,17 @@ def tech_viewer(
|
|
|
56
33
|
platform_url: str,
|
|
57
34
|
user: str,
|
|
58
35
|
user_pass: str,
|
|
59
|
-
jupyter: bool =
|
|
60
|
-
width: int =
|
|
36
|
+
jupyter: bool = app_config.egeria_jupyter,
|
|
37
|
+
width: int = app_config.console_width,
|
|
61
38
|
):
|
|
62
|
-
def build_classifications(classification: dict) -> Markdown:
|
|
63
|
-
class_md = "\n"
|
|
64
|
-
for c in classification:
|
|
65
|
-
c_type = c["classificationName"]
|
|
66
|
-
if c_type == "Anchors":
|
|
67
|
-
continue
|
|
68
|
-
class_md += f"* Classification: {c_type}\n"
|
|
69
|
-
class_props = c.get("classificationProperties", None)
|
|
70
|
-
if class_props is None:
|
|
71
|
-
continue
|
|
72
|
-
for prop in class_props.keys():
|
|
73
|
-
class_md += f"\t* {prop}: {class_props[prop]}\n"
|
|
74
|
-
if class_md == "-":
|
|
75
|
-
output = None
|
|
76
|
-
else:
|
|
77
|
-
output = class_md
|
|
78
|
-
return output
|
|
79
|
-
|
|
80
39
|
try:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
token = a_client.create_egeria_bearer_token(user, user_pass)
|
|
86
|
-
tech_elements = a_client.get_technology_type_elements(
|
|
87
|
-
tech_name, get_templates=False
|
|
88
|
-
)
|
|
89
|
-
if type(tech_elements) is str:
|
|
90
|
-
console.print(f"No elements found for {tech_name}")
|
|
91
|
-
sys.exit(1)
|
|
92
|
-
|
|
93
|
-
tree = Tree(
|
|
94
|
-
f"Deployed Technology Type: {tech_name}",
|
|
95
|
-
style="bold bright_white on black",
|
|
96
|
-
guide_style="bold bright_blue",
|
|
97
|
-
)
|
|
98
|
-
note: str = " "
|
|
99
|
-
for element in tech_elements:
|
|
100
|
-
header = element["elementHeader"]
|
|
101
|
-
tech_type = header["type"]["typeName"]
|
|
102
|
-
tech_collection = header["origin"]["homeMetadataCollectionName"]
|
|
103
|
-
tech_created_by = header["versions"]["createdBy"]
|
|
104
|
-
tech_created_at = header["versions"]["createTime"]
|
|
105
|
-
tech_guid = header["guid"]
|
|
106
|
-
tech_classifications = header["classifications"]
|
|
107
|
-
class_md = build_classifications(tech_classifications)
|
|
108
|
-
|
|
109
|
-
referenceables = element["referenceableProperties"]
|
|
110
|
-
tech_qualified_name = referenceables["qualifiedName"]
|
|
111
|
-
extended = referenceables["extendedProperties"]
|
|
112
|
-
ex_md: str = ""
|
|
113
|
-
for key, value in extended.items():
|
|
114
|
-
ex_md += f"* {key}: {value}\n"
|
|
115
|
-
|
|
116
|
-
note = (
|
|
117
|
-
f"* Qualified Name: {tech_qualified_name}\n"
|
|
118
|
-
f"* GUID: {tech_guid}\n"
|
|
119
|
-
f"* Created by: {tech_created_by}\n"
|
|
120
|
-
f"* Created at: {tech_created_at}\n"
|
|
121
|
-
f"* Home Collection: {tech_collection}\n"
|
|
122
|
-
f"{class_md}\n"
|
|
123
|
-
f"{ex_md}\n"
|
|
124
|
-
)
|
|
125
|
-
|
|
126
|
-
interfaces = extended.get("connectorInterfaces", None)
|
|
127
|
-
if interfaces is not None:
|
|
128
|
-
interface_type_name = interfaces["typeName"]
|
|
129
|
-
interface_array_cnt = interfaces["arrayCount"]
|
|
130
|
-
note += f"* Interface Type: {interface_type_name}\n"
|
|
131
|
-
for i in range(0, int(interface_array_cnt)):
|
|
132
|
-
note += (
|
|
133
|
-
f"\t* Type: {interfaces['arrayValues']['propertyValueMap'][str(i)]['typeName']}"
|
|
134
|
-
f"\tName: {interfaces['arrayValues']['propertiesAsStrings'][str(i)]}\n"
|
|
135
|
-
)
|
|
136
|
-
note_md = Panel.fit(Markdown(note), style="bold bright_white")
|
|
137
|
-
t = tree.add(note_md)
|
|
138
|
-
|
|
139
|
-
print(tree)
|
|
40
|
+
list_generic(report_spec = "Tech-Type-Elements", output_format = "TABLE", view_server = server_name,
|
|
41
|
+
view_url= platform_url, user = user, user_pass = user_pass, prompt_missing = True,
|
|
42
|
+
params = {"filter": tech_name},
|
|
43
|
+
render_table=True, table_caption="Tech Type Elements", use_pager=True, width=width, jupyter=jupyter)
|
|
140
44
|
|
|
141
|
-
except (
|
|
142
|
-
|
|
143
|
-
PropertyServerException,
|
|
144
|
-
UserNotAuthorizedException,
|
|
145
|
-
) as e:
|
|
146
|
-
print_exception_response(e)
|
|
45
|
+
except (PyegeriaAPIException, PyegeriaClientException) as e:
|
|
46
|
+
print_basic_exception(e)
|
|
147
47
|
|
|
148
48
|
|
|
149
49
|
def main():
|
|
@@ -155,8 +55,8 @@ def main():
|
|
|
155
55
|
parser.add_argument("--password", help="User Password")
|
|
156
56
|
args = parser.parse_args()
|
|
157
57
|
|
|
158
|
-
server = args.server if args.server is not None else
|
|
159
|
-
url = args.url if args.url is not None else
|
|
58
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
59
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
160
60
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
161
61
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
162
62
|
try:
|