mas-cli 21.0.0__tar.gz → 21.2.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-21.0.0/src/mas_cli.egg-info → mas_cli-21.2.0}/PKG-INFO +1 -1
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/__init__.py +1 -1
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/cli.py +1 -1
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/app.py +30 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/kafkaSettings.py +40 -3
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/ibm-mas-tekton.yaml +409 -211
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/upgrade/app.py +70 -3
- {mas_cli-21.0.0 → mas_cli-21.2.0/src/mas_cli.egg-info}/PKG-INFO +1 -1
- {mas_cli-21.0.0 → mas_cli-21.2.0}/MANIFEST.in +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/README.md +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/pyproject.toml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/setup.cfg +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/setup.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/install/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/install/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/install/argBuilder.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/install/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/install/params.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/install/summarizer.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/upgrade/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/upgrade/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/aiservice/upgrade/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/backup/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/backup/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/backup/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/displayMixins.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/gencfg.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/argBuilder.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/catalogs.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/params.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/additionalConfigs.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/aiSettings.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/db2Settings.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/manageSettings.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/settings/mongodbSettings.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/install/summarizer.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/mirror/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/mirror/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/mirror/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/mirror/config.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/pre_install/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/pre_install/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/pre_install/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/restore/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/restore/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/restore/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/setup_rbac/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/setup_rbac/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/setup_rbac/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/aicfg.yml.j2 +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/facilities-configs.yml.j2 +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/jdbccfg.yml.j2 +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-data-dictionary-assetdatadictionary.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-bascfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-coreidp.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-actions.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-auth.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-datapower.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-devops.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dm.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dsc.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-edgeconfig.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-fpl.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-guardian.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-iot.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mbgx.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mfgx.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-monitor.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-orgmgmt.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-provision.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-registry.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-state.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-webui.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextaccelerator.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextworkspace.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-imagestitching.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageaccelerators.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageapp.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageworkspace.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-slackproxy.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-pushnotificationcfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-scimcfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-slscfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-smtpcfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-suite.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-visualinspection.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-sls-licenseservice.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-data-dictionary-assetdatadictionary.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-bascfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-coreidp.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-actions.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-auth.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-datapower.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-devops.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dm.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dsc.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-edgeconfig.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-fpl.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-guardian.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-iot.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mbgx.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mfgx.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-monitor.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-orgmgmt.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-provision.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-registry.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-state.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-webui.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextaccelerator.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextworkspace.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-imagestitching.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageaccelerators.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageapp.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageworkspace.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-slackproxy.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-pushnotificationcfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-scimcfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-slscfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-smtpcfg.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-suite.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-visualinspection.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-sls-licenseservice.yml +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/templates/suite_mongocfg.yml.j2 +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/uninstall/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/uninstall/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/uninstall/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/update/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/update/app.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/update/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/upgrade/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/upgrade/argParser.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/upgrade/settings/__init__.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas/cli/validators.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas-cli +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas_cli.egg-info/SOURCES.txt +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas_cli.egg-info/dependency_links.txt +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas_cli.egg-info/requires.txt +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/src/mas_cli.egg-info/top_level.txt +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/test/test_baseapp.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/test/test_help.py +0 -0
- {mas_cli-21.0.0 → mas_cli-21.2.0}/test/test_slack_params.py +0 -0
|
@@ -120,7 +120,7 @@ class BaseApp(PrintMixin, PromptMixin):
|
|
|
120
120
|
logging.getLogger('asyncio').setLevel(logging.INFO)
|
|
121
121
|
|
|
122
122
|
# Supports extended semver, unlike mas.cli.__version__
|
|
123
|
-
self.version: str = "21.
|
|
123
|
+
self.version: str = "21.2.0"
|
|
124
124
|
self.h1count: int = 0
|
|
125
125
|
self.h2count: int = 0
|
|
126
126
|
|
|
@@ -2150,6 +2150,36 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
2150
2150
|
if not hasKafkaConfig:
|
|
2151
2151
|
self.fatalError("--iot-channel requires Kafka configuration. Provide Kafka install arguments such as --kafka-provider, or supply a BYO Kafka config file named kafka-<mas-instance-id>-system.yaml using --additional-configs")
|
|
2152
2152
|
|
|
2153
|
+
# Validate Kafka requirements for CIVIL installation in non-interactive mode
|
|
2154
|
+
isCivilEnabled = self.installManage and "civil=" in self.getParam("mas_appws_components")
|
|
2155
|
+
if isCivilEnabled:
|
|
2156
|
+
manageChannel = self.getParam("mas_app_channel_manage")
|
|
2157
|
+
if manageChannel and isVersionEqualOrAfter('9.2.0', manageChannel):
|
|
2158
|
+
kafkaAction = self.getParam("kafka_action_system")
|
|
2159
|
+
hasKafkaConfig = kafkaAction in ["install", "byo"]
|
|
2160
|
+
if not hasKafkaConfig:
|
|
2161
|
+
# Warn user but give option to proceed (Civil will work, but Defect Detection won't)
|
|
2162
|
+
print_formatted_text(HTML("<Yellow>⚠ Warning: Kafka Configuration Required</Yellow>"))
|
|
2163
|
+
print_formatted_text(HTML(
|
|
2164
|
+
f"<LightSlateGrey>Installing Manage {manageChannel} with Civil Infrastructure component "
|
|
2165
|
+
"requires Kafka configuration. Civil versions >= 9.2.0 require a shared system-scope Kafka instance.</LightSlateGrey>"
|
|
2166
|
+
))
|
|
2167
|
+
print_formatted_text(HTML(
|
|
2168
|
+
"<LightSlateGrey>Without Kafka, the Defect Detection functionality will not work.</LightSlateGrey>"
|
|
2169
|
+
))
|
|
2170
|
+
print()
|
|
2171
|
+
|
|
2172
|
+
if self.noConfirm:
|
|
2173
|
+
# In non-interactive mode, log warning and proceed
|
|
2174
|
+
logger.warning(
|
|
2175
|
+
f"Installing Manage {manageChannel} with Civil component without Kafka configuration. "
|
|
2176
|
+
"Defect Detection functionality will not work."
|
|
2177
|
+
)
|
|
2178
|
+
else:
|
|
2179
|
+
# In interactive mode, ask user if they want to proceed
|
|
2180
|
+
if not self.yesOrNo("Do you want to proceed with the installation without Kafka? (Defect Detection functionality will not work)"):
|
|
2181
|
+
self.fatalError("Installation cancelled. Please configure Kafka before installing.")
|
|
2182
|
+
|
|
2153
2183
|
@logMethodCall
|
|
2154
2184
|
def install(self, argv):
|
|
2155
2185
|
"""
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
from typing import TYPE_CHECKING, Dict, List, NoReturn
|
|
12
12
|
from os import path
|
|
13
13
|
from prompt_toolkit import print_formatted_text
|
|
14
|
+
from mas.devops.utils import isVersionEqualOrAfter
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
if TYPE_CHECKING:
|
|
@@ -23,6 +24,7 @@ class KafkaSettingsMixin():
|
|
|
23
24
|
# Attributes from BaseApp and other mixins
|
|
24
25
|
params: Dict[str, str]
|
|
25
26
|
installIoT: bool
|
|
27
|
+
installManage: bool
|
|
26
28
|
showAdvancedOptions: bool
|
|
27
29
|
localConfigDir: str | None
|
|
28
30
|
|
|
@@ -71,14 +73,49 @@ class KafkaSettingsMixin():
|
|
|
71
73
|
def selectLocalConfigDir(self) -> None:
|
|
72
74
|
...
|
|
73
75
|
|
|
76
|
+
def _requiresKafkaIoT(self) -> bool:
|
|
77
|
+
return self.installIoT
|
|
78
|
+
|
|
79
|
+
def _requiresKafkaCivil(self) -> bool:
|
|
80
|
+
isCivilEnabled = self.installManage and "civil=" in self.getParam("mas_appws_components")
|
|
81
|
+
if isCivilEnabled:
|
|
82
|
+
manageChannel = self.getParam("mas_app_channel_manage")
|
|
83
|
+
if manageChannel and isVersionEqualOrAfter('9.2.0', manageChannel):
|
|
84
|
+
return True
|
|
85
|
+
return False
|
|
86
|
+
|
|
87
|
+
def _getKafkaRequirements(self) -> List[str]:
|
|
88
|
+
requirements = []
|
|
89
|
+
if self._requiresKafkaIoT():
|
|
90
|
+
requirements.append("Maximo IoT")
|
|
91
|
+
if self._requiresKafkaCivil():
|
|
92
|
+
requirements.append("Manage Civil Infrastructure (9.2+) Defect Detection")
|
|
93
|
+
return requirements
|
|
94
|
+
|
|
74
95
|
def configKafka(self) -> None:
|
|
75
|
-
|
|
96
|
+
requirements = self._getKafkaRequirements()
|
|
97
|
+
|
|
98
|
+
if requirements:
|
|
76
99
|
self.printH1("Configure Kafka")
|
|
77
|
-
|
|
78
|
-
|
|
100
|
+
|
|
101
|
+
# Build description based on what requires Kafka
|
|
102
|
+
hasIoT = self._requiresKafkaIoT()
|
|
103
|
+
hasCivil = self._requiresKafkaCivil()
|
|
104
|
+
|
|
105
|
+
description = []
|
|
106
|
+
if hasIoT and hasCivil:
|
|
107
|
+
description.append("Maximo IoT and Manage Civil Infrastructure (9.2+) Defect Detection require a shared system-scope Kafka instance")
|
|
108
|
+
elif hasIoT:
|
|
109
|
+
description.append("Maximo IoT requires a shared system-scope Kafka instance")
|
|
110
|
+
elif hasCivil:
|
|
111
|
+
description.append("Manage Civil Infrastructure (9.2+) Defect Detection functionality requires a shared system-scope Kafka instance")
|
|
112
|
+
|
|
113
|
+
description.extend([
|
|
79
114
|
"Supported Kafka providers: Strimzi, Red Hat AMQ Streams, IBM Cloud Event Streams and AWS MSK",
|
|
80
115
|
"You may also choose to configure MAS to use an existing Kafka instance by providing a pre-existing configuration file"
|
|
81
116
|
])
|
|
117
|
+
|
|
118
|
+
self.printDescription(description)
|
|
82
119
|
if self.yesOrNo("Create system Kafka instance using one of the supported providers"):
|
|
83
120
|
self.setParam("kafka_action_system", "install")
|
|
84
121
|
|