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,194 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
5
|
+
|
6
|
+
List certification types
|
7
|
+
|
8
|
+
|
9
|
+
A simple display for certification types
|
10
|
+
"""
|
11
|
+
import argparse
|
12
|
+
import os
|
13
|
+
import sys
|
14
|
+
import time
|
15
|
+
import json
|
16
|
+
|
17
|
+
from rich import box
|
18
|
+
from rich.console import Console
|
19
|
+
from rich.prompt import Prompt
|
20
|
+
from rich.markdown import Markdown
|
21
|
+
from rich.table import Table
|
22
|
+
|
23
|
+
from pyegeria import (
|
24
|
+
InvalidParameterException,
|
25
|
+
PropertyServerException,
|
26
|
+
UserNotAuthorizedException,
|
27
|
+
print_exception_response,
|
28
|
+
AssetCatalog,
|
29
|
+
ClassificationManager,
|
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
|
+
disable_ssl_warnings = True
|
49
|
+
|
50
|
+
|
51
|
+
def display_certifications(
|
52
|
+
search_string: str,
|
53
|
+
server: str,
|
54
|
+
url: str,
|
55
|
+
username: str,
|
56
|
+
user_password: str,
|
57
|
+
time_out: int = 60,
|
58
|
+
jupyter: bool = EGERIA_JUPYTER,
|
59
|
+
width: int = EGERIA_WIDTH,
|
60
|
+
):
|
61
|
+
console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
|
62
|
+
if (search_string is None) or ((len(search_string) < 3)) and (search_string != "*"):
|
63
|
+
raise ValueError(
|
64
|
+
"Invalid Search String - must be greater than four characters long"
|
65
|
+
)
|
66
|
+
g_client = ClassificationManager(
|
67
|
+
server, url, user_id=username, user_pwd=user_password
|
68
|
+
)
|
69
|
+
token = g_client.create_egeria_bearer_token(username, user_password)
|
70
|
+
|
71
|
+
def generate_table(search_string: str = None) -> Table:
|
72
|
+
"""Make a new table."""
|
73
|
+
table = Table(
|
74
|
+
title=f"Certifications Types @ {time.asctime()}",
|
75
|
+
header_style="white on dark_blue",
|
76
|
+
style="bold white on black",
|
77
|
+
row_styles=["bold white on black"],
|
78
|
+
title_style="bold white on black",
|
79
|
+
caption_style="white on black",
|
80
|
+
show_lines=True,
|
81
|
+
box=box.ROUNDED,
|
82
|
+
caption=f"View Server '{server}' @ Platform - {url}",
|
83
|
+
expand=True,
|
84
|
+
)
|
85
|
+
table.add_column("Title", max_width=15)
|
86
|
+
table.add_column("summary")
|
87
|
+
table.add_column("domainID")
|
88
|
+
table.add_column("Unique Name")
|
89
|
+
table.add_column("Scope")
|
90
|
+
# table.add_column("Qualified Name",max_width=15)
|
91
|
+
table.add_column("Description")
|
92
|
+
table.add_column("Details")
|
93
|
+
table.add_column("Related Elements")
|
94
|
+
|
95
|
+
certs = g_client.get_elements(search_string, page_size=100, time_out=time_out)
|
96
|
+
if type(certs) is str:
|
97
|
+
return table
|
98
|
+
|
99
|
+
for element in certs:
|
100
|
+
properties = element["properties"]
|
101
|
+
summary = properties.get("summary", "---")
|
102
|
+
domain = properties.get("domainIdentifier", "---")
|
103
|
+
unique_name = properties.get("qualifiedName", "---")
|
104
|
+
scope = properties.get("scope", "---")
|
105
|
+
description = properties.get("description", "---")
|
106
|
+
details = properties.get("details", "---")
|
107
|
+
title = properties.get("title", "---")
|
108
|
+
cert_guid = element["elementHeader"]["guid"]
|
109
|
+
|
110
|
+
related = g_client.get_related_elements(cert_guid)
|
111
|
+
if (len(related) > 0) and (type(related) is list):
|
112
|
+
rel_md = ""
|
113
|
+
for rel in related:
|
114
|
+
rel_type = rel["relationshipHeader"]["type"]["typeName"]
|
115
|
+
rel_element_props = rel["relatedElement"]["properties"]
|
116
|
+
rel_el_md = f"* Rel Type: {rel_type}\n"
|
117
|
+
for key in rel_element_props.keys():
|
118
|
+
rel_el_md += f"* {key}: {rel_element_props[key]}\n"
|
119
|
+
rel_md += f"----\n{rel_el_md}\n"
|
120
|
+
else:
|
121
|
+
rel_md = "---"
|
122
|
+
|
123
|
+
# match_tab = Table(expand=True)
|
124
|
+
# match_tab.add_column("Type Name")
|
125
|
+
# match_tab.add_column("GUID", no_wrap=True, width=36)
|
126
|
+
# match_tab.add_column("Properties")
|
127
|
+
#
|
128
|
+
# for match in nested:
|
129
|
+
# match_type_name = match['type']['typeName']
|
130
|
+
# matching_guid = match['guid']
|
131
|
+
# match_props = match['properties']
|
132
|
+
# match_details_md = ""
|
133
|
+
# for key in match_props.keys():
|
134
|
+
# match_details_md += f"* {key}: {match_props[key]}\n"
|
135
|
+
# match_details_out = Markdown(match_details_md)
|
136
|
+
# match_tab.add_row(match_type_name, matching_guid, match_details_out)
|
137
|
+
|
138
|
+
table.add_row(
|
139
|
+
title, summary, domain, unique_name, scope, description, details, rel_md
|
140
|
+
)
|
141
|
+
|
142
|
+
g_client.close_session()
|
143
|
+
|
144
|
+
return table
|
145
|
+
|
146
|
+
try:
|
147
|
+
# with Live(generate_table(), refresh_per_second=4, screen=True) as live:
|
148
|
+
# while True:
|
149
|
+
# time.sleep(2)
|
150
|
+
# live.update(generate_table())
|
151
|
+
|
152
|
+
with console.pager(styles=True):
|
153
|
+
console.print(generate_table(search_string), soft_wrap=True)
|
154
|
+
|
155
|
+
except (
|
156
|
+
InvalidParameterException,
|
157
|
+
PropertyServerException,
|
158
|
+
UserNotAuthorizedException,
|
159
|
+
) as e:
|
160
|
+
console.print_exception()
|
161
|
+
sys.exit(1)
|
162
|
+
|
163
|
+
except ValueError as e:
|
164
|
+
console.print(
|
165
|
+
f"\n\n====> Invalid Search String - must be greater than four characters long"
|
166
|
+
)
|
167
|
+
sys.exit(1)
|
168
|
+
|
169
|
+
|
170
|
+
def main():
|
171
|
+
parser = argparse.ArgumentParser()
|
172
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
173
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
174
|
+
parser.add_argument("--userid", help="User Id")
|
175
|
+
parser.add_argument("--password", help="User Password")
|
176
|
+
parser.add_argument("--time_out", help="Time Out")
|
177
|
+
|
178
|
+
args = parser.parse_args()
|
179
|
+
|
180
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
181
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
182
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
183
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
184
|
+
time_out = args.time_out if args.time_out is not None else 60
|
185
|
+
try:
|
186
|
+
# search_string = Prompt.ask("Enter an asset search string:", default="*")
|
187
|
+
search_string = "CertificationType"
|
188
|
+
display_certifications(search_string, server, url, userid, user_pass, time_out)
|
189
|
+
except KeyboardInterrupt:
|
190
|
+
pass
|
191
|
+
|
192
|
+
|
193
|
+
if __name__ == "__main__":
|
194
|
+
main()
|
@@ -0,0 +1,162 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
5
|
+
|
6
|
+
A simple display for collections
|
7
|
+
"""
|
8
|
+
import argparse
|
9
|
+
import os
|
10
|
+
import time
|
11
|
+
|
12
|
+
from rich import box
|
13
|
+
from rich.console import Console
|
14
|
+
from rich.prompt import Prompt
|
15
|
+
from rich.table import Table
|
16
|
+
from rich.text import Text
|
17
|
+
|
18
|
+
from pyegeria import (
|
19
|
+
InvalidParameterException,
|
20
|
+
PropertyServerException,
|
21
|
+
UserNotAuthorizedException,
|
22
|
+
EgeriaTech,
|
23
|
+
print_exception_response,
|
24
|
+
)
|
25
|
+
|
26
|
+
disable_ssl_warnings = True
|
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_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
37
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
38
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
39
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
40
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
41
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
42
|
+
|
43
|
+
|
44
|
+
def display_collections(
|
45
|
+
search_string: str = "*",
|
46
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
47
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
48
|
+
user: str = EGERIA_USER,
|
49
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
50
|
+
jupyter: bool = EGERIA_JUPYTER,
|
51
|
+
width: int = EGERIA_WIDTH,
|
52
|
+
):
|
53
|
+
"""Display either a specified glossary or all collections if the search_string is '*'.
|
54
|
+
Parameters
|
55
|
+
----------
|
56
|
+
search_string : str, default is '*'
|
57
|
+
The string used to search for collections.
|
58
|
+
view_server : str
|
59
|
+
The view server name or address where the Egeria services are hosted.
|
60
|
+
view_url : str
|
61
|
+
The URL of the platform the view server is on.
|
62
|
+
user : str
|
63
|
+
The user ID for authentication with the Egeria server.
|
64
|
+
user_pass : str
|
65
|
+
The password for authentication with the Egeria server.
|
66
|
+
jupyter : bool, optional
|
67
|
+
A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
|
68
|
+
width : int, optional
|
69
|
+
The width of the console output (default is EGERIA_WIDTH).
|
70
|
+
"""
|
71
|
+
m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
72
|
+
token = m_client.create_egeria_bearer_token()
|
73
|
+
try:
|
74
|
+
table = Table(
|
75
|
+
title=f"Collection List @ {time.asctime()}",
|
76
|
+
style="bright_white on black",
|
77
|
+
header_style="bright_white on dark_blue",
|
78
|
+
title_style="bold white on black",
|
79
|
+
caption_style="white on black",
|
80
|
+
show_lines=True,
|
81
|
+
box=box.ROUNDED,
|
82
|
+
caption=f"View Server '{view_server}' @ Platform - {view_url}",
|
83
|
+
expand=True,
|
84
|
+
)
|
85
|
+
table.add_column("Collection Name")
|
86
|
+
table.add_column(
|
87
|
+
"Qualified Name & GUID", width=38, no_wrap=True, justify="center"
|
88
|
+
)
|
89
|
+
table.add_column("Home Metadata Collection")
|
90
|
+
table.add_column("Description")
|
91
|
+
table.add_column("Collection Type")
|
92
|
+
|
93
|
+
collections = m_client.find_collections(
|
94
|
+
search_string.strip(), None, False, ends_with=False, ignore_case=True
|
95
|
+
)
|
96
|
+
if type(collections) is list:
|
97
|
+
sorted_collection_list = sorted(
|
98
|
+
collections, key=lambda k: k["properties"]["name"]
|
99
|
+
)
|
100
|
+
for collection in sorted_collection_list:
|
101
|
+
display_name = collection["properties"]["name"]
|
102
|
+
qualified_name = collection["properties"]["qualifiedName"]
|
103
|
+
home_metadata_collection = collection["elementHeader"]["origin"][
|
104
|
+
"homeMetadataCollectionName"
|
105
|
+
]
|
106
|
+
guid = collection["elementHeader"]["guid"]
|
107
|
+
q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
|
108
|
+
description = collection["properties"]["description"]
|
109
|
+
collection_type = collection["properties"].get("collectionType", "---")
|
110
|
+
table.add_row(
|
111
|
+
display_name,
|
112
|
+
q_name,
|
113
|
+
home_metadata_collection,
|
114
|
+
description,
|
115
|
+
collection_type,
|
116
|
+
)
|
117
|
+
console = Console(
|
118
|
+
style="bold bright_white on black",
|
119
|
+
width=width,
|
120
|
+
force_terminal=not jupyter,
|
121
|
+
)
|
122
|
+
console.print(table)
|
123
|
+
else:
|
124
|
+
print("==> No collections with that name found")
|
125
|
+
|
126
|
+
except (
|
127
|
+
InvalidParameterException,
|
128
|
+
UserNotAuthorizedException,
|
129
|
+
PropertyServerException,
|
130
|
+
) as e:
|
131
|
+
print_exception_response(e)
|
132
|
+
finally:
|
133
|
+
m_client.close_session()
|
134
|
+
|
135
|
+
|
136
|
+
def main():
|
137
|
+
parser = argparse.ArgumentParser()
|
138
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
139
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
140
|
+
parser.add_argument("--userid", help="User Id")
|
141
|
+
parser.add_argument("--password", help="User Password")
|
142
|
+
|
143
|
+
args = parser.parse_args()
|
144
|
+
|
145
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
146
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
147
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
148
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
149
|
+
|
150
|
+
try:
|
151
|
+
search_string = Prompt.ask(
|
152
|
+
"Enter the collection you are searching for or '*' for all:", default="*"
|
153
|
+
).strip()
|
154
|
+
|
155
|
+
display_collections(search_string, server, url, userid, user_pass)
|
156
|
+
|
157
|
+
except KeyboardInterrupt:
|
158
|
+
pass
|
159
|
+
|
160
|
+
|
161
|
+
if __name__ == "__main__":
|
162
|
+
main()
|
@@ -0,0 +1,217 @@
|
|
1
|
+
"""This creates a templates guid file from the core metadata archive"""
|
2
|
+
from rich.markdown import Markdown
|
3
|
+
from rich.prompt import Prompt
|
4
|
+
import os
|
5
|
+
import argparse
|
6
|
+
import time
|
7
|
+
import sys
|
8
|
+
from rich import box
|
9
|
+
from rich.console import Console
|
10
|
+
from rich.table import Table
|
11
|
+
|
12
|
+
from pyegeria import (
|
13
|
+
InvalidParameterException,
|
14
|
+
PropertyServerException,
|
15
|
+
UserNotAuthorizedException,
|
16
|
+
print_exception_response,
|
17
|
+
EgeriaTech,
|
18
|
+
)
|
19
|
+
|
20
|
+
|
21
|
+
console = Console()
|
22
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
23
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
24
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
25
|
+
EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
|
26
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
27
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
28
|
+
)
|
29
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
|
30
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
31
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
32
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
33
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
34
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
35
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
36
|
+
|
37
|
+
|
38
|
+
def check_if_template(header: dict) -> bool:
|
39
|
+
"""Check if the the template classification is set"""
|
40
|
+
classifications = header.get("classifications", None)
|
41
|
+
if classifications is None:
|
42
|
+
return False
|
43
|
+
for c in classifications:
|
44
|
+
if c["type"]["typeName"] == "Template":
|
45
|
+
return True
|
46
|
+
return False
|
47
|
+
|
48
|
+
|
49
|
+
def list_deployed_catalogs(
|
50
|
+
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
|
+
jupyter: bool = EGERIA_JUPYTER,
|
56
|
+
width: int = EGERIA_WIDTH,
|
57
|
+
):
|
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)
|
79
|
+
token = c_client.create_egeria_bearer_token()
|
80
|
+
|
81
|
+
def generate_table() -> Table:
|
82
|
+
"""Make a new table."""
|
83
|
+
table = Table(
|
84
|
+
title=f"Catalog List @ {time.asctime()}",
|
85
|
+
caption=f"Catalogs found: {view_url} - {view_server} @ {time.asctime()}",
|
86
|
+
style="bold bright_white on black",
|
87
|
+
row_styles=["bold bright_white on black"],
|
88
|
+
header_style="white on dark_blue",
|
89
|
+
title_style="bold bright_white on black",
|
90
|
+
caption_style="white on black",
|
91
|
+
show_lines=True,
|
92
|
+
box=box.ROUNDED,
|
93
|
+
# title=f"Elements for Open Metadata Type: '{om_type}' ",
|
94
|
+
expand=True,
|
95
|
+
# width=500
|
96
|
+
)
|
97
|
+
|
98
|
+
table.add_column("Catalog Name/GUID", width=38, no_wrap=True)
|
99
|
+
table.add_column("Catalog Server")
|
100
|
+
table.add_column("Properties")
|
101
|
+
table.add_column("Catalog Schemas")
|
102
|
+
|
103
|
+
if catalog_server in [None, "*"]:
|
104
|
+
cats = c_client.get_elements_by_classification(
|
105
|
+
"Anchors", "DataAccessManager"
|
106
|
+
)
|
107
|
+
else:
|
108
|
+
server_guid = c_client.get_guid_for_name(catalog_server)
|
109
|
+
cats = c_client.get_elements_by_classification_with_property_value(
|
110
|
+
"Anchors", server_guid, ["anchorGUID"], "DataAccessManager"
|
111
|
+
)
|
112
|
+
if type(cats) is list:
|
113
|
+
for cat in cats:
|
114
|
+
header = cat["elementHeader"]
|
115
|
+
|
116
|
+
if check_if_template(header):
|
117
|
+
continue
|
118
|
+
el_guid = header["guid"]
|
119
|
+
el_name = cat["properties"].get("name", "---")
|
120
|
+
el_id = f"{el_name}\n{el_guid}"
|
121
|
+
el_home = header["origin"]["homeMetadataCollectionName"]
|
122
|
+
|
123
|
+
el_anchors_md = ""
|
124
|
+
class_info = header["classifications"]
|
125
|
+
for class_i in class_info:
|
126
|
+
class_prop = class_i.get("classificationProperties", None)
|
127
|
+
if class_prop:
|
128
|
+
for anchor in class_prop.keys():
|
129
|
+
if anchor == "anchorGUID":
|
130
|
+
server_guid = class_prop[anchor]
|
131
|
+
el_anchors_md += f"* **{anchor}**: {class_prop[anchor]}\n"
|
132
|
+
el_anchors_out = Markdown(el_anchors_md)
|
133
|
+
|
134
|
+
el_props_md = ""
|
135
|
+
for prop in cat["properties"].keys():
|
136
|
+
el_props_md += f"* **{prop}**: {cat['properties'][prop]}\n"
|
137
|
+
el_props_out = Markdown(el_props_md)
|
138
|
+
|
139
|
+
schemas = c_client.get_elements_by_classification_with_property_value(
|
140
|
+
"Anchors", el_guid, ["anchorGUID"], "DeployedDatabaseSchema"
|
141
|
+
)
|
142
|
+
schemas_md = ""
|
143
|
+
if type(schemas) is list:
|
144
|
+
cnt = 0
|
145
|
+
for schema in schemas:
|
146
|
+
schema_md = ""
|
147
|
+
schema_props = schema["properties"]
|
148
|
+
for key in schema_props.keys():
|
149
|
+
schema_md += f"* **{key}**: {schema_props[key]}\n"
|
150
|
+
|
151
|
+
spacer = "---\n" if cnt > 0 else ""
|
152
|
+
cnt += 1
|
153
|
+
schemas_md += f"{spacer}{schema_md}"
|
154
|
+
schemas_md_out = Markdown(schemas_md)
|
155
|
+
|
156
|
+
element_info = c_client.get_element_by_guid(server_guid)
|
157
|
+
element_info_md = ""
|
158
|
+
for key in element_info["properties"].keys():
|
159
|
+
element_info_md += (
|
160
|
+
f"* **{key}**: {element_info['properties'][key]}\n"
|
161
|
+
)
|
162
|
+
element_info_out = Markdown(element_info_md)
|
163
|
+
|
164
|
+
table.add_row(
|
165
|
+
el_id,
|
166
|
+
element_info_out,
|
167
|
+
el_props_out,
|
168
|
+
schemas_md_out,
|
169
|
+
)
|
170
|
+
|
171
|
+
return table
|
172
|
+
else:
|
173
|
+
print("No instances found")
|
174
|
+
sys.exit(1)
|
175
|
+
|
176
|
+
try:
|
177
|
+
console = Console(width=width, force_terminal=not jupyter)
|
178
|
+
|
179
|
+
with console.pager(styles=True):
|
180
|
+
console.print(generate_table())
|
181
|
+
|
182
|
+
except (
|
183
|
+
InvalidParameterException,
|
184
|
+
PropertyServerException,
|
185
|
+
UserNotAuthorizedException,
|
186
|
+
) as e:
|
187
|
+
print_exception_response(e)
|
188
|
+
print("\n\nPerhaps the type name isn't known")
|
189
|
+
finally:
|
190
|
+
c_client.close_session()
|
191
|
+
|
192
|
+
|
193
|
+
def main():
|
194
|
+
parser = argparse.ArgumentParser()
|
195
|
+
parser.add_argument("--server", help="Name of the view server to use")
|
196
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
197
|
+
parser.add_argument("--userid", help="User Id")
|
198
|
+
parser.add_argument("--password", help="Password")
|
199
|
+
|
200
|
+
args = parser.parse_args()
|
201
|
+
|
202
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
203
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
204
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
205
|
+
password = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
206
|
+
|
207
|
+
try:
|
208
|
+
uc_server_name = Prompt.ask(
|
209
|
+
"Enter the name of a server to retrieve catalogs for", default="*"
|
210
|
+
)
|
211
|
+
list_deployed_catalogs(uc_server_name, server, url, userid, password)
|
212
|
+
except KeyboardInterrupt:
|
213
|
+
pass
|
214
|
+
|
215
|
+
|
216
|
+
if __name__ == "__main__":
|
217
|
+
main()
|