pyegeria 0.2.4__py3-none-any.whl → 5.3.0.dev3__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/README.md +35 -0
- pyegeria/__init__.py +345 -14
- pyegeria/_client.py +376 -126
- pyegeria/_deprecated_gov_engine.py +451 -0
- pyegeria/_exceptions.py +6 -6
- pyegeria/_globals.py +7 -1
- pyegeria/_validators.py +9 -6
- pyegeria/asset_catalog_omvs.py +807 -0
- pyegeria/automated_curation_omvs.py +3760 -0
- pyegeria/classification_manager_omvs.py +5238 -0
- pyegeria/collection_manager_omvs.py +2727 -0
- pyegeria/commands/README.md +47 -0
- pyegeria/commands/__init__.py +22 -0
- pyegeria/commands/cat/README.md +16 -0
- pyegeria/commands/cat/__init__.py +1 -0
- pyegeria/commands/cat/exp_list_glossaries.py +156 -0
- pyegeria/commands/cat/get_asset_graph.py +319 -0
- pyegeria/commands/cat/get_collection.py +148 -0
- pyegeria/commands/cat/get_project_dependencies.py +168 -0
- pyegeria/commands/cat/get_project_structure.py +168 -0
- pyegeria/commands/cat/get_tech_type_elements.py +174 -0
- pyegeria/commands/cat/glossary_actions.py +362 -0
- pyegeria/commands/cat/list_assets.py +176 -0
- pyegeria/commands/cat/list_cert_types.py +194 -0
- pyegeria/commands/cat/list_collections.py +162 -0
- pyegeria/commands/cat/list_deployed_catalogs.py +217 -0
- pyegeria/commands/cat/list_deployed_database_schemas.py +251 -0
- pyegeria/commands/cat/list_deployed_databases.py +202 -0
- pyegeria/commands/cat/list_glossaries.py +150 -0
- pyegeria/commands/cat/list_projects.py +221 -0
- pyegeria/commands/cat/list_servers_deployed_imp.py +158 -0
- pyegeria/commands/cat/list_tech_type_elements.py +190 -0
- pyegeria/commands/cat/list_tech_types.py +140 -0
- pyegeria/commands/cat/list_terms.py +242 -0
- pyegeria/commands/cat/list_todos.py +189 -0
- pyegeria/commands/cat/list_user_ids.py +145 -0
- pyegeria/commands/cli/__init__.py +13 -0
- pyegeria/commands/cli/egeria.py +1844 -0
- pyegeria/commands/cli/egeria_cat.py +638 -0
- pyegeria/commands/cli/egeria_login_tui.py +313 -0
- pyegeria/commands/cli/egeria_my.py +248 -0
- pyegeria/commands/cli/egeria_ops.py +502 -0
- pyegeria/commands/cli/egeria_tech.py +618 -0
- pyegeria/commands/cli/ops_config.py +45 -0
- pyegeria/commands/cli/txt_custom_v2.tcss +19 -0
- pyegeria/commands/doc/README.md +145 -0
- pyegeria/commands/doc/Visual Command Reference/README.md +511 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_elements_of_om_type 2024-12-16 at 14.39.59@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type 2024-12-16 at 14.24.18@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type extended 2024-12-16 at 14.28.46@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_of_om_type_by_classification 2024-12-16 at 14.35.26@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/detailed_governance_action_processes 2024-12-16 at 15.16.26@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_tech_type_template_specs 2024-12-16 at 16.03.22@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
- pyegeria/commands/doc/glossary/basic-glossary-tui.md +109 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
- pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
- pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
- pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
- pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
- pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
- pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
- pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
- pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
- pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
- pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
- pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
- pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +346 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-list 2024-11-12 at 16.45.26.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-live 2024-11-12 at 16.44.12@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status 2024-11-10 at 18.15.42@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status-full 2024-11-10 at 18.25.14@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-load-archive 2024-11-10 at 19.19.09@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status 2024-11-10 at 18.52.01@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-status-paging 2024-11-12 at 16.26.14@2x.png +0 -0
- pyegeria/commands/my/README.md +17 -0
- pyegeria/commands/my/__init__.py +0 -0
- pyegeria/commands/my/list_my_profile.py +163 -0
- pyegeria/commands/my/list_my_roles.py +151 -0
- pyegeria/commands/my/monitor_my_todos.py +205 -0
- pyegeria/commands/my/monitor_open_todos.py +175 -0
- pyegeria/commands/my/todo_actions.py +242 -0
- pyegeria/commands/ops/README.md +24 -0
- pyegeria/commands/ops/__init__.py +22 -0
- pyegeria/commands/ops/gov_server_actions.py +177 -0
- pyegeria/commands/ops/list_archives.py +161 -0
- pyegeria/commands/ops/list_catalog_targets.py +203 -0
- pyegeria/commands/ops/load_archive.py +75 -0
- pyegeria/commands/ops/monitor_asset_events.py +107 -0
- pyegeria/commands/ops/monitor_engine_activity.py +270 -0
- pyegeria/commands/ops/monitor_engine_activity_c.py +286 -0
- pyegeria/commands/ops/monitor_gov_eng_status.py +288 -0
- pyegeria/commands/ops/monitor_integ_daemon_status.py +321 -0
- pyegeria/commands/ops/monitor_platform_status.py +188 -0
- pyegeria/commands/ops/monitor_server_startup.py +117 -0
- pyegeria/commands/ops/monitor_server_status.py +182 -0
- pyegeria/commands/ops/orig_monitor_server_list.py +140 -0
- pyegeria/commands/ops/orig_monitor_server_status.py +124 -0
- pyegeria/commands/ops/refresh_integration_daemon.py +83 -0
- pyegeria/commands/ops/restart_integration_daemon.py +82 -0
- pyegeria/commands/ops/table_integ_daemon_status.py +237 -0
- pyegeria/commands/ops/x_engine_actions.py +76 -0
- pyegeria/commands/tech/README.md +24 -0
- pyegeria/commands/tech/__init__.py +0 -0
- pyegeria/commands/tech/get_element_info.py +144 -0
- pyegeria/commands/tech/get_guid_info.py +134 -0
- pyegeria/commands/tech/get_tech_details.py +173 -0
- pyegeria/commands/tech/get_tech_type_template.py +166 -0
- pyegeria/commands/tech/list_anchored_elements.py +205 -0
- pyegeria/commands/tech/list_asset_types.py +123 -0
- pyegeria/commands/tech/list_elements.py +168 -0
- pyegeria/commands/tech/list_elements_for_classification.py +171 -0
- pyegeria/commands/tech/list_elements_x.py +191 -0
- pyegeria/commands/tech/list_gov_action_processes.py +139 -0
- pyegeria/commands/tech/list_registered_services.py +180 -0
- pyegeria/commands/tech/list_related_elements.py +207 -0
- pyegeria/commands/tech/list_related_specification.py +169 -0
- pyegeria/commands/tech/list_relationship_types.py +164 -0
- pyegeria/commands/tech/list_relationships.py +179 -0
- pyegeria/commands/tech/list_tech_templates.py +360 -0
- pyegeria/commands/tech/list_valid_metadata_values.py +178 -0
- pyegeria/commands/tech/table_tech_templates.py +238 -0
- pyegeria/commands/tech/x_list_related_elements.py +165 -0
- pyegeria/core_omag_server_config.py +550 -313
- pyegeria/create_tech_guid_lists.py +105 -0
- pyegeria/egeria_cat_client.py +78 -0
- pyegeria/egeria_client.py +117 -0
- pyegeria/egeria_config_client.py +45 -0
- pyegeria/egeria_my_client.py +56 -0
- pyegeria/egeria_tech_client.py +93 -0
- pyegeria/feedback_manager_omvs.py +4573 -0
- pyegeria/full_omag_server_config.py +1337 -0
- pyegeria/glossary_browser_omvs.py +2507 -0
- pyegeria/glossary_manager_omvs.py +3597 -0
- pyegeria/mermaid_utilities.py +218 -0
- pyegeria/metadata_explorer_omvs.py +2371 -0
- pyegeria/my_profile_omvs.py +1021 -0
- pyegeria/platform_services.py +259 -218
- pyegeria/project_manager_omvs.py +1854 -0
- pyegeria/registered_info.py +111 -108
- pyegeria/runtime_manager_omvs.py +2299 -0
- pyegeria/server_operations.py +178 -71
- pyegeria/template_manager_omvs.py +1414 -0
- pyegeria/utils.py +75 -85
- pyegeria/valid_metadata_omvs.py +1911 -0
- pyegeria/x_action_author_omvs.py +200 -0
- pyegeria-5.3.0.dev3.dist-info/METADATA +70 -0
- pyegeria-5.3.0.dev3.dist-info/RECORD +232 -0
- {pyegeria-0.2.4.dist-info → pyegeria-5.3.0.dev3.dist-info}/WHEEL +1 -1
- pyegeria-5.3.0.dev3.dist-info/entry_points.txt +81 -0
- pyegeria/config.toml +0 -11
- pyegeria/curation_omvs.py +0 -458
- pyegeria/exceptions.py +0 -382
- pyegeria/glossary_omvs.py +0 -639
- pyegeria/gov_engine.py +0 -573
- pyegeria-0.2.4.dist-info/METADATA +0 -57
- pyegeria-0.2.4.dist-info/RECORD +0 -19
- {pyegeria-0.2.4.dist-info/licenses → pyegeria-5.3.0.dev3.dist-info}/LICENSE +0 -0
@@ -0,0 +1,237 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
5
|
+
|
6
|
+
|
7
|
+
A simple status display for the Integration Daemon.
|
8
|
+
|
9
|
+
|
10
|
+
"""
|
11
|
+
import os
|
12
|
+
import time
|
13
|
+
from typing import Union
|
14
|
+
|
15
|
+
import nest_asyncio
|
16
|
+
from rich import box
|
17
|
+
from rich.table import Table
|
18
|
+
from textual.widgets import DataTable
|
19
|
+
|
20
|
+
from pyegeria import EgeriaTech
|
21
|
+
from pyegeria._exceptions import (
|
22
|
+
InvalidParameterException,
|
23
|
+
PropertyServerException,
|
24
|
+
UserNotAuthorizedException,
|
25
|
+
print_exception_response,
|
26
|
+
)
|
27
|
+
|
28
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
29
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
30
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
31
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
32
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
33
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
34
|
+
)
|
35
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
36
|
+
EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
|
37
|
+
"EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
|
38
|
+
)
|
39
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
40
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
41
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
42
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
43
|
+
|
44
|
+
disable_ssl_warnings = True
|
45
|
+
|
46
|
+
|
47
|
+
def add_row(
|
48
|
+
table: Union[Table, DataTable],
|
49
|
+
connector_name: str,
|
50
|
+
connector_status: str,
|
51
|
+
last_refresh_time: str,
|
52
|
+
refresh_interval: str,
|
53
|
+
targets_out,
|
54
|
+
exception_msg,
|
55
|
+
) -> Table | DataTable:
|
56
|
+
table.add_row(
|
57
|
+
connector_name,
|
58
|
+
connector_status,
|
59
|
+
last_refresh_time,
|
60
|
+
refresh_interval,
|
61
|
+
targets_out,
|
62
|
+
exception_msg,
|
63
|
+
)
|
64
|
+
return table
|
65
|
+
|
66
|
+
|
67
|
+
def display_integration_daemon_status(
|
68
|
+
integ_server: str = EGERIA_INTEGRATION_DAEMON,
|
69
|
+
integ_url: str = EGERIA_INTEGRATION_DAEMON_URL,
|
70
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
71
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
72
|
+
user: str = EGERIA_USER,
|
73
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
74
|
+
paging: bool = True,
|
75
|
+
jupyter: bool = EGERIA_JUPYTER,
|
76
|
+
width: int = EGERIA_WIDTH,
|
77
|
+
sort: bool = True,
|
78
|
+
data_table: bool = False,
|
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
|
+
|
124
|
+
s_client = EgeriaTech(view_server, view_url, user, user_pass)
|
125
|
+
nest_asyncio.apply()
|
126
|
+
|
127
|
+
def generate_table() -> Table:
|
128
|
+
"""Make a new table."""
|
129
|
+
|
130
|
+
if data_table:
|
131
|
+
table = DataTable()
|
132
|
+
table.add_columns(
|
133
|
+
"Connector Name",
|
134
|
+
"Status",
|
135
|
+
"Last Refresh Time",
|
136
|
+
"Min Refresh (Mins)",
|
137
|
+
"Target Element",
|
138
|
+
"Exception Message",
|
139
|
+
)
|
140
|
+
else:
|
141
|
+
table = Table(
|
142
|
+
title=f"Integration Daemon Status @ {time.asctime()}",
|
143
|
+
style="bold white on black",
|
144
|
+
row_styles=["bold white on black"],
|
145
|
+
header_style="white on dark_blue",
|
146
|
+
title_style="bold white on black",
|
147
|
+
caption_style="white on black",
|
148
|
+
show_lines=True,
|
149
|
+
box=box.ROUNDED,
|
150
|
+
caption=f"Integration Daemon Status for Server '{integ_server}' @ Platform - {integ_url}",
|
151
|
+
expand=True,
|
152
|
+
)
|
153
|
+
table.add_column("Connector Name", min_width=15)
|
154
|
+
table.add_column("Status", max_width=6)
|
155
|
+
table.add_column("Last Refresh Time", min_width=12)
|
156
|
+
table.add_column("Min Refresh (mins)", max_width=6)
|
157
|
+
table.add_column("Target Element", min_width=20)
|
158
|
+
table.add_column("Exception Message", min_width=10)
|
159
|
+
|
160
|
+
# Now get the integration connector report
|
161
|
+
token = s_client.create_egeria_bearer_token()
|
162
|
+
daemon_status = s_client.get_server_report(None, integ_server)
|
163
|
+
|
164
|
+
reports = daemon_status["integrationConnectorReports"]
|
165
|
+
if sort is True:
|
166
|
+
connector_reports = sorted(
|
167
|
+
reports, key=lambda x: x.get("connectorName", "---")
|
168
|
+
)
|
169
|
+
else:
|
170
|
+
connector_reports = reports
|
171
|
+
|
172
|
+
for connector in connector_reports:
|
173
|
+
connector_name = connector.get("connectorName", "---")
|
174
|
+
connector_status = connector.get("connectorStatus", "---")
|
175
|
+
connector_guid = connector.get("connectorGUID", "---")
|
176
|
+
last_refresh_time = connector.get("lastRefreshTime", "---")[:-10]
|
177
|
+
refresh_interval = str(connector.get("minMinutesBetweenRefresh", "---"))
|
178
|
+
exception_msg = " "
|
179
|
+
if connector_guid != "---":
|
180
|
+
targets = s_client.get_catalog_targets(connector_guid)
|
181
|
+
tgt_tab = Table()
|
182
|
+
tgt_tab.add_column("Target")
|
183
|
+
tgt_tab.add_column("UniqueName")
|
184
|
+
tgt_tab.add_column("Relationship GUID", no_wrap=True)
|
185
|
+
|
186
|
+
if type(targets) == list:
|
187
|
+
targets_md = True
|
188
|
+
for target in targets:
|
189
|
+
t_name = target["catalogTargetName"]
|
190
|
+
# t_sync = target["permittedSynchronization"]
|
191
|
+
t_unique_name = target["catalogTargetElement"]["uniqueName"]
|
192
|
+
t_rel_guid = target["relationshipGUID"]
|
193
|
+
# targets_m += f"* Target Name: __{t_name}__\n* Sync: {t_sync}\n* Unique Name: {t_unique_name}\n\n"
|
194
|
+
tgt_tab.add_row(t_name, t_unique_name, t_rel_guid)
|
195
|
+
# targets_md = Markdown(targets_m)
|
196
|
+
else:
|
197
|
+
targets_md = False
|
198
|
+
else:
|
199
|
+
targets_md = False
|
200
|
+
if targets_md is False:
|
201
|
+
targets_out = ""
|
202
|
+
else:
|
203
|
+
targets_out = tgt_tab
|
204
|
+
|
205
|
+
if connector_status in ("RUNNING", "REFRESHING", "WAITING"):
|
206
|
+
connector_status = f"[green]{connector_status}"
|
207
|
+
elif connector_status in ("INITIALIZE FAILED", "CONFIG_FAILED", "FAILED"):
|
208
|
+
connector_status = f"[red]{connector_status}"
|
209
|
+
else:
|
210
|
+
connector_status = f"[yellow]{connector_status}"
|
211
|
+
|
212
|
+
add_row(
|
213
|
+
table,
|
214
|
+
connector_name,
|
215
|
+
connector_status,
|
216
|
+
last_refresh_time,
|
217
|
+
refresh_interval,
|
218
|
+
targets_out,
|
219
|
+
exception_msg,
|
220
|
+
)
|
221
|
+
return table
|
222
|
+
|
223
|
+
try:
|
224
|
+
return generate_table()
|
225
|
+
|
226
|
+
except (
|
227
|
+
InvalidParameterException,
|
228
|
+
PropertyServerException,
|
229
|
+
UserNotAuthorizedException,
|
230
|
+
) as e:
|
231
|
+
print_exception_response(e)
|
232
|
+
|
233
|
+
except KeyboardInterrupt:
|
234
|
+
pass
|
235
|
+
|
236
|
+
finally:
|
237
|
+
s_client.close_session()
|
@@ -0,0 +1,76 @@
|
|
1
|
+
"""
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
Execute engine actions.
|
8
|
+
|
9
|
+
"""
|
10
|
+
|
11
|
+
import click
|
12
|
+
|
13
|
+
# from ops_config import Config, pass_config
|
14
|
+
from pyegeria import EgeriaTech
|
15
|
+
from pyegeria._exceptions import (
|
16
|
+
InvalidParameterException,
|
17
|
+
PropertyServerException,
|
18
|
+
print_exception_response,
|
19
|
+
)
|
20
|
+
|
21
|
+
|
22
|
+
@click.command("stop")
|
23
|
+
@click.option("--server", help="OMAG Server to stop")
|
24
|
+
@click.pass_context
|
25
|
+
def stop_server(ctx, server):
|
26
|
+
"""Stop an OMAG server daemon"""
|
27
|
+
c = ctx.obj
|
28
|
+
p_client = EgeriaTech(c.view_server, c.view_server_url, c.userid, c.password)
|
29
|
+
token = p_client.create_egeria_bearer_token()
|
30
|
+
try:
|
31
|
+
server_guid = p_client.get_guid_for_name(server)
|
32
|
+
|
33
|
+
p_client.shutdown_server(server_guid)
|
34
|
+
click.echo(f"Stopped server {server}")
|
35
|
+
except (InvalidParameterException, PropertyServerException) as e:
|
36
|
+
print_exception_response(e)
|
37
|
+
finally:
|
38
|
+
p_client.close_session()
|
39
|
+
|
40
|
+
|
41
|
+
@click.command("start")
|
42
|
+
@click.option("--server", help="OMAG Server to start")
|
43
|
+
def start_server(ctx, server):
|
44
|
+
"""Start or restart an OMAG server from its known configuration"""
|
45
|
+
c = ctx.obj
|
46
|
+
p_client = EgeriaTech(c.view_server, c.view_server_url, c.userid, c.password)
|
47
|
+
token = p_client.create_egeria_bearer_token()
|
48
|
+
try:
|
49
|
+
server_guid = p_client.get_element_guid_by_unique_name(server, "name")
|
50
|
+
p_client.activate_server_with_stored_config(server_guid)
|
51
|
+
|
52
|
+
click.echo(f"Started server {server}")
|
53
|
+
|
54
|
+
except (InvalidParameterException, PropertyServerException) as e:
|
55
|
+
print_exception_response(e)
|
56
|
+
finally:
|
57
|
+
p_client.close_session()
|
58
|
+
|
59
|
+
|
60
|
+
@click.command("refresh")
|
61
|
+
@click.pass_context
|
62
|
+
def refresh(ctx):
|
63
|
+
"""Start or restart an engine-host from its known configuration"""
|
64
|
+
c = ctx.obj
|
65
|
+
p_client = EgeriaTech(c.view_server, c.view_server_url, c.userid, c.password)
|
66
|
+
token = p_client.create_egeria_bearer_token()
|
67
|
+
try:
|
68
|
+
engine_host_guid = p_client.get_guid_for_name(c.engine_host)
|
69
|
+
p_client.refresh_gov_eng_config(engine_host_guid)
|
70
|
+
|
71
|
+
click.echo(f"Refreshed server {c.engine_host}")
|
72
|
+
|
73
|
+
except (InvalidParameterException, PropertyServerException) as e:
|
74
|
+
print_exception_response(e)
|
75
|
+
finally:
|
76
|
+
p_client.close_session()
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
2
|
+
<!-- Copyright Contributors to the Egeria project. -->
|
3
|
+
|
4
|
+
# Developer
|
5
|
+
|
6
|
+
These widgets display different kinds of information useful to developers. Widgets
|
7
|
+
will continue to be added over time to cover more facets. Useful developer information
|
8
|
+
can also be found on [Egeria Project](https://egeria-project.org) and in [Egeria Explorers](https://egeria-project.org/release-notes/june-2024/?h=brain#egeria-explorers).
|
9
|
+
|
10
|
+
* get_guid_info.py - lists information about the metadata element specified by the Egeria guid.
|
11
|
+
* get_tech_details.py - shows a tree view showing the Egeria support for a particular technology (e.g PostgreSQL Server).
|
12
|
+
* list_asset_types.py - provides a tree view of a collection with all nested collections and items within the collection.
|
13
|
+
* list_registered_services.py - lists the services available on an Egeria platform.
|
14
|
+
* list_relationship_types.py - list the relationships details for a specified Egeria type.
|
15
|
+
* list_tech_templates.py - list template details for technology types
|
16
|
+
* list_tech_types.py - list the technology types that Egeria currently supports
|
17
|
+
* list_valid_metadata_values.py - list valid metadata values for a particular property and category.
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
----
|
23
|
+
License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/),
|
24
|
+
Copyright Contributors to the Egeria project.
|
File without changes
|
@@ -0,0 +1,144 @@
|
|
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
|
+
A simple display of elements for an Open Metadata Type in tree form.
|
9
|
+
"""
|
10
|
+
import argparse
|
11
|
+
import json
|
12
|
+
import os
|
13
|
+
import sys
|
14
|
+
|
15
|
+
from rich import print, box
|
16
|
+
from rich.console import Console
|
17
|
+
from rich.markdown import Markdown
|
18
|
+
from rich.panel import Panel
|
19
|
+
|
20
|
+
from rich.prompt import Prompt
|
21
|
+
from rich.text import Text
|
22
|
+
from rich.tree import Tree
|
23
|
+
|
24
|
+
from pyegeria import (
|
25
|
+
InvalidParameterException,
|
26
|
+
PropertyServerException,
|
27
|
+
UserNotAuthorizedException,
|
28
|
+
Client,
|
29
|
+
ClassificationManager,
|
30
|
+
)
|
31
|
+
|
32
|
+
|
33
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
34
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
35
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
36
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
37
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
38
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
39
|
+
)
|
40
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
41
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
42
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
43
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
44
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
45
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
46
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
47
|
+
|
48
|
+
|
49
|
+
def display_elements(
|
50
|
+
om_type: str,
|
51
|
+
server: str,
|
52
|
+
url: str,
|
53
|
+
username: str,
|
54
|
+
user_password: str,
|
55
|
+
jupyter: bool = EGERIA_JUPYTER,
|
56
|
+
width: int = EGERIA_WIDTH,
|
57
|
+
):
|
58
|
+
c = ClassificationManager(server, url, user_id=username, user_pwd=user_password)
|
59
|
+
|
60
|
+
bearer_token = c.create_egeria_bearer_token(username, user_password)
|
61
|
+
|
62
|
+
try:
|
63
|
+
console = Console(
|
64
|
+
width=width, force_terminal=not jupyter, style="bold white on black"
|
65
|
+
)
|
66
|
+
r = c.get_elements(om_type)
|
67
|
+
if type(r) is not list:
|
68
|
+
print(f"\n\n\tno elements found: {r}")
|
69
|
+
sys.exit(1)
|
70
|
+
|
71
|
+
tree = Tree(
|
72
|
+
f"Elements for Open Metadata Type:{om_type}\n* There are {len(r)} elements",
|
73
|
+
style="bold bright_white on black",
|
74
|
+
guide_style="bold bright_blue",
|
75
|
+
)
|
76
|
+
t = tree.add(f"Elements for {om_type}", style="bold bright_white on black")
|
77
|
+
for element in r:
|
78
|
+
header = element["elementHeader"]
|
79
|
+
el_type = header["type"]["typeName"]
|
80
|
+
el_home = header["origin"]["homeMetadataCollectionName"]
|
81
|
+
el_create_time = header["versions"]["createTime"]
|
82
|
+
el_guid = header["guid"]
|
83
|
+
|
84
|
+
el_md = (
|
85
|
+
f"#### Element Basics\n"
|
86
|
+
f"* **Type**: {el_type}\n"
|
87
|
+
f"* **Home**: {el_home}\n"
|
88
|
+
f"* **Created**: {el_create_time}\n"
|
89
|
+
f"* **GUID**: {el_guid}\n ---\n"
|
90
|
+
)
|
91
|
+
for prop in element["properties"].keys():
|
92
|
+
el_md += f"* **{prop}**: {element['properties'][prop]}\n"
|
93
|
+
|
94
|
+
el_out = Markdown(el_md)
|
95
|
+
p = Panel.fit(
|
96
|
+
el_out,
|
97
|
+
title=element["properties"]["qualifiedName"],
|
98
|
+
style="bold white on black",
|
99
|
+
)
|
100
|
+
t = tree.add(p)
|
101
|
+
|
102
|
+
print(tree)
|
103
|
+
|
104
|
+
c.close_session()
|
105
|
+
|
106
|
+
except (
|
107
|
+
InvalidParameterException,
|
108
|
+
PropertyServerException,
|
109
|
+
UserNotAuthorizedException,
|
110
|
+
ValueError,
|
111
|
+
) as e:
|
112
|
+
if type(e) is str:
|
113
|
+
console.print_exception()
|
114
|
+
else:
|
115
|
+
# console.print_exception(show_locals=True)
|
116
|
+
console.print(f"\n ===> Looks like the type {om_type} isn't known...\n")
|
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
|
+
|
126
|
+
# parser.add_argument("--sponsor", help="Name of sponsor to search")
|
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_VIEW_SERVER_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
|
+
|
134
|
+
try:
|
135
|
+
om_type = Prompt.ask(
|
136
|
+
"Enter the Open Metadata Type to find Elements for", default=None
|
137
|
+
)
|
138
|
+
display_elements(om_type, server, url, userid, user_pass)
|
139
|
+
except KeyboardInterrupt:
|
140
|
+
pass
|
141
|
+
|
142
|
+
|
143
|
+
if __name__ == "__main__":
|
144
|
+
main()
|
@@ -0,0 +1,134 @@
|
|
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
|
+
Unit tests for the Utils helper functions using the Pytest framework.
|
8
|
+
|
9
|
+
|
10
|
+
A simple display for glossary terms
|
11
|
+
"""
|
12
|
+
import argparse
|
13
|
+
import json
|
14
|
+
import os
|
15
|
+
|
16
|
+
from rich import print
|
17
|
+
from rich.console import Console
|
18
|
+
from rich.panel import Panel
|
19
|
+
from rich.prompt import Prompt
|
20
|
+
from rich.text import Text
|
21
|
+
from rich.tree import Tree
|
22
|
+
|
23
|
+
from pyegeria import (
|
24
|
+
InvalidParameterException,
|
25
|
+
PropertyServerException,
|
26
|
+
UserNotAuthorizedException,
|
27
|
+
Client,
|
28
|
+
ClassificationManager,
|
29
|
+
)
|
30
|
+
|
31
|
+
|
32
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
33
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
34
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
35
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
36
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
37
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
38
|
+
)
|
39
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
40
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
41
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
42
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
43
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
44
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
45
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
46
|
+
|
47
|
+
|
48
|
+
def display_guid(
|
49
|
+
guid: str,
|
50
|
+
server: str,
|
51
|
+
url: str,
|
52
|
+
username: str,
|
53
|
+
user_password: str,
|
54
|
+
jupyter: bool = EGERIA_JUPYTER,
|
55
|
+
width: int = EGERIA_WIDTH,
|
56
|
+
):
|
57
|
+
c = Client(server, url, user_id=username)
|
58
|
+
url = (
|
59
|
+
f"{url}/servers/{server}/open-metadata/repository-services/users/{username}/"
|
60
|
+
f"instances/entity/{guid}"
|
61
|
+
)
|
62
|
+
# c = ClassificationManager(server, url)
|
63
|
+
|
64
|
+
bearer_token = c.create_egeria_bearer_token(username, user_password)
|
65
|
+
|
66
|
+
try:
|
67
|
+
console = Console(
|
68
|
+
width=width, force_terminal=not jupyter, style="bold white on black"
|
69
|
+
)
|
70
|
+
r = c.make_request("GET", url)
|
71
|
+
if r.status_code == 200:
|
72
|
+
pass
|
73
|
+
# r = c.retrieve_instance_for_guid(guid)
|
74
|
+
e = r.json()["entity"]
|
75
|
+
p = e["properties"]["instanceProperties"]
|
76
|
+
|
77
|
+
type_name = Text(f"Type is: {e['type']['typeDefName']}")
|
78
|
+
metadataCollection = Text(
|
79
|
+
f"Metadadata Collection: {e['metadataCollectionName']}"
|
80
|
+
)
|
81
|
+
created = Text(f"Created at: {e['createTime']}")
|
82
|
+
details = Text(f"Details: {json.dumps(p, indent=2)}")
|
83
|
+
|
84
|
+
tree = Tree(
|
85
|
+
f"{guid}",
|
86
|
+
style="bold bright_white on black",
|
87
|
+
guide_style="bold bright_blue",
|
88
|
+
)
|
89
|
+
|
90
|
+
tree = tree.add(type_name)
|
91
|
+
tree.add(metadataCollection)
|
92
|
+
tree.add(created)
|
93
|
+
tree.add(Panel(details, title="Element Details", expand=False))
|
94
|
+
print(tree)
|
95
|
+
|
96
|
+
c.close_session()
|
97
|
+
|
98
|
+
except (
|
99
|
+
InvalidParameterException,
|
100
|
+
PropertyServerException,
|
101
|
+
UserNotAuthorizedException,
|
102
|
+
ValueError,
|
103
|
+
) as e:
|
104
|
+
if type(e) is str:
|
105
|
+
console.print_exception()
|
106
|
+
else:
|
107
|
+
# console.print_exception(show_locals=True)
|
108
|
+
console.print(f"\n ===> Looks like the GUID isn't known...\n")
|
109
|
+
|
110
|
+
|
111
|
+
def main():
|
112
|
+
parser = argparse.ArgumentParser()
|
113
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
114
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
115
|
+
parser.add_argument("--userid", help="User Id")
|
116
|
+
parser.add_argument("--password", help="User Password")
|
117
|
+
|
118
|
+
# parser.add_argument("--sponsor", help="Name of sponsor to search")
|
119
|
+
args = parser.parse_args()
|
120
|
+
|
121
|
+
server = args.server if args.server is not None else EGERIA_METADATA_STORE
|
122
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
123
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
124
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
125
|
+
|
126
|
+
try:
|
127
|
+
guid = Prompt.ask("Enter the GUID to retrieve", default=None)
|
128
|
+
display_guid(guid, server, url, userid, user_pass)
|
129
|
+
except KeyboardInterrupt:
|
130
|
+
pass
|
131
|
+
|
132
|
+
|
133
|
+
if __name__ == "__main__":
|
134
|
+
main()
|