pyegeria 5.4.0.28__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/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +137 -38
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +10 -267
- 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 +17 -139
- 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/{list_format_set.py → run_report_orig.py} +136 -44
- commands/cli/egeria.py +182 -219
- commands/cli/egeria_cat.py +32 -59
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/{cat → deprecated}/list_data_designer.py +2 -4
- commands/{cat → 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 +14 -11
- 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 +33 -24
- 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 +6489 -30060
- md_processing/data/{commands-working.json → commands_working.json} +9304 -13513
- 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/data_designer_commands.py +195 -583
- 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 +106 -490
- md_processing/md_commands/governance_officer_commands.py +129 -18
- md_processing/md_commands/product_manager_commands.py +362 -115
- md_processing/md_commands/project_commands.py +351 -134
- md_processing/md_commands/solution_architect_commands.py +276 -232
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +258 -166
- md_processing/md_processing_utils/common_md_utils.py +138 -43
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +100 -39
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +61 -33
- md_processing/md_processing_utils/generate_md_cmd_templates.py +20 -19
- md_processing/md_processing_utils/generate_md_templates.py +3 -12
- md_processing/md_processing_utils/md_processing_constants.py +1053 -72
- pyegeria/__init__.py +203 -158
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/{_exceptions_new.py → core/_exceptions.py} +62 -30
- pyegeria/{_globals.py → core/_globals.py} +14 -3
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/{_validators.py → core/_validators.py} +7 -8
- 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/{logging_configuration.py → core/logging_configuration.py} +1 -1
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/{_client.py → deprecated/_client.py} +24 -25
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1987 -1877
- pyegeria/{output_formatter.py → deprecated/output_formatter_with_machine_keys.py} +298 -45
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +155 -171
- 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 +26 -70
- pyegeria/egeria_client.py +130 -93
- pyegeria/egeria_config_client.py +40 -46
- pyegeria/egeria_tech_client.py +141 -54
- pyegeria/models/__init__.py +150 -0
- pyegeria/{models.py → models/models.py} +156 -20
- 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/{collection_manager.py → omvs/collection_manager.py} +1334 -1160
- 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.py → omvs/data_designer.py} +1115 -660
- 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/{glossary_manager.py → omvs/glossary_manager.py} +857 -519
- pyegeria/{governance_officer.py → omvs/governance_officer.py} +964 -468
- 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/{solution_architect_omvs.py → omvs/solution_architect.py} +1886 -1505
- 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/{_output_format_models.py → view/_output_format_models.py} +160 -24
- 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.4.0.28.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/.env +0 -8
- commands/cat/README.md +0 -16
- commands/cat/debug_log +0 -1126
- commands/cat/debug_log.2025-08-18_11-34-38_088636.zip +0 -0
- commands/cat/list_categories.py +0 -192
- commands/cat/logs/pyegeria.log +0 -4
- commands/cli/debug_log +0 -0
- commands/cli/debug_log.log +0 -0
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/logs/pyegeria.log +0 -0
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- md_processing/.DS_Store +0 -0
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +0 -163
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +0 -474
- md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
- md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
- md_processing/dr_egeria_inbox/arch_test.md +0 -57
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
- md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
- md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
- md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
- md_processing/dr_egeria_inbox/cat_test.md +0 -100
- md_processing/dr_egeria_inbox/collections.md +0 -39
- md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
- md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
- md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
- md_processing/dr_egeria_inbox/data_field.md +0 -54
- md_processing/dr_egeria_inbox/data_spec.md +0 -77
- md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
- md_processing/dr_egeria_inbox/data_test.md +0 -179
- md_processing/dr_egeria_inbox/data_test2.md +0 -429
- md_processing/dr_egeria_inbox/data_test3.md +0 -462
- md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
- md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
- md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
- md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
- md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
- md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
- md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
- md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
- md_processing/dr_egeria_inbox/glossary_list.md +0 -5
- md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
- md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
- md_processing/dr_egeria_inbox/gov_def.md +0 -482
- md_processing/dr_egeria_inbox/gov_def2.md +0 -447
- md_processing/dr_egeria_inbox/img.png +0 -0
- md_processing/dr_egeria_inbox/product.md +0 -211
- md_processing/dr_egeria_inbox/rel.md +0 -8
- md_processing/dr_egeria_inbox/sb.md +0 -119
- md_processing/dr_egeria_inbox/solution-components.md +0 -136
- md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
- md_processing/dr_egeria_inbox/synonym_test.md +0 -42
- md_processing/dr_egeria_inbox/t2.md +0 -268
- md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -6
- md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -31
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
- md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
- md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -220
- md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:22-dr_egeria_intro_part1.md +0 -312
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:23-dr_egeria_intro_part1.md +0 -265
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:06-dr_egeria_intro_part1.md +0 -230
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:30-dr_egeria_intro_part1.md +0 -296
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:31-dr_egeria_intro_part1.md +0 -253
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:08-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:12-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +0 -426
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +0 -212
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +0 -201
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +0 -77
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +0 -75
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +0 -74
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +0 -49
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +0 -485
- md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +0 -209
- md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
- md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
- md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
- md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
- md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
- md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
- md_processing/family_docs/Data Designer.md +0 -842
- md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
- md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
- md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
- md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
- md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
- md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
- md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
- md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
- md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
- md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
- md_processing/family_docs/Digital Product Manager.md +0 -668
- md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
- md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
- md_processing/family_docs/Glossary/Create_Category.md +0 -38
- md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
- md_processing/family_docs/Glossary/Create_Term.md +0 -70
- md_processing/family_docs/Glossary.md +0 -206
- md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
- md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
- md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
- md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
- md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
- md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
- md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
- md_processing/family_docs/Governance Officer.md +0 -2412
- md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
- md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
- md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
- md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
- md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
- md_processing/family_docs/Solution Architect.md +0 -490
- md_processing/md_processing_utils/debug_log +0 -574
- md_processing/md_processing_utils/debug_log.log +0 -0
- md_processing/md_processing_utils/dr-egeria-help-2025-07-17T17:22:09.md +0 -2065
- md_processing/md_processing_utils/generated_help_terms.md +0 -842
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_client_new.py +0 -1102
- pyegeria/_output_formats.py +0 -730
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/config.py +0 -523
- pyegeria/egeria_my_client.py +0 -91
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/load_config_orig.py +0 -218
- 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/project_manager.py +0 -1591
- pyegeria/registered_info.py +0 -167
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -256
- pyegeria-5.4.0.28.dist-info/METADATA +0 -77
- pyegeria-5.4.0.28.dist-info/RECORD +0 -343
- pyegeria-5.4.0.28.dist-info/entry_points.txt +0 -105
- /commands/cat/debug_log.log → /pyegeria/deprecated/__init__.py +0 -0
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- /pyegeria/{collection_models.py → models/collection_models.py} +0 -0
- {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -18,50 +18,34 @@ import time
|
|
|
18
18
|
from rich import box
|
|
19
19
|
from rich.console import Console
|
|
20
20
|
from rich.live import Live
|
|
21
|
-
from rich.markdown import Markdown
|
|
22
21
|
from rich.table import Table
|
|
23
22
|
|
|
24
23
|
from pyegeria import (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
EgeriaTech,
|
|
25
|
+
PyegeriaException,
|
|
26
|
+
print_basic_exception,
|
|
27
|
+
settings,
|
|
28
|
+
config_logging
|
|
30
29
|
)
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
EGERIA_KAFKA_ENDPOINT = os.environ.get("EGERIA_KAFKA_ENDPOINT", "localhost:9092")
|
|
34
|
-
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
|
35
|
-
EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
|
|
36
|
-
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
|
37
|
-
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
|
38
|
-
)
|
|
39
|
-
EGERIA_ENGINE_HOST = os.environ.get("EGERIA_ENGINE_HOST", "engine-host")
|
|
40
|
-
EGERIA_ENGINE_HOST_URL = os.environ.get(
|
|
41
|
-
"EGERIA_ENGINE_HOST_URL", "https://localhost:9443"
|
|
42
|
-
)
|
|
43
|
-
EGERIA_INTEGRATION_DAEMON = os.environ.get(
|
|
44
|
-
"EGERIA_INTEGRATION_DAEMON", "integration_daemon"
|
|
45
|
-
)
|
|
46
|
-
EGERIA_ADMIN_USER = os.environ.get("EGERIA_ADMIN_USER", "garygeeke")
|
|
47
|
-
EGERIA_ADMIN_PASSWORD = os.environ.get("EGERIA_ADMIN_PASSWORD", "secret")
|
|
31
|
+
|
|
48
32
|
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
49
33
|
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
50
|
-
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
|
51
|
-
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
|
52
34
|
|
|
53
|
-
|
|
35
|
+
app_config = settings.Environment
|
|
36
|
+
config_logging()
|
|
37
|
+
console = Console(width = app_config.console_width)
|
|
54
38
|
|
|
55
39
|
|
|
56
|
-
def
|
|
40
|
+
def display_engine_activity(
|
|
57
41
|
row_limit: int = 0,
|
|
58
|
-
view_server: str =
|
|
59
|
-
view_url: str =
|
|
42
|
+
view_server: str = app_config.egeria_view_server,
|
|
43
|
+
view_url: str = app_config.egeria_view_server_url,
|
|
60
44
|
user: str = EGERIA_USER,
|
|
61
45
|
user_pass: str = EGERIA_USER_PASSWORD,
|
|
62
46
|
paging: bool = True,
|
|
63
|
-
jupyter: bool =
|
|
64
|
-
width: int =
|
|
47
|
+
jupyter: bool = app_config.egeria_jupyter,
|
|
48
|
+
width: int = app_config.console_width,
|
|
65
49
|
):
|
|
66
50
|
"""Display governance engine activity as a table.
|
|
67
51
|
|
|
@@ -84,7 +68,7 @@ def display_engine_activity_c(
|
|
|
84
68
|
width : int
|
|
85
69
|
The width of the console for table printing.
|
|
86
70
|
"""
|
|
87
|
-
g_client =
|
|
71
|
+
g_client = EgeriaTech(view_server, view_url, user, user_pwd=user_pass)
|
|
88
72
|
token = g_client.create_egeria_bearer_token()
|
|
89
73
|
|
|
90
74
|
def generate_table() -> Table:
|
|
@@ -102,15 +86,17 @@ def display_engine_activity_c(
|
|
|
102
86
|
expand=True,
|
|
103
87
|
)
|
|
104
88
|
table.add_column("Requested Time")
|
|
105
|
-
table.add_column("
|
|
106
|
-
table.add_column("
|
|
107
|
-
|
|
89
|
+
table.add_column("Start Time")
|
|
90
|
+
table.add_column("Action GUID", no_wrap=True)
|
|
91
|
+
table.add_column("Engine Name")
|
|
92
|
+
table.add_column("Request Type")
|
|
108
93
|
table.add_column("Action Status")
|
|
94
|
+
table.add_column("Target Element")
|
|
109
95
|
table.add_column("Completion Time")
|
|
110
|
-
table.add_column("
|
|
111
|
-
|
|
96
|
+
table.add_column("Process Name")
|
|
97
|
+
table.add_column("Completion Message")
|
|
112
98
|
|
|
113
|
-
action_status = g_client.
|
|
99
|
+
action_status = g_client.get_active_engine_actions()
|
|
114
100
|
|
|
115
101
|
if type(action_status) is str:
|
|
116
102
|
requested_time = " "
|
|
@@ -133,10 +119,9 @@ def display_engine_activity_c(
|
|
|
133
119
|
if row_limit > 0 and row_count >= row_limit:
|
|
134
120
|
break
|
|
135
121
|
row_count += 1
|
|
136
|
-
requested_time = action.get("requestedTime", " ")
|
|
137
|
-
start_time = action.get("startTime", " ")
|
|
138
|
-
completion_time = action.get("completionTime", " ")
|
|
139
|
-
completion_guards = action.get("completionGuards", " ")
|
|
122
|
+
requested_time = action.get("requestedTime", " ")
|
|
123
|
+
start_time = action.get("startTime", " ")
|
|
124
|
+
completion_time = action.get("completionTime", " ")
|
|
140
125
|
|
|
141
126
|
engine_name = action["governanceEngineName"]
|
|
142
127
|
request_type = action["requestType"]
|
|
@@ -148,57 +133,42 @@ def display_engine_activity_c(
|
|
|
148
133
|
"ACTIVATING",
|
|
149
134
|
):
|
|
150
135
|
action_status = f"[yellow]{action['actionStatus']}"
|
|
151
|
-
elif action["actionStatus"] in ("IN_PROGRESS", "
|
|
136
|
+
elif action["actionStatus"] in ("IN_PROGRESS", "COMPLETED"):
|
|
152
137
|
action_status = f"[green]{action['actionStatus']}"
|
|
153
138
|
else:
|
|
154
139
|
action_status = f"[red]{action['actionStatus']}"
|
|
155
140
|
|
|
156
|
-
request_parameters_md = " "
|
|
157
|
-
request_parameters = action.get("requestParameters", "Empty")
|
|
158
|
-
if type(request_parameters) is dict:
|
|
159
|
-
for key, value in request_parameters.items():
|
|
160
|
-
request_parameters_md += f"\t* {key}: {value}\n"
|
|
161
|
-
|
|
162
141
|
targets = action.get("actionTargetElements", "Empty")
|
|
163
142
|
if type(targets) is list:
|
|
143
|
+
tgt_tab = Table()
|
|
144
|
+
tgt_tab.add_column("name")
|
|
145
|
+
tgt_tab.add_column("guid", no_wrap=True)
|
|
146
|
+
tgt_tab.add_column("type_name")
|
|
164
147
|
targets_md = ""
|
|
165
148
|
for target in targets:
|
|
166
149
|
t_name = target["actionTargetName"]
|
|
167
150
|
t_guid = target["actionTargetGUID"]
|
|
168
151
|
t_type = target["targetElement"]["type"]["typeName"]
|
|
169
|
-
|
|
170
|
-
f"* Target Name: {t_name}\n"
|
|
171
|
-
f" * Target GUID: {t_guid}\n"
|
|
172
|
-
f" * Target Type: {t_type}\n"
|
|
173
|
-
)
|
|
174
|
-
|
|
152
|
+
tgt_tab.add_row(t_name, t_guid, t_type)
|
|
175
153
|
# target_element = json.dumps(target[0]["targetElement"]["elementProperties"]["propertiesAsStrings"])
|
|
176
|
-
target_element =
|
|
154
|
+
target_element = tgt_tab
|
|
177
155
|
else:
|
|
178
156
|
target_element = " "
|
|
179
157
|
|
|
180
|
-
process_name = action.get("processName", "
|
|
158
|
+
process_name = action.get("processName", " ")
|
|
181
159
|
completion_message = action.get("completionMessage", " ")
|
|
182
|
-
|
|
183
|
-
f"* Completion Guards: {completion_guards}\n"
|
|
184
|
-
f"* Completion Message: {completion_message}"
|
|
185
|
-
)
|
|
186
|
-
core_results_out = Markdown(core_results_md)
|
|
187
|
-
core_info_md = (
|
|
188
|
-
f"* Start Time: {start_time}\n* Engine Name: {engine_name}\n* GUID: {action_guid}\n"
|
|
189
|
-
f"* Request Type: {request_type}\n"
|
|
190
|
-
f"* Process Name: {process_name}\n"
|
|
191
|
-
f"---\n"
|
|
192
|
-
f"* Request Parameters: \n{request_parameters_md}\n"
|
|
193
|
-
)
|
|
194
|
-
core_info_out = Markdown(core_info_md)
|
|
160
|
+
|
|
195
161
|
table.add_row(
|
|
196
162
|
requested_time,
|
|
197
|
-
|
|
198
|
-
|
|
163
|
+
start_time,
|
|
164
|
+
action_guid,
|
|
165
|
+
engine_name,
|
|
166
|
+
request_type,
|
|
199
167
|
action_status,
|
|
168
|
+
target_element,
|
|
200
169
|
completion_time,
|
|
201
|
-
|
|
170
|
+
process_name,
|
|
171
|
+
completion_message,
|
|
202
172
|
)
|
|
203
173
|
else:
|
|
204
174
|
print("Egeria integration daemon not running")
|
|
@@ -223,11 +193,9 @@ def display_engine_activity_c(
|
|
|
223
193
|
live.update(generate_table())
|
|
224
194
|
|
|
225
195
|
except (
|
|
226
|
-
|
|
227
|
-
PropertyServerException,
|
|
228
|
-
UserNotAuthorizedException,
|
|
196
|
+
PyegeriaException
|
|
229
197
|
) as e:
|
|
230
|
-
|
|
198
|
+
print_basic_exception(e)
|
|
231
199
|
except KeyboardInterrupt:
|
|
232
200
|
pass
|
|
233
201
|
finally:
|
|
@@ -246,12 +214,13 @@ def main_live():
|
|
|
246
214
|
|
|
247
215
|
args = parser.parse_args()
|
|
248
216
|
|
|
249
|
-
server = args.server if args.server is not None else
|
|
250
|
-
url = args.url if args.url is not None else
|
|
217
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
218
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
251
219
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
252
220
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
253
221
|
rowlimit = int(args.rowlimit) if args.rowlimit is not None else 0
|
|
254
|
-
|
|
222
|
+
|
|
223
|
+
display_engine_activity(
|
|
255
224
|
rowlimit, server, url, user=userid, user_pass=user_pass, paging=False
|
|
256
225
|
)
|
|
257
226
|
|
|
@@ -268,13 +237,13 @@ def main_paging():
|
|
|
268
237
|
|
|
269
238
|
args = parser.parse_args()
|
|
270
239
|
|
|
271
|
-
server = args.server if args.server is not None else
|
|
272
|
-
url = args.url if args.url is not None else
|
|
240
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
241
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
273
242
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
274
243
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
275
244
|
rowlimit = int(args.rowlimit) if args.rowlimit is not None else 0
|
|
276
245
|
|
|
277
|
-
|
|
246
|
+
display_engine_activity(
|
|
278
247
|
rowlimit, server, url, user=userid, user_pass=user_pass, paging=True
|
|
279
248
|
)
|
|
280
249
|
|
|
@@ -11,44 +11,23 @@ A simple status display for the Integration Daemon.
|
|
|
11
11
|
import argparse
|
|
12
12
|
import os
|
|
13
13
|
import time
|
|
14
|
-
from typing import Union
|
|
15
14
|
|
|
16
|
-
import nest_asyncio
|
|
17
15
|
from rich import box
|
|
18
16
|
from rich.console import Console
|
|
19
17
|
from rich.live import Live
|
|
20
18
|
from rich.prompt import Prompt
|
|
21
19
|
from rich.table import Table
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
InvalidParameterException,
|
|
27
|
-
PropertyServerException,
|
|
28
|
-
UserNotAuthorizedException,
|
|
29
|
-
print_exception_response,
|
|
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("EGERIA_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(
|
|
40
|
-
"EGERIA_INTEGRATION_DAEMON", "integration-daemon"
|
|
41
|
-
)
|
|
42
|
-
EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
|
|
43
|
-
"EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
|
|
44
|
-
)
|
|
20
|
+
|
|
21
|
+
from pyegeria import EgeriaTech, PyegeriaException, settings, config_logging, \
|
|
22
|
+
PyegeriaClientException, print_basic_exception
|
|
23
|
+
|
|
45
24
|
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
46
25
|
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
47
|
-
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
|
48
|
-
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", 200))
|
|
49
26
|
|
|
50
27
|
disable_ssl_warnings = True
|
|
51
|
-
|
|
28
|
+
app_config = settings.Environment
|
|
29
|
+
settings.Logging.console_logging_level = "ERROR"
|
|
30
|
+
config_logging()
|
|
52
31
|
|
|
53
32
|
def display_integration_daemon_status(
|
|
54
33
|
search_list: list[str] = ["*"],
|
|
@@ -58,13 +37,15 @@ def display_integration_daemon_status(
|
|
|
58
37
|
integ_url: str = os.environ.get(
|
|
59
38
|
"EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
|
|
60
39
|
),
|
|
61
|
-
view_server: str =
|
|
62
|
-
view_url: str =
|
|
63
|
-
user: str =
|
|
64
|
-
user_pass: str =
|
|
40
|
+
view_server: str = app_config.egeria_view_server,
|
|
41
|
+
view_url: str = app_config.egeria_view_server_url,
|
|
42
|
+
user: str = EGERIA_USER,
|
|
43
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
|
44
|
+
|
|
45
|
+
width: int = app_config.console_width,
|
|
65
46
|
paging: bool = False,
|
|
66
|
-
|
|
67
|
-
|
|
47
|
+
|
|
48
|
+
jupyter: bool = app_config.egeria_jupyter,
|
|
68
49
|
sort: bool = True,
|
|
69
50
|
) -> None:
|
|
70
51
|
"""Display the status of connectors running on the specified Integration Daemon OMAG Server.
|
|
@@ -134,7 +115,6 @@ def display_integration_daemon_status(
|
|
|
134
115
|
table.add_column("Target Element", min_width=20)
|
|
135
116
|
table.add_column("Exception Message", min_width=10)
|
|
136
117
|
|
|
137
|
-
# server_guid = s_client.get_guid_for_name(integ_server)
|
|
138
118
|
|
|
139
119
|
token = s_client.refresh_egeria_bearer_token()
|
|
140
120
|
daemon_status = s_client.get_server_report(None, integ_server)
|
|
@@ -159,22 +139,24 @@ def display_integration_daemon_status(
|
|
|
159
139
|
last_refresh_time = connector.get("lastRefreshTime", "---")[:-10]
|
|
160
140
|
refresh_interval = str(connector.get("minMinutesBetweenRefresh", "---"))
|
|
161
141
|
exception_msg = connector.get("failingExceptionMessage", " ")
|
|
142
|
+
tgt_tab="---"
|
|
162
143
|
if connector_guid != "---":
|
|
163
144
|
targets = s_client.get_catalog_targets(connector_guid)
|
|
164
145
|
tgt_tab = Table()
|
|
165
146
|
tgt_tab.add_column("Target")
|
|
166
|
-
tgt_tab.add_column("
|
|
167
|
-
tgt_tab.add_column("Relationship GUID", no_wrap=True)
|
|
147
|
+
tgt_tab.add_column("Display Name")
|
|
168
148
|
|
|
169
149
|
if type(targets) == list:
|
|
170
150
|
targets_md = True
|
|
171
151
|
for target in targets:
|
|
172
|
-
t_name = target["catalogTargetName"
|
|
152
|
+
t_name = target['relatedBy']['relationshipProperties'].get("catalogTargetName",None)
|
|
173
153
|
# t_sync = target["permittedSynchronization"]
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
154
|
+
if t_name:
|
|
155
|
+
t_unique_name = target["properties"].get("displayName","---")
|
|
156
|
+
else:
|
|
157
|
+
t_unique_name = "---"
|
|
158
|
+
|
|
159
|
+
tgt_tab.add_row(t_name, t_unique_name)
|
|
178
160
|
# targets_md = Markdown(targets_m)
|
|
179
161
|
else:
|
|
180
162
|
targets_md = False
|
|
@@ -220,13 +202,11 @@ def display_integration_daemon_status(
|
|
|
220
202
|
live.update(generate_table(search_list))
|
|
221
203
|
|
|
222
204
|
except (
|
|
223
|
-
|
|
224
|
-
PropertyServerException,
|
|
225
|
-
UserNotAuthorizedException,
|
|
205
|
+
PyegeriaException, PyegeriaClientException,
|
|
226
206
|
) as e:
|
|
227
|
-
|
|
207
|
+
print_basic_exception(e)
|
|
228
208
|
|
|
229
|
-
except KeyboardInterrupt:
|
|
209
|
+
except KeyboardInterrupt as e:
|
|
230
210
|
pass
|
|
231
211
|
|
|
232
212
|
finally:
|
|
@@ -249,15 +229,15 @@ def main_live(paging: bool = False) -> None:
|
|
|
249
229
|
integ_server = (
|
|
250
230
|
args.integ_server
|
|
251
231
|
if args.integ_server is not None
|
|
252
|
-
else
|
|
232
|
+
else app_config.egeria_integration_daemon
|
|
253
233
|
)
|
|
254
234
|
integ_url = (
|
|
255
|
-
args.integ_url if args.integ_url is not None else
|
|
235
|
+
args.integ_url if args.integ_url is not None else app_config.egeria_integration_daemon_url
|
|
256
236
|
)
|
|
257
237
|
view_server = (
|
|
258
|
-
args.view_server if args.view_server is not None else
|
|
238
|
+
args.view_server if args.view_server is not None else app_config.egeria_view_server
|
|
259
239
|
)
|
|
260
|
-
view_url = args.view_url if args.view_url is not None else
|
|
240
|
+
view_url = args.view_url if args.view_url is not None else app_config.egeria_view_server_url
|
|
261
241
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
262
242
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
263
243
|
|
|
@@ -293,15 +273,15 @@ def main_paging(paging: bool = True) -> None:
|
|
|
293
273
|
integ_server = (
|
|
294
274
|
args.integ_server
|
|
295
275
|
if args.integ_server is not None
|
|
296
|
-
else
|
|
276
|
+
else app_config.egeria_integration_daemon
|
|
297
277
|
)
|
|
298
278
|
integ_url = (
|
|
299
|
-
args.integ_url if args.integ_url is not None else
|
|
279
|
+
args.integ_url if args.integ_url is not None else app_config.egeria_integration_daemon_url
|
|
300
280
|
)
|
|
301
281
|
view_server = (
|
|
302
|
-
args.view_server if args.view_server is not None else
|
|
282
|
+
args.view_server if args.view_server is not None else app_config.egeria_view_server
|
|
303
283
|
)
|
|
304
|
-
view_url = args.view_url if args.view_url is not None else
|
|
284
|
+
view_url = args.view_url if args.view_url is not None else app_config.egeria_view_server_url
|
|
305
285
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
306
286
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
307
287
|
search_list = Prompt.ask(
|
|
@@ -14,51 +14,39 @@ import json
|
|
|
14
14
|
import os
|
|
15
15
|
import sys
|
|
16
16
|
import time
|
|
17
|
-
|
|
17
|
+
from datetime import datetime
|
|
18
18
|
from rich import box
|
|
19
19
|
from rich.console import Console
|
|
20
20
|
from rich.live import Live
|
|
21
|
+
from rich.markdown import Markdown
|
|
21
22
|
from rich.table import Table
|
|
22
23
|
|
|
23
24
|
from pyegeria import (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
EgeriaTech,
|
|
26
|
+
PyegeriaException,
|
|
27
|
+
print_basic_exception,
|
|
28
|
+
settings,
|
|
29
|
+
config_logging
|
|
29
30
|
)
|
|
30
31
|
|
|
31
|
-
|
|
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_ENGINE_HOST = os.environ.get("INTEGRATION_ENGINE_HOST", "engine-host")
|
|
39
|
-
EGERIA_ENGINE_HOST_URL = os.environ.get(
|
|
40
|
-
"INTEGRATION_ENGINE_HOST_URL", "https://localhost:9443"
|
|
41
|
-
)
|
|
42
|
-
EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
|
|
43
|
-
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
|
44
|
-
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
|
32
|
+
|
|
45
33
|
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
46
34
|
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
47
|
-
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
|
48
|
-
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
|
49
35
|
|
|
50
|
-
|
|
36
|
+
app_config = settings.Environment
|
|
37
|
+
config_logging()
|
|
38
|
+
console = Console(width = app_config.console_width)
|
|
51
39
|
|
|
52
40
|
|
|
53
|
-
def
|
|
41
|
+
def display_engine_activity_c(
|
|
54
42
|
row_limit: int = 0,
|
|
55
|
-
view_server: str =
|
|
56
|
-
view_url: str =
|
|
43
|
+
view_server: str = app_config.egeria_view_server,
|
|
44
|
+
view_url: str = app_config.egeria_view_server_url,
|
|
57
45
|
user: str = EGERIA_USER,
|
|
58
46
|
user_pass: str = EGERIA_USER_PASSWORD,
|
|
59
47
|
paging: bool = True,
|
|
60
|
-
jupyter: bool =
|
|
61
|
-
width: int =
|
|
48
|
+
jupyter: bool = app_config.egeria_jupyter,
|
|
49
|
+
width: int = app_config.console_width,
|
|
62
50
|
):
|
|
63
51
|
"""Display governance engine activity as a table.
|
|
64
52
|
|
|
@@ -81,7 +69,7 @@ def display_engine_activity(
|
|
|
81
69
|
width : int
|
|
82
70
|
The width of the console for table printing.
|
|
83
71
|
"""
|
|
84
|
-
g_client =
|
|
72
|
+
g_client = EgeriaTech(view_server, view_url, user, user_pwd=user_pass)
|
|
85
73
|
token = g_client.create_egeria_bearer_token()
|
|
86
74
|
|
|
87
75
|
def generate_table() -> Table:
|
|
@@ -99,17 +87,15 @@ def display_engine_activity(
|
|
|
99
87
|
expand=True,
|
|
100
88
|
)
|
|
101
89
|
table.add_column("Requested Time")
|
|
102
|
-
table.add_column("
|
|
103
|
-
table.add_column("
|
|
104
|
-
|
|
105
|
-
table.add_column("Request Type")
|
|
90
|
+
table.add_column("Core Info")
|
|
91
|
+
table.add_column("Target Elements")
|
|
92
|
+
|
|
106
93
|
table.add_column("Action Status")
|
|
107
|
-
table.add_column("Target Element")
|
|
108
94
|
table.add_column("Completion Time")
|
|
109
|
-
table.add_column("
|
|
110
|
-
table.add_column("Completion Message")
|
|
95
|
+
table.add_column("Core Results")
|
|
96
|
+
# table.add_column("Completion Message")
|
|
111
97
|
|
|
112
|
-
action_status = g_client.
|
|
98
|
+
action_status = g_client.find_engine_actions()
|
|
113
99
|
|
|
114
100
|
if type(action_status) is str:
|
|
115
101
|
requested_time = " "
|
|
@@ -124,7 +110,7 @@ def display_engine_activity(
|
|
|
124
110
|
elif type(action_status) is list:
|
|
125
111
|
sorted_action_status = sorted(
|
|
126
112
|
action_status,
|
|
127
|
-
key=lambda i: i.get("requestedTime",
|
|
113
|
+
key=lambda i: i.get("requestedTime", datetime.now().isoformat()),
|
|
128
114
|
reverse=True,
|
|
129
115
|
)
|
|
130
116
|
row_count = 0
|
|
@@ -132,56 +118,75 @@ def display_engine_activity(
|
|
|
132
118
|
if row_limit > 0 and row_count >= row_limit:
|
|
133
119
|
break
|
|
134
120
|
row_count += 1
|
|
135
|
-
requested_time = action.get("
|
|
136
|
-
start_time = action.get("startTime", " ")
|
|
137
|
-
completion_time = action.get("completionTime", " ")
|
|
121
|
+
requested_time = action['properties'].get("requestedStartTime", " ")[:-10]
|
|
122
|
+
start_time = action['properties'].get("startTime", " ")[:-10]
|
|
123
|
+
completion_time = action['properties'].get("completionTime", " ")[:-10]
|
|
124
|
+
completion_guards = action['properties'].get("completionGuards", " ")
|
|
138
125
|
|
|
139
|
-
engine_name = action["
|
|
140
|
-
request_type = action["requestType"
|
|
126
|
+
engine_name = action['properties'].get("executorEngineName",'---')
|
|
127
|
+
request_type = action['properties'].get("requestType",'---')
|
|
141
128
|
action_guid = action["elementHeader"]["guid"]
|
|
142
|
-
|
|
129
|
+
activity_status = action['properties'].get("activityStatus",'---')
|
|
130
|
+
if activity_status in (
|
|
143
131
|
"REQUESTED",
|
|
144
132
|
"APPROVED",
|
|
145
133
|
"WAITING",
|
|
146
134
|
"ACTIVATING",
|
|
147
135
|
):
|
|
148
|
-
action_status = f"[yellow]{
|
|
149
|
-
elif
|
|
150
|
-
action_status = f"[green]{
|
|
136
|
+
action_status = f"[yellow]{activity_status}"
|
|
137
|
+
elif activity_status in ("IN_PROGRESS", "COMPLETED"):
|
|
138
|
+
action_status = f"[green]{activity_status}"
|
|
151
139
|
else:
|
|
152
|
-
action_status = f"[red]{
|
|
153
|
-
|
|
154
|
-
|
|
140
|
+
action_status = f"[red]{activity_status}"
|
|
141
|
+
|
|
142
|
+
request_parameters_md = " "
|
|
143
|
+
request_parameters = action['properties'].get("requestParameters", "Empty")
|
|
144
|
+
if type(request_parameters) is dict:
|
|
145
|
+
for key, value in request_parameters.items():
|
|
146
|
+
request_parameters_md += f"\t* {key}: {value}\n"
|
|
147
|
+
#
|
|
148
|
+
# Discuss
|
|
149
|
+
#
|
|
150
|
+
targets = action['properties'].get("actionTargetElements", "Empty")
|
|
155
151
|
if type(targets) is list:
|
|
156
|
-
tgt_tab = Table()
|
|
157
|
-
tgt_tab.add_column("name")
|
|
158
|
-
tgt_tab.add_column("guid", no_wrap=True)
|
|
159
|
-
tgt_tab.add_column("type_name")
|
|
160
152
|
targets_md = ""
|
|
161
153
|
for target in targets:
|
|
162
154
|
t_name = target["actionTargetName"]
|
|
163
155
|
t_guid = target["actionTargetGUID"]
|
|
164
156
|
t_type = target["targetElement"]["type"]["typeName"]
|
|
165
|
-
|
|
157
|
+
targets_md += (
|
|
158
|
+
f"* Target Name: {t_name}\n"
|
|
159
|
+
f" * Target GUID: {t_guid}\n"
|
|
160
|
+
f" * Target Type: {t_type}\n"
|
|
161
|
+
)
|
|
162
|
+
|
|
166
163
|
# target_element = json.dumps(target[0]["targetElement"]["elementProperties"]["propertiesAsStrings"])
|
|
167
|
-
target_element =
|
|
164
|
+
target_element = Markdown(f"{targets_md} ---\n")
|
|
168
165
|
else:
|
|
169
166
|
target_element = " "
|
|
170
167
|
|
|
171
|
-
process_name = action.get("processName", "
|
|
172
|
-
completion_message = action.get("completionMessage", " ")
|
|
173
|
-
|
|
168
|
+
process_name = action['properties'].get("processName", "Null")
|
|
169
|
+
completion_message = action['properties'].get("completionMessage", " ")
|
|
170
|
+
core_results_md = (
|
|
171
|
+
f"* Completion Guards: {completion_guards}\n"
|
|
172
|
+
f"* Completion Message: {completion_message}"
|
|
173
|
+
)
|
|
174
|
+
core_results_out = Markdown(core_results_md)
|
|
175
|
+
core_info_md = (
|
|
176
|
+
f"* Start Time: {start_time}\n* Engine Name: {engine_name}\n* GUID: {action_guid}\n"
|
|
177
|
+
f"* Request Type: {request_type}\n"
|
|
178
|
+
f"* Process Name: {process_name}\n"
|
|
179
|
+
f"---\n"
|
|
180
|
+
f"* Request Parameters: \n{request_parameters_md}\n"
|
|
181
|
+
)
|
|
182
|
+
core_info_out = Markdown(core_info_md)
|
|
174
183
|
table.add_row(
|
|
175
184
|
requested_time,
|
|
176
|
-
|
|
177
|
-
action_guid,
|
|
178
|
-
engine_name,
|
|
179
|
-
request_type,
|
|
180
|
-
action_status,
|
|
185
|
+
core_info_out,
|
|
181
186
|
target_element,
|
|
187
|
+
action_status,
|
|
182
188
|
completion_time,
|
|
183
|
-
|
|
184
|
-
completion_message,
|
|
189
|
+
core_results_out,
|
|
185
190
|
)
|
|
186
191
|
else:
|
|
187
192
|
print("Egeria integration daemon not running")
|
|
@@ -206,11 +211,9 @@ def display_engine_activity(
|
|
|
206
211
|
live.update(generate_table())
|
|
207
212
|
|
|
208
213
|
except (
|
|
209
|
-
|
|
210
|
-
PropertyServerException,
|
|
211
|
-
UserNotAuthorizedException,
|
|
214
|
+
PyegeriaException
|
|
212
215
|
) as e:
|
|
213
|
-
|
|
216
|
+
print_basic_exception(e)
|
|
214
217
|
except KeyboardInterrupt:
|
|
215
218
|
pass
|
|
216
219
|
finally:
|
|
@@ -229,13 +232,12 @@ def main_live():
|
|
|
229
232
|
|
|
230
233
|
args = parser.parse_args()
|
|
231
234
|
|
|
232
|
-
server = args.server if args.server is not None else
|
|
233
|
-
url = args.url if args.url is not None else
|
|
235
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
236
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
234
237
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
235
238
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
236
239
|
rowlimit = int(args.rowlimit) if args.rowlimit is not None else 0
|
|
237
|
-
|
|
238
|
-
display_engine_activity(
|
|
240
|
+
display_engine_activity_c(
|
|
239
241
|
rowlimit, server, url, user=userid, user_pass=user_pass, paging=False
|
|
240
242
|
)
|
|
241
243
|
|
|
@@ -252,13 +254,13 @@ def main_paging():
|
|
|
252
254
|
|
|
253
255
|
args = parser.parse_args()
|
|
254
256
|
|
|
255
|
-
server = args.server if args.server is not None else
|
|
256
|
-
url = args.url if args.url is not None else
|
|
257
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
258
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
257
259
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
258
260
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
259
261
|
rowlimit = int(args.rowlimit) if args.rowlimit is not None else 0
|
|
260
262
|
|
|
261
|
-
|
|
263
|
+
display_engine_activity_c(
|
|
262
264
|
rowlimit, server, url, user=userid, user_pass=user_pass, paging=True
|
|
263
265
|
)
|
|
264
266
|
|