mas-cli 23.7.2__tar.gz → 23.9.0__tar.gz
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.
- {mas_cli-23.7.2/python/src/mas_cli.egg-info → mas_cli-23.9.0}/PKG-INFO +1 -1
- {mas_cli-23.7.2 → mas_cli-23.9.0}/README.md +1 -1
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/__init__.py +1 -1
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/install/app.py +8 -18
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/cli.py +1 -1
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/app.py +11 -17
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/catalogs.py +3 -3
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/apps.py +3 -0
- mas_cli-23.9.0/python/src/mas/cli/must_gather/mas/facilities.py +185 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/ibm-mas-tekton.yaml +158 -139
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/update/app.py +3 -3
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/upgrade/app.py +50 -7
- {mas_cli-23.7.2 → mas_cli-23.9.0/python/src/mas_cli.egg-info}/PKG-INFO +1 -1
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas_cli.egg-info/SOURCES.txt +1 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/LICENSE +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/pyproject.toml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/README.md +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/__main__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/install/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/install/argBuilder.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/install/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/install/params.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/install/summarizer.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/upgrade/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/upgrade/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/aiservice/upgrade/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/backup/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/backup/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/backup/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/displayMixins.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/gencfg.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/argBuilder.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/facilities/agents.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/params.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/additionalConfigs.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/aiSettings.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/db2Settings.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/kafkaSettings.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/manageSettings.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/settings/mongodbSettings.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/install/summarizer.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/mirror/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/mirror/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/mirror/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/mirror/config.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/aiservice/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/aiservice/instance.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/aiservice/pipelines.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/aiservice/tenant.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/arg_parser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/argo/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/argo/applications.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/collection_plan.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/coreapi.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/crd_processor.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/parallel.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/pod_exec.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/pods.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/reconcile_logs.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/resources.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/secrets.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/task_generation.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/common/thread_safe_client.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/amlen.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/cert_manager.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/cp4d.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/db2.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/grafana.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/kafka.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/mongodb.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/rhoai.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/sls.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/dependencies/utils.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/core.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/licensing.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/manage.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/network_tests.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/pipelines.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/mas/version.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/ocp/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/ocp/airgap.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/ocp/cluster.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/ocp/marketplace.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/ocp/nodes.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/output.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/parallel_executor.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/summarizer/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/summarizer/licensing.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/summarizer/nodes.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/summarizer/subscriptions.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/summarizer/suite.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/timer.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/web_viewer/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/web_viewer/__main__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/must_gather/web_viewer/templates/viewer.html +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/pre_install/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/pre_install/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/pre_install/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/rbac_utils.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/restore/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/restore/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/restore/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/setup_rbac/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/setup_rbac/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/setup_rbac/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/aicfg.yml.j2 +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/facilities-configs.yml.j2 +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/jdbccfg.yml.j2 +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-data-dictionary-assetdatadictionary.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-bascfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-coreidp.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-actions.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-auth.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-datapower.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-devops.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dm.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dsc.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-edgeconfig.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-fpl.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-guardian.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-iot.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mbgx.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mfgx.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-monitor.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-orgmgmt.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-provision.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-registry.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-state.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-webui.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextaccelerator.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextworkspace.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-imagestitching.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageaccelerators.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageapp.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageworkspace.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-slackproxy.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-pushnotificationcfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-scimcfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-slscfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-smtpcfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-suite.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-visualinspection.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/best-effort/ibm-sls-licenseservice.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-data-dictionary-assetdatadictionary.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-bascfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-coreidp.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-actions.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-auth.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-datapower.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-devops.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dm.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dsc.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-edgeconfig.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-fpl.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-guardian.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-iot.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mbgx.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mfgx.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-monitor.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-orgmgmt.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-provision.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-registry.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-state.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-webui.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextaccelerator.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextworkspace.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-imagestitching.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageaccelerators.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageapp.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageworkspace.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-slackproxy.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-pushnotificationcfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-scimcfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-slscfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-smtpcfg.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-suite.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-visualinspection.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/pod-templates/guaranteed/ibm-sls-licenseservice.yml +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/templates/suite_mongocfg.yml.j2 +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/uninstall/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/uninstall/app.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/uninstall/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/update/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/update/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/upgrade/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/upgrade/argParser.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/upgrade/settings/__init__.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas/cli/validators.py +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas_cli.egg-info/dependency_links.txt +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas_cli.egg-info/entry_points.txt +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas_cli.egg-info/requires.txt +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/python/src/mas_cli.egg-info/top_level.txt +0 -0
- {mas_cli-23.7.2 → mas_cli-23.9.0}/setup.cfg +0 -0
|
@@ -19,4 +19,4 @@ Want to contribute to MAS Command Line Interface?
|
|
|
19
19
|
--------------------------------------------------------------------------------
|
|
20
20
|
We welcome every Maximo Application Suite users, developers and enthusiasts to contribute to the MAS Command Line Interface while fixing code issues and implementing new automated functionalities.
|
|
21
21
|
|
|
22
|
-
You can contribute to this collection by raising [a new issue](https://github.com/ibm-mas/cli/issues) with suggestions on how to make our MAS automation engine even better, or if you want to become a new code contributor, please refer to the [Contributing Guidelines](CONTRIBUTING.md) and learn more about how to get started.
|
|
22
|
+
You can contribute to this collection by raising [a new issue](https://github.com/ibm-mas/cli/issues) with suggestions on how to make our MAS automation engine even better, or if you want to become a new code contributor, please refer to the [Contributing Guidelines](CONTRIBUTING.md) and learn more about how to get started.
|
|
@@ -313,14 +313,14 @@ class AiServiceInstallApp(BaseApp, aiServiceInstallArgBuilderMixin, aiServiceIns
|
|
|
313
313
|
self.setParam("environment_type", "production")
|
|
314
314
|
self.setParam("aiservice_odh_model_deployment_type", "raw")
|
|
315
315
|
self.setParam("aiservice_rhoai_model_deployment_type", "raw")
|
|
316
|
-
self.setParam("rhoai", "
|
|
316
|
+
self.setParam("rhoai", "true")
|
|
317
317
|
else:
|
|
318
318
|
self.operationalMode = 2
|
|
319
319
|
self.setParam("mas_annotations", "mas.ibm.com/operationalMode=nonproduction")
|
|
320
320
|
self.setParam("environment_type", "non-production")
|
|
321
321
|
self.setParam("aiservice_odh_model_deployment_type", "serverless")
|
|
322
322
|
self.setParam("aiservice_rhoai_model_deployment_type", "serverless")
|
|
323
|
-
self.setParam("rhoai", "
|
|
323
|
+
self.setParam("rhoai", "true")
|
|
324
324
|
|
|
325
325
|
elif key == "additional_configs":
|
|
326
326
|
self.localConfigDir = value
|
|
@@ -673,23 +673,13 @@ class AiServiceInstallApp(BaseApp, aiServiceInstallArgBuilderMixin, aiServiceIns
|
|
|
673
673
|
self.promptForString("Storage tenants bucket", "aiservice_s3_tenants_bucket")
|
|
674
674
|
self.promptForString("Storage templates bucket", "aiservice_s3_templates_bucket")
|
|
675
675
|
|
|
676
|
-
#
|
|
677
|
-
self.
|
|
678
|
-
self.
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
" - <b>Note for 9.2.x</b>: Red Hat OpenShift AI (RHOAI) is the recommended platform for AI Service 9.2.x",
|
|
683
|
-
"",
|
|
684
|
-
" 1. Red Hat OpenShift AI (RHOAI)",
|
|
685
|
-
" 2. Open Data Hub (ODH)",
|
|
686
|
-
]
|
|
676
|
+
# AI Data Science Platform - defaults to Red Hat OpenShift AI (RHOAI)
|
|
677
|
+
self.setParam("rhoai", "true")
|
|
678
|
+
self.printWarning(
|
|
679
|
+
"Starting with AI Service 9.1.18, support for Open Data Hub (ODH) has been dropped. "
|
|
680
|
+
"Only Red Hat OpenShift AI (RHOAI) 2.25.10 or later is supported going forward. "
|
|
681
|
+
"If an existing ODH installation is detected, the installer will automatically migrate it to RHOAI."
|
|
687
682
|
)
|
|
688
|
-
platformChoice = self.promptForInt("AI Data Science Platform", default=1, min=1, max=2)
|
|
689
|
-
if platformChoice == 2:
|
|
690
|
-
self.setParam("rhoai", "false")
|
|
691
|
-
else:
|
|
692
|
-
self.setParam("rhoai", "true")
|
|
693
683
|
|
|
694
684
|
# Configure Certificate Issuer
|
|
695
685
|
self.configCertIssuer()
|
|
@@ -126,7 +126,7 @@ class BaseApp(PrintMixin, PromptMixin):
|
|
|
126
126
|
logging.getLogger("urllib3").setLevel(logging.INFO)
|
|
127
127
|
|
|
128
128
|
# Supports extended semver, unlike mas.cli.__version__
|
|
129
|
-
self.version: str = "23.
|
|
129
|
+
self.version: str = "23.9.0"
|
|
130
130
|
self.h1count: int = 0
|
|
131
131
|
self.h2count: int = 0
|
|
132
132
|
|
|
@@ -709,7 +709,7 @@ class InstallApp(
|
|
|
709
709
|
self.setParam("aiservice_odh_model_deployment_type", "serverless")
|
|
710
710
|
self.setParam("aiservice_rhoai_model_deployment_type", "serverless")
|
|
711
711
|
|
|
712
|
-
self.setParam("rhoai", "
|
|
712
|
+
self.setParam("rhoai", "true")
|
|
713
713
|
|
|
714
714
|
@logMethodCall
|
|
715
715
|
def configAdminMode(self):
|
|
@@ -1837,23 +1837,13 @@ class InstallApp(
|
|
|
1837
1837
|
self.promptForString("Storage tenants bucket", "aiservice_s3_tenants_bucket")
|
|
1838
1838
|
self.promptForString("Storage templates bucket", "aiservice_s3_templates_bucket")
|
|
1839
1839
|
|
|
1840
|
-
#
|
|
1841
|
-
self.
|
|
1842
|
-
self.
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
" - <b>Note for 9.2.x</b>: Red Hat OpenShift AI (RHOAI) is the recommended platform for AI Service 9.2.x",
|
|
1847
|
-
"",
|
|
1848
|
-
" 1. Red Hat OpenShift AI (RHOAI)",
|
|
1849
|
-
" 2. Open Data Hub (ODH)",
|
|
1850
|
-
]
|
|
1840
|
+
# AI Data Science Platform - defaults to Red Hat OpenShift AI (RHOAI)
|
|
1841
|
+
self.setParam("rhoai", "true")
|
|
1842
|
+
self.printWarning(
|
|
1843
|
+
"Starting with AI Service 9.1.18, support for Open Data Hub (ODH) has been dropped. "
|
|
1844
|
+
"Only Red Hat OpenShift AI (RHOAI) 2.25.10 or later is supported going forward. "
|
|
1845
|
+
"If an existing ODH installation is detected, the installer will automatically migrate it to RHOAI."
|
|
1851
1846
|
)
|
|
1852
|
-
platformChoice = self.promptForInt("AI Data Science Platform", default=1, min=1, max=2)
|
|
1853
|
-
if platformChoice == 2:
|
|
1854
|
-
self.setParam("rhoai", "false")
|
|
1855
|
-
else:
|
|
1856
|
-
self.setParam("rhoai", "true")
|
|
1857
1847
|
|
|
1858
1848
|
# Configure Certificate Issuer
|
|
1859
1849
|
self.configAIServiceCertIssuer()
|
|
@@ -2196,11 +2186,15 @@ class InstallApp(
|
|
|
2196
2186
|
self.operationalMode = 1
|
|
2197
2187
|
self.setParam("environment_type", "production")
|
|
2198
2188
|
self.setParam("aiservice_odh_model_deployment_type", "raw")
|
|
2189
|
+
self.setParam("aiservice_rhoai_model_deployment_type", "raw")
|
|
2190
|
+
self.setParam("rhoai", "true")
|
|
2199
2191
|
else:
|
|
2200
2192
|
self.operationalMode = 2
|
|
2201
2193
|
self.setParam("mas_annotations", "mas.ibm.com/operationalMode=nonproduction")
|
|
2202
2194
|
self.setParam("environment_type", "non-production")
|
|
2203
2195
|
self.setParam("aiservice_odh_model_deployment_type", "serverless")
|
|
2196
|
+
self.setParam("aiservice_rhoai_model_deployment_type", "serverless")
|
|
2197
|
+
self.setParam("rhoai", "true")
|
|
2204
2198
|
|
|
2205
2199
|
elif key == "additional_configs":
|
|
2206
2200
|
self.localConfigDir = value
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
# *****************************************************************************
|
|
10
10
|
supportedCatalogs = {
|
|
11
11
|
"amd64": [
|
|
12
|
-
"v9-
|
|
12
|
+
"v9-260827-amd64",
|
|
13
13
|
"v9-260730-amd64",
|
|
14
14
|
"v9-260625-amd64",
|
|
15
15
|
"v9-260527-amd64",
|
|
16
16
|
],
|
|
17
17
|
"s390x": [
|
|
18
|
-
"v9-
|
|
18
|
+
"v9-260827-s390x",
|
|
19
19
|
"v9-260730-s390x",
|
|
20
20
|
"v9-260625-s390x",
|
|
21
21
|
"v9-260527-s390x",
|
|
22
22
|
],
|
|
23
23
|
"ppc64le": [
|
|
24
|
-
"v9-
|
|
24
|
+
"v9-260827-ppc64le",
|
|
25
25
|
"v9-260730-ppc64le",
|
|
26
26
|
"v9-260625-ppc64le",
|
|
27
27
|
"v9-260527-ppc64le",
|
|
@@ -23,6 +23,7 @@ from kubernetes.dynamic import DynamicClient
|
|
|
23
23
|
from mas.cli.must_gather.common import generateReconcileLogsCollectionTasks
|
|
24
24
|
from mas.cli.must_gather.common.task_generation import generateNamespaceCollectionTasks
|
|
25
25
|
from .manage import collectManageNetworkTests
|
|
26
|
+
from .facilities import collectFacilitiesLogs
|
|
26
27
|
|
|
27
28
|
logger = logging.getLogger(__name__)
|
|
28
29
|
|
|
@@ -212,6 +213,8 @@ def _generateMASAppCollectionTasks(
|
|
|
212
213
|
# Add Manage-specific network connectivity test
|
|
213
214
|
if appId == "manage":
|
|
214
215
|
tasks.append(("network_tests", collectManageNetworkTests, dynClient, namespace, outputDir))
|
|
216
|
+
elif appId == "facilities":
|
|
217
|
+
tasks.append(("facilities_logs", collectFacilitiesLogs, namespace, outputDir))
|
|
215
218
|
|
|
216
219
|
return tasks
|
|
217
220
|
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# *****************************************************************************
|
|
2
|
+
# Copyright (c) 2026 IBM Corporation and other Contributors.
|
|
3
|
+
#
|
|
4
|
+
# All rights reserved. This program and the accompanying materials
|
|
5
|
+
# are made available under the terms of the Eclipse Public License v1.0
|
|
6
|
+
# which accompanies this distribution, and is available at
|
|
7
|
+
# http://www.eclipse.org/legal/epl-v10.html
|
|
8
|
+
#
|
|
9
|
+
# *****************************************************************************
|
|
10
|
+
|
|
11
|
+
"""MAS Facilities collector for must-gather.
|
|
12
|
+
|
|
13
|
+
This module provides functionality to collect Facilities-specific logs from
|
|
14
|
+
pods running in the Facilities namespace. Logs are extracted from
|
|
15
|
+
/home/wiotp/log/ inside each Facilities pod and saved to the must-gather
|
|
16
|
+
output directory.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
import logging
|
|
20
|
+
import os
|
|
21
|
+
import shutil
|
|
22
|
+
import tarfile
|
|
23
|
+
import tempfile
|
|
24
|
+
from typing import List
|
|
25
|
+
|
|
26
|
+
from kubernetes import client
|
|
27
|
+
from kubernetes.stream import stream
|
|
28
|
+
|
|
29
|
+
from mas.cli.must_gather.common.thread_safe_client import createThreadLocalDynamicClient
|
|
30
|
+
|
|
31
|
+
logger = logging.getLogger(__name__)
|
|
32
|
+
|
|
33
|
+
_FACILITIES_LOG_DIR = "/home/wiotp/log"
|
|
34
|
+
_FACILITIES_APP_TYPES = ["dwfagent", "appserver", "agent"]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _findFacilitiesLogFiles(coreV1Api: client.CoreV1Api, namespace: str, podName: str) -> List[str]:
|
|
38
|
+
"""Find log files inside a Facilities pod at /home/wiotp/log.
|
|
39
|
+
|
|
40
|
+
Executes ``find /home/wiotp/log -type f`` inside the pod and returns the
|
|
41
|
+
list of matching paths.
|
|
42
|
+
|
|
43
|
+
"""
|
|
44
|
+
try:
|
|
45
|
+
resp = stream(
|
|
46
|
+
coreV1Api.connect_get_namespaced_pod_exec,
|
|
47
|
+
podName,
|
|
48
|
+
namespace,
|
|
49
|
+
command=["find", _FACILITIES_LOG_DIR, "-type", "f"],
|
|
50
|
+
stderr=False,
|
|
51
|
+
stdin=False,
|
|
52
|
+
stdout=True,
|
|
53
|
+
tty=False,
|
|
54
|
+
)
|
|
55
|
+
if resp:
|
|
56
|
+
return [line.strip() for line in resp.strip().split("\n") if line.strip()]
|
|
57
|
+
return []
|
|
58
|
+
except Exception as e:
|
|
59
|
+
logger.warning(f"Error listing Facilities log files in pod {podName}: {e}")
|
|
60
|
+
return []
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _downloadAndExtractFacilitiesLogs(coreV1Api: client.CoreV1Api, namespace: str, podName: str, logFiles: List[str], outputDir: str) -> bool:
|
|
64
|
+
"""Stream a tar archive of Facilities log files out of the pod and extract it.
|
|
65
|
+
|
|
66
|
+
Creates a ``tar -czf -`` of the discovered log files inside the pod, streams
|
|
67
|
+
the archive to a temporary file, extracts it, and moves the files to
|
|
68
|
+
``{outputDir}/facilities-logs/{namespace}/{podName}/``.
|
|
69
|
+
|
|
70
|
+
"""
|
|
71
|
+
destDir = os.path.join(outputDir, "facilities-logs", namespace, podName)
|
|
72
|
+
os.makedirs(destDir, exist_ok=True)
|
|
73
|
+
|
|
74
|
+
tarCommand = ["tar", "-czf", "-"] + logFiles
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
with tempfile.TemporaryFile(mode="w+b") as tarBuffer:
|
|
78
|
+
try:
|
|
79
|
+
execStream = stream(
|
|
80
|
+
coreV1Api.connect_get_namespaced_pod_exec,
|
|
81
|
+
podName,
|
|
82
|
+
namespace,
|
|
83
|
+
command=tarCommand,
|
|
84
|
+
stderr=False,
|
|
85
|
+
stdin=False,
|
|
86
|
+
stdout=True,
|
|
87
|
+
tty=False,
|
|
88
|
+
_preload_content=False,
|
|
89
|
+
binary=True,
|
|
90
|
+
)
|
|
91
|
+
except Exception as e:
|
|
92
|
+
logger.warning(f"Failed to execute tar command in pod {podName}: {e}")
|
|
93
|
+
return False
|
|
94
|
+
|
|
95
|
+
try:
|
|
96
|
+
while execStream.is_open():
|
|
97
|
+
execStream.update(timeout=1)
|
|
98
|
+
if execStream.peek_stdout():
|
|
99
|
+
tarBuffer.write(execStream.read_stdout())
|
|
100
|
+
except Exception as e:
|
|
101
|
+
logger.warning(f"Error reading tar stream from pod {podName}: {e}")
|
|
102
|
+
return False
|
|
103
|
+
finally:
|
|
104
|
+
execStream.close()
|
|
105
|
+
|
|
106
|
+
tarBuffer.flush()
|
|
107
|
+
tarBuffer.seek(0)
|
|
108
|
+
|
|
109
|
+
try:
|
|
110
|
+
with tarfile.open(fileobj=tarBuffer, mode="r:gz") as tar:
|
|
111
|
+
with tempfile.TemporaryDirectory() as tmpDir:
|
|
112
|
+
try:
|
|
113
|
+
tar.extractall(path=tmpDir, filter="data")
|
|
114
|
+
except Exception as e:
|
|
115
|
+
logger.warning(f"Incomplete Facilities log archive from {podName}: {e}")
|
|
116
|
+
|
|
117
|
+
# Walk extracted tree and copy all files flat into destDir
|
|
118
|
+
for dirpath, _dirnames, filenames in os.walk(tmpDir):
|
|
119
|
+
for fname in filenames:
|
|
120
|
+
src = os.path.join(dirpath, fname)
|
|
121
|
+
dst = os.path.join(destDir, fname)
|
|
122
|
+
shutil.copy2(src, dst)
|
|
123
|
+
except tarfile.TarError as e:
|
|
124
|
+
logger.warning(f"Failed to open tar archive from pod {podName}: {e}")
|
|
125
|
+
return False
|
|
126
|
+
|
|
127
|
+
return True
|
|
128
|
+
|
|
129
|
+
except OSError as e:
|
|
130
|
+
logger.warning(f"Failed to create temporary file for Facilities tar archive: {e}")
|
|
131
|
+
return False
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def collectFacilitiesLogs(namespace: str, outputDir: str) -> bool:
|
|
135
|
+
"""Collect logs from Facilities pods at /home/wiotp/log.
|
|
136
|
+
|
|
137
|
+
Discovers pods with label ``mas.ibm.com/appType`` set to one of
|
|
138
|
+
``dwfagent``, ``appserver``, or ``agent``, finds all files inside each
|
|
139
|
+
pod's ``/home/wiotp/log/`` directory, and streams them out into
|
|
140
|
+
``{outputDir}/facilities-logs/{namespace}/{podName}/``.
|
|
141
|
+
|
|
142
|
+
"""
|
|
143
|
+
logger.info(f"Collecting Facilities logs from namespace {namespace}")
|
|
144
|
+
|
|
145
|
+
dynClient = createThreadLocalDynamicClient()
|
|
146
|
+
podApi = dynClient.resources.get(api_version="v1", kind="Pod")
|
|
147
|
+
coreV1Api = client.CoreV1Api(api_client=dynClient.client)
|
|
148
|
+
|
|
149
|
+
# Collect pods across all target appTypes, deduplicate by pod name
|
|
150
|
+
seenPods = set()
|
|
151
|
+
podsToProcess = []
|
|
152
|
+
|
|
153
|
+
for appType in _FACILITIES_APP_TYPES:
|
|
154
|
+
labelSelector = f"mas.ibm.com/appType={appType}"
|
|
155
|
+
try:
|
|
156
|
+
pods = podApi.get(namespace=namespace, label_selector=labelSelector)
|
|
157
|
+
except Exception as e:
|
|
158
|
+
logger.warning(f"Failed to list Facilities pods in {namespace} with label {labelSelector}: {e}")
|
|
159
|
+
continue
|
|
160
|
+
|
|
161
|
+
for pod in pods.items:
|
|
162
|
+
podName = pod.metadata.name
|
|
163
|
+
if podName not in seenPods:
|
|
164
|
+
seenPods.add(podName)
|
|
165
|
+
podsToProcess.append((podName, appType))
|
|
166
|
+
|
|
167
|
+
if not podsToProcess:
|
|
168
|
+
logger.debug(f"No Facilities pods found in {namespace} with appTypes {_FACILITIES_APP_TYPES}")
|
|
169
|
+
return True
|
|
170
|
+
|
|
171
|
+
for podName, appType in podsToProcess:
|
|
172
|
+
logger.debug(f" - Collecting Facilities logs from '{podName}' (appType={appType})")
|
|
173
|
+
|
|
174
|
+
logFiles = _findFacilitiesLogFiles(coreV1Api, namespace, podName)
|
|
175
|
+
if not logFiles:
|
|
176
|
+
logger.debug(f" - No log files found in {podName} at {_FACILITIES_LOG_DIR}")
|
|
177
|
+
continue
|
|
178
|
+
|
|
179
|
+
success = _downloadAndExtractFacilitiesLogs(coreV1Api, namespace, podName, logFiles, outputDir)
|
|
180
|
+
if success:
|
|
181
|
+
logger.info(f"Collected Facilities logs from {podName}")
|
|
182
|
+
else:
|
|
183
|
+
logger.warning(f"Unable to get Facilities logs from {podName}")
|
|
184
|
+
|
|
185
|
+
return True
|