mas-cli 13.24.0__tar.gz → 13.25.1__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.
Potentially problematic release.
This version of mas-cli might be problematic. Click here for more details.
- {mas_cli-13.24.0 → mas_cli-13.25.1}/PKG-INFO +1 -1
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/__init__.py +1 -1
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/cli.py +4 -1
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/app.py +93 -7
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/argBuilder.py +46 -1
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/argParser.py +104 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/params.py +15 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/additionalConfigs.py +4 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/db2Settings.py +32 -9
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/summarizer.py +25 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/ibm-mas-tekton.yaml +1408 -551
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/upgrade/app.py +1 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas_cli.egg-info/PKG-INFO +1 -1
- {mas_cli-13.24.0 → mas_cli-13.25.1}/MANIFEST.in +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/README.rst +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/pyproject.toml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/setup.cfg +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/setup.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/displayMixins.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/gencfg.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/__init__.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/catalogs.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/__init__.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/kafkaSettings.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/manageSettings.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/mongodbSettings.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/install/settings/turbonomicSettings.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/jdbccfg.yml.j2 +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-data-dictionary-assetdatadictionary.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-bascfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-coreidp.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-actions.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-auth.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-datapower.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-devops.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dm.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dsc.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-edgeconfig.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-fpl.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-guardian.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-iot.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mbgx.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mfgx.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-monitor.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-orgmgmt.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-provision.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-registry.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-state.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-webui.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextaccelerator.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextworkspace.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-imagestitching.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageaccelerators.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageapp.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageworkspace.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-slackproxy.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-pushnotificationcfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-scimcfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-slscfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-smtpcfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-suite.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-visualinspection.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/best-effort/ibm-sls-licenseservice.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-data-dictionary-assetdatadictionary.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-bascfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-coreidp.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-actions.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-auth.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-datapower.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-devops.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dm.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dsc.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-edgeconfig.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-fpl.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-guardian.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-iot.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mbgx.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mfgx.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-monitor.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-orgmgmt.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-provision.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-registry.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-state.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-webui.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextaccelerator.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextworkspace.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-imagestitching.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageaccelerators.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageapp.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageworkspace.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-slackproxy.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-pushnotificationcfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-scimcfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-slscfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-smtpcfg.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-suite.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-visualinspection.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/pod-templates/guaranteed/ibm-sls-licenseservice.yml +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/templates/suite_mongocfg.yml.j2 +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/uninstall/__init__.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/uninstall/app.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/uninstall/argParser.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/update/__init__.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/update/app.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/update/argParser.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/upgrade/__init__.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/upgrade/argParser.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/upgrade/settings/__init__.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas/cli/validators.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas-cli +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas_cli.egg-info/SOURCES.txt +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas_cli.egg-info/dependency_links.txt +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas_cli.egg-info/requires.txt +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/src/mas_cli.egg-info/top_level.txt +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/test/test_help.py +0 -0
- {mas_cli-13.24.0 → mas_cli-13.25.1}/test/test_install.py +0 -0
|
@@ -117,7 +117,7 @@ class BaseApp(PrintMixin, PromptMixin):
|
|
|
117
117
|
logging.getLogger('asyncio').setLevel(logging.INFO)
|
|
118
118
|
|
|
119
119
|
# Supports extended semver, unlike mas.cli.__version__
|
|
120
|
-
self.version = "13.
|
|
120
|
+
self.version = "13.25.1"
|
|
121
121
|
self.h1count = 0
|
|
122
122
|
self.h2count = 0
|
|
123
123
|
|
|
@@ -145,6 +145,9 @@ class BaseApp(PrintMixin, PromptMixin):
|
|
|
145
145
|
self.architecture = None
|
|
146
146
|
|
|
147
147
|
self.compatibilityMatrix = {
|
|
148
|
+
"9.1.x": {
|
|
149
|
+
"facilities": ["9.1.x"]
|
|
150
|
+
},
|
|
148
151
|
"9.1.x-feature": {
|
|
149
152
|
"assist": ["9.0.x"],
|
|
150
153
|
"iot": ["9.0.x"],
|
|
@@ -44,7 +44,11 @@ from mas.cli.validators import (
|
|
|
44
44
|
)
|
|
45
45
|
|
|
46
46
|
from mas.devops.ocp import createNamespace, getStorageClasses
|
|
47
|
-
from mas.devops.mas import
|
|
47
|
+
from mas.devops.mas import (
|
|
48
|
+
getCurrentCatalog,
|
|
49
|
+
getDefaultStorageClasses,
|
|
50
|
+
isVersionEqualOrAfter
|
|
51
|
+
)
|
|
48
52
|
from mas.devops.sls import findSLSByNamespace
|
|
49
53
|
from mas.devops.data import getCatalog
|
|
50
54
|
from mas.devops.tekton import (
|
|
@@ -175,6 +179,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
175
179
|
"Optimizer": "mas_optimizer_version",
|
|
176
180
|
"Predict": "mas_predict_version",
|
|
177
181
|
"Inspection": "mas_visualinspection_version",
|
|
182
|
+
"Facilities": "mas_facilities_version",
|
|
178
183
|
}
|
|
179
184
|
else:
|
|
180
185
|
applications = {
|
|
@@ -194,11 +199,12 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
194
199
|
# Generate catalogTable
|
|
195
200
|
for application, key in applications.items():
|
|
196
201
|
# Add 9.1-feature channel based off 9.0 to those apps that have not onboarded yet
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
202
|
+
if key in self.chosenCatalog:
|
|
203
|
+
tempChosenCatalog = self.chosenCatalog[key].copy()
|
|
204
|
+
if '9.1.x-feature' not in tempChosenCatalog:
|
|
205
|
+
tempChosenCatalog.update({"9.1.x-feature": tempChosenCatalog["9.0.x"]})
|
|
200
206
|
|
|
201
|
-
|
|
207
|
+
self.catalogTable.append({"": application} | {key.replace(".x", ""): value for key, value in sorted(tempChosenCatalog.items(), reverse=True)})
|
|
202
208
|
|
|
203
209
|
if self.architecture == "s390x" or self.architecture == "ppc64le":
|
|
204
210
|
summary = [
|
|
@@ -644,7 +650,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
644
650
|
self.configAppChannel("predict")
|
|
645
651
|
|
|
646
652
|
# Assist is only installable on MAS 9.0.x due to withdrawal of support for Watson Discovery in our managed dependency stack and the inability of Assist 8.x to support this
|
|
647
|
-
if
|
|
653
|
+
if isVersionEqualOrAfter('9.0.0', self.getParam("mas_channel")):
|
|
648
654
|
self.installAssist = self.yesOrNo("Install Assist")
|
|
649
655
|
if self.installAssist:
|
|
650
656
|
self.configAppChannel("assist")
|
|
@@ -663,6 +669,13 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
663
669
|
if self.installAiBroker:
|
|
664
670
|
self.configAppChannel("aibroker")
|
|
665
671
|
|
|
672
|
+
if isVersionEqualOrAfter('9.1.0', self.getParam("mas_channel")) and self.getParam("mas_channel") != '9.1.x-feature':
|
|
673
|
+
self.installFacilities = self.yesOrNo("Install Real Estate and Facilities")
|
|
674
|
+
if self.installFacilities:
|
|
675
|
+
self.configAppChannel("facilities")
|
|
676
|
+
else:
|
|
677
|
+
self.installFacilities = False
|
|
678
|
+
|
|
666
679
|
@logMethodCall
|
|
667
680
|
def configAppChannel(self, appId):
|
|
668
681
|
versions = self.getCompatibleVersions(self.params["mas_channel"], appId)
|
|
@@ -756,6 +769,71 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
756
769
|
self.promptForString("IBM Cloud API Key", "cos_apikey", isPassword=True)
|
|
757
770
|
self.promptForString("IBM Cloud Resource Group", "cos_resourcegroup")
|
|
758
771
|
|
|
772
|
+
@logMethodCall
|
|
773
|
+
# TODO: Fix type for storage sizes and max conn pool size
|
|
774
|
+
def facilitiesSettings(self) -> None:
|
|
775
|
+
if self.installFacilities:
|
|
776
|
+
self.printH1("Configure Maximo Real Estate and Facilities")
|
|
777
|
+
self.printDescription([
|
|
778
|
+
"Real Estate and Facilities custom configurations"
|
|
779
|
+
])
|
|
780
|
+
self.printDescription([
|
|
781
|
+
"Maximo Real Estate and Facilities Size:",
|
|
782
|
+
" 1. Small",
|
|
783
|
+
" 2. Medium",
|
|
784
|
+
" 3. Large"
|
|
785
|
+
])
|
|
786
|
+
self.promptForListSelect("Select the size:", ["small", "medium", "large"], "mas_ws_facilities_size")
|
|
787
|
+
|
|
788
|
+
if self.showAdvancedOptions:
|
|
789
|
+
if self.yesOrNo("Supply extra XML tags for Real Estate and Facilities server.xml"):
|
|
790
|
+
self.promptForString("Real Estate and Facilities Liberty Extension Secret Name", "mas_ws_facilities_liberty_extension_XML")
|
|
791
|
+
if self.yesOrNo("Supply custom AES Encryption Password"):
|
|
792
|
+
self.promptForString("Real Estate and Facilities AES Vault Secret Name", "mas_ws_facilities_vault_secret")
|
|
793
|
+
|
|
794
|
+
self.promptForString("Set Real Estate and Facilities Routes Timeout:", "mas_ws_facilities_routes_timeout", default="600s")
|
|
795
|
+
# self.promptForInt("Set Facilities maximum connection poll size:", default=200)
|
|
796
|
+
|
|
797
|
+
self.printDescription(["Real Estate and Facilities Persistent Volume Storage Configuration"])
|
|
798
|
+
defaultStorageClasses = getDefaultStorageClasses(self.dynamicClient)
|
|
799
|
+
notUseAutodetectedStorageClasses = False
|
|
800
|
+
if defaultStorageClasses.provider is not None:
|
|
801
|
+
self.storageClassProvider = defaultStorageClasses.provider
|
|
802
|
+
print_formatted_text(HTML(f"<MediumSeaGreen>Storage provider auto-detected: {defaultStorageClasses.providerName}</MediumSeaGreen>"))
|
|
803
|
+
print_formatted_text(HTML(f"<LightSlateGrey> - Storage class (ReadWriteMany): {defaultStorageClasses.rwx}</LightSlateGrey>"))
|
|
804
|
+
print_formatted_text(HTML(f"<LightSlateGrey> - Storage class (ReadWriteOnce): {defaultStorageClasses.rwo}</LightSlateGrey>"))
|
|
805
|
+
if self.yesOrNo("Use the auto-detected storage classes"):
|
|
806
|
+
self.printDescription([
|
|
807
|
+
"Storage Mode for Userfiles PVC:",
|
|
808
|
+
" 1. ReadWriteMany",
|
|
809
|
+
" 2. ReadWriteOnce"
|
|
810
|
+
])
|
|
811
|
+
storageMode = self.promptForListSelect("Select the storage mode for user files PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_userfiles_mode", default=1)
|
|
812
|
+
_ = self.setParam("mas_ws_facilities_storage_userfiles_class", defaultStorageClasses.rwx) if storageMode == "ReadWriteMany" else self.setParam("mas_ws_facilities_storage_userfiles_class", defaultStorageClasses.rwo)
|
|
813
|
+
# self.promptForInt("User file PVC size (Gb):", "mas_ws_facilities_storage_userfiles_size", default=50)
|
|
814
|
+
storageMode = self.promptForListSelect("Select the storage mode for log PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_log_mode", default=1)
|
|
815
|
+
_ = self.setParam("mas_ws_facilities_storage_log_class", defaultStorageClasses.rwx) if storageMode == "ReadWriteMany" else self.setParam("mas_ws_facilities_storage_log_class", defaultStorageClasses.rwo)
|
|
816
|
+
# self.promptForInt("Log PVC size (Gb):", "mas_ws_facilities_storage_log_size", default=30)
|
|
817
|
+
else:
|
|
818
|
+
notUseAutodetectedStorageClasses = True
|
|
819
|
+
if defaultStorageClasses.provider is None or notUseAutodetectedStorageClasses:
|
|
820
|
+
for storageClass in getStorageClasses(self.dynamicClient):
|
|
821
|
+
print_formatted_text(HTML(f"<LightSlateGrey> - {storageClass.metadata.name}</LightSlateGrey>"))
|
|
822
|
+
self.promptForString("Select storage class for user files PVC:", "mas_ws_facilities_storage_userfiles_class")
|
|
823
|
+
self.promptForString("Select storage class for log PVC:", "mas_ws_facilities_storage_log_class")
|
|
824
|
+
self.printDescription([
|
|
825
|
+
"Storage Mode for Userfiles PVC:",
|
|
826
|
+
" 1. ReadWriteMany",
|
|
827
|
+
" 2. ReadWriteOnce"
|
|
828
|
+
])
|
|
829
|
+
self.promptForListSelect("Select the storage mode for user files PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_userfiles_mode", default=1)
|
|
830
|
+
self.promptForListSelect("Select the storage mode for log PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_log_mode", default=1)
|
|
831
|
+
# self.promptForInt("User file PVC size (Gb):", "mas_ws_facilities_storage_userfiles_size", default=50)
|
|
832
|
+
# self.promptForInt("Log PVC size (Gb):", "mas_ws_facilities_storage_log_size", default=30)
|
|
833
|
+
|
|
834
|
+
if self.yesOrNo("Supply configuration for dedicated workflow agents"):
|
|
835
|
+
self.promptForString("Dedicated Workflow Agent JSON:")
|
|
836
|
+
|
|
759
837
|
@logMethodCall
|
|
760
838
|
def chooseInstallFlavour(self) -> None:
|
|
761
839
|
self.printH1("Choose Install Mode")
|
|
@@ -773,6 +851,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
773
851
|
" - Enable optional Maximo Manage integration Cognos Analytics and Watson Studio Local",
|
|
774
852
|
" - Enable optional Maximo Predict integration with SPSS",
|
|
775
853
|
" - Enable optional IBM Turbonomic integration",
|
|
854
|
+
" - Enable optional Real Estate and Facilities configurations",
|
|
776
855
|
" - Customize Db2 node affinity and tolerations, memory, cpu, and storage settings (when using the IBM Db2 Universal Operator)",
|
|
777
856
|
" - Choose alternative Apache Kafka providers (default to Strimzi)",
|
|
778
857
|
" - Customize Grafana storage settings"
|
|
@@ -819,6 +898,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
819
898
|
self.predictSettings()
|
|
820
899
|
self.assistSettings()
|
|
821
900
|
self.aibrokerSettings()
|
|
901
|
+
self.facilitiesSettings()
|
|
822
902
|
|
|
823
903
|
# Dependencies
|
|
824
904
|
self.configMongoDb()
|
|
@@ -849,6 +929,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
849
929
|
self.installInspection = False
|
|
850
930
|
self.installOptimizer = False
|
|
851
931
|
self.installAiBroker = False
|
|
932
|
+
self.installFacilities = False
|
|
852
933
|
self.deployCP4D = False
|
|
853
934
|
self.db2SetAffinity = False
|
|
854
935
|
self.db2SetTolerations = False
|
|
@@ -862,7 +943,8 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
862
943
|
"approval_monitor": {"id": "app-cfg-monitor"}, # After Monitor workspace has been configured
|
|
863
944
|
"approval_optimizer": {"id": "app-cfg-optimizer"}, # After Optimizer workspace has been configured
|
|
864
945
|
"approval_predict": {"id": "app-cfg-predict"}, # After Predict workspace has been configured
|
|
865
|
-
"approval_visualinspection": {"id": "app-cfg-visualinspection"} # After Visual Inspection workspace has been configured
|
|
946
|
+
"approval_visualinspection": {"id": "app-cfg-visualinspection"}, # After Visual Inspection workspace has been configured
|
|
947
|
+
"approval_facilities": {"id": "app-cfg-facilities"}, # After Facilities workspace has been configured
|
|
866
948
|
}
|
|
867
949
|
|
|
868
950
|
self.configGrafana()
|
|
@@ -956,6 +1038,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
|
|
|
956
1038
|
elif key == "optimizer_plan":
|
|
957
1039
|
if value is not None and value != "":
|
|
958
1040
|
self.setParam("mas_app_plan_optimizer", value)
|
|
1041
|
+
elif key == "facilities_channel":
|
|
1042
|
+
if value is not None and value != "":
|
|
1043
|
+
self.setParam("mas_app_channel_facilities", value)
|
|
1044
|
+
self.installFacilities = True
|
|
959
1045
|
|
|
960
1046
|
# Manage advanced settings that need extra processing
|
|
961
1047
|
elif key == "mas_app_settings_server_bundle_size":
|
|
@@ -171,6 +171,8 @@ class installArgBuilderMixin():
|
|
|
171
171
|
command += f" --predict-channel \"{self.getParam('mas_app_channel_predict')}\"{newline}"
|
|
172
172
|
if self.installInspection:
|
|
173
173
|
command += f" --visualinspection-channel \"{self.getParam('mas_app_channel_visualinspection')}\"{newline}"
|
|
174
|
+
if self.installFacilities:
|
|
175
|
+
command += f" --facilities-channel \"{self.getParam('mas_app_channel_facilities')}\"{newline}"
|
|
174
176
|
|
|
175
177
|
# Arcgis
|
|
176
178
|
# -----------------------------------------------------------------------------
|
|
@@ -235,6 +237,45 @@ class installArgBuilderMixin():
|
|
|
235
237
|
if self.getParam('mas_appws_bindings_health_wsl_flag') == "true":
|
|
236
238
|
command += f" --manage-health-wsl{newline}"
|
|
237
239
|
|
|
240
|
+
# Facilities Advanced Settings
|
|
241
|
+
# -----------------------------------------------------------------------------
|
|
242
|
+
# TODO: Fix type for storage sizes and max conn pool size
|
|
243
|
+
if self.installFacilities:
|
|
244
|
+
if self.getParam('mas_ws_facilities_size') != "":
|
|
245
|
+
command += f" --facilities-size \"{self.getParam('mas_ws_facilities_size')}\"{newline}"
|
|
246
|
+
|
|
247
|
+
if self.getParam('mas_ws_facilities_pull_policy') != "":
|
|
248
|
+
command += f" --facilities-pull-policy \"{self.getParam('mas_ws_facilities_pull_policy')}\"{newline}"
|
|
249
|
+
|
|
250
|
+
if self.getParam('mas_ws_facilities_routes_timeout') != "":
|
|
251
|
+
command += f" --facilities-routes-timeout \"{self.getParam('mas_ws_facilities_routes_timeout')}\"{newline}"
|
|
252
|
+
|
|
253
|
+
if self.getParam('mas_ws_facilities_liberty_extension_XML') != "":
|
|
254
|
+
command += f" --facilities-xml-extension \"{self.getParam('mas_ws_facilities_liberty_extension_XML')}\"{newline}"
|
|
255
|
+
|
|
256
|
+
if self.getParam('mas_ws_facilities_vault_secret') != "":
|
|
257
|
+
command += f" --facilities-vault-secret \"{self.getParam('mas_ws_facilities_vault_secret')}\"{newline}"
|
|
258
|
+
|
|
259
|
+
# if self.getParam('mas_ws_facilities_dwfagents') != "":
|
|
260
|
+
# command += f" --facilities-dwfagent \"{self.getParam('mas_ws_facilities_dwfagents')}\"{newline}"
|
|
261
|
+
|
|
262
|
+
# if self.getParam('mas_ws_facilities_db_maxconnpoolsize') != "":
|
|
263
|
+
# command += f" --facilities-maxconnpoolsize \"{self.getParam('mas_ws_facilities_db_maxconnpoolsize')}\"{newline}"
|
|
264
|
+
|
|
265
|
+
if self.getParam('mas_ws_facilities_storage_log_class') != "":
|
|
266
|
+
command += f" --facilities-log-storage-class \"{self.getParam('mas_ws_facilities_storage_log_class')}\"{newline}"
|
|
267
|
+
if self.getParam('mas_ws_facilities_storage_log_mode') != "":
|
|
268
|
+
command += f" --facilities-log-storage-mode \"{self.getParam('mas_ws_facilities_storage_log_mode')}\"{newline}"
|
|
269
|
+
# if self.getParam('mas_ws_facilities_storage_log_size') != "":
|
|
270
|
+
# command += f" --facilities-log-storage-size \"{self.getParam('mas_ws_facilities_storage_log_size')}\"{newline}"
|
|
271
|
+
|
|
272
|
+
if self.getParam('mas_ws_facilities_storage_userfiles_class') != "":
|
|
273
|
+
command += f" --facilities-userfiles-storage-class \"{self.getParam('mas_ws_facilities_storage_userfiles_class')}\"{newline}"
|
|
274
|
+
if self.getParam('mas_ws_facilities_storage_userfiles_mode') != "":
|
|
275
|
+
command += f" --facilities-userfiles-storage-mode \"{self.getParam('mas_ws_facilities_storage_userfiles_mode')}\"{newline}"
|
|
276
|
+
# if self.getParam('mas_ws_facilities_storage_userfiles_size') != "":
|
|
277
|
+
# command += f" --facilities-userfiles-storage-size \"{self.getParam('mas_ws_facilities_storage_userfiles_size')}\"{newline}"
|
|
278
|
+
|
|
238
279
|
# IBM Cloud Pak for Data
|
|
239
280
|
# -----------------------------------------------------------------------------
|
|
240
281
|
if self.getParam('cpd_product_version') != "":
|
|
@@ -253,11 +294,13 @@ class installArgBuilderMixin():
|
|
|
253
294
|
|
|
254
295
|
# IBM Db2 Universal Operator
|
|
255
296
|
# -----------------------------------------------------------------------------
|
|
256
|
-
if self.getParam('db2_action_system') == "install" or self.getParam('db2_action_manage') == "install":
|
|
297
|
+
if self.getParam('db2_action_system') == "install" or self.getParam('db2_action_manage') == "install" or self.getParam('db2_action_facilities') == "install":
|
|
257
298
|
if self.getParam('db2_action_system') == "install":
|
|
258
299
|
command += f" --db2-system{newline}"
|
|
259
300
|
if self.getParam('db2_action_manage') == "install":
|
|
260
301
|
command += f" --db2-manage{newline}"
|
|
302
|
+
if self.getParam('db2_action_facilities') == "install":
|
|
303
|
+
command += f" --db2-facilities{newline}"
|
|
261
304
|
|
|
262
305
|
if self.getParam('db2_channel') != "":
|
|
263
306
|
command += f" --db2-channel \"{self.getParam('db2_channel')}\"{newline}"
|
|
@@ -398,6 +441,8 @@ class installArgBuilderMixin():
|
|
|
398
441
|
command += f" --approval-predict \"{self.getParam('approval_predict')}\"{newline}"
|
|
399
442
|
if self.getParam('approval_visualinspection') != "":
|
|
400
443
|
command += f" --approval-visualinspection \"{self.getParam('approval_visualinspection')}\"{newline}"
|
|
444
|
+
if self.getParam('approval_facilities') != "":
|
|
445
|
+
command += f" --approval-facilities \"{self.getParam('approval_facilities')}\"{newline}"
|
|
401
446
|
|
|
402
447
|
# More Options
|
|
403
448
|
# -----------------------------------------------------------------------------
|
|
@@ -378,6 +378,11 @@ masAppsArgGroup.add_argument(
|
|
|
378
378
|
required=False,
|
|
379
379
|
help="Subscription channel for Maximo Ai Broker"
|
|
380
380
|
)
|
|
381
|
+
masAppsArgGroup.add_argument(
|
|
382
|
+
"--facilities-channel",
|
|
383
|
+
required=False,
|
|
384
|
+
help="Subscription channel for Maximo Real Estate and Facilities"
|
|
385
|
+
)
|
|
381
386
|
|
|
382
387
|
# AI Broker
|
|
383
388
|
# -----------------------------------------------------------------------------
|
|
@@ -704,6 +709,92 @@ manageArgGroup.add_argument(
|
|
|
704
709
|
choices=["cr", "db"]
|
|
705
710
|
)
|
|
706
711
|
|
|
712
|
+
# Facilities Advanced Settings
|
|
713
|
+
# TODO: Fix type for storage sizes and max conn pool size
|
|
714
|
+
facilitiesArgGroup = installArgParser.add_argument_group("Facilities Advanced Configuration")
|
|
715
|
+
facilitiesArgGroup.add_argument(
|
|
716
|
+
"--facilities-size",
|
|
717
|
+
dest="mas_ws_facilities_size",
|
|
718
|
+
required=False,
|
|
719
|
+
help="Defines the size of Facilities deployment",
|
|
720
|
+
choices=['small', 'medium', 'large'],
|
|
721
|
+
)
|
|
722
|
+
facilitiesArgGroup.add_argument(
|
|
723
|
+
"--facilities-pull-policy",
|
|
724
|
+
dest="mas_ws_facilities_pull_policy",
|
|
725
|
+
required=False,
|
|
726
|
+
help="Defines the pull policy for the images",
|
|
727
|
+
choices=["IfNotPresent", "Always"],
|
|
728
|
+
)
|
|
729
|
+
facilitiesArgGroup.add_argument(
|
|
730
|
+
"--facilities-routes-timeout",
|
|
731
|
+
dest="mas_ws_facilities_routes_timeout",
|
|
732
|
+
required=False,
|
|
733
|
+
help="Defines the timeout for the routes",
|
|
734
|
+
default="600s",
|
|
735
|
+
)
|
|
736
|
+
facilitiesArgGroup.add_argument(
|
|
737
|
+
"--facilities-xml-extension",
|
|
738
|
+
dest="mas_ws_facilities_liberty_extension_XML",
|
|
739
|
+
required=False,
|
|
740
|
+
help="Defines the name of the secret that holds the extensions for Liberty server",
|
|
741
|
+
)
|
|
742
|
+
facilitiesArgGroup.add_argument(
|
|
743
|
+
"--facilities-vault-secret",
|
|
744
|
+
dest="mas_ws_facilities_vault_secret",
|
|
745
|
+
required=False,
|
|
746
|
+
help="Defines the name of the secret that holds the AES Encryption password",
|
|
747
|
+
)
|
|
748
|
+
# facilitiesArgGroup.add_argument(
|
|
749
|
+
# "--facilities-dwfagent",
|
|
750
|
+
# dest="mas_ws_facilities_dwfagents",
|
|
751
|
+
# required=False,
|
|
752
|
+
# help="Defines the list of dedicates workflow agents",
|
|
753
|
+
# )
|
|
754
|
+
# facilitiesArgGroup.add_argument(
|
|
755
|
+
# "--facilities-maxconnpoolsize",
|
|
756
|
+
# dest="mas_ws_facilities_db_maxconnpoolsize",
|
|
757
|
+
# required=False,
|
|
758
|
+
# help="Defines the maximum connection pool size",
|
|
759
|
+
# default=200,
|
|
760
|
+
# )
|
|
761
|
+
facilitiesArgGroup.add_argument(
|
|
762
|
+
"--facilities-log-storage-class",
|
|
763
|
+
dest="mas_ws_facilities_storage_log_class",
|
|
764
|
+
required=False,
|
|
765
|
+
help="Defines the log storage class",
|
|
766
|
+
)
|
|
767
|
+
facilitiesArgGroup.add_argument(
|
|
768
|
+
"--facilities-log-storage-mode",
|
|
769
|
+
dest="mas_ws_facilities_storage_log_mode",
|
|
770
|
+
required=False,
|
|
771
|
+
help="Defines the log storage mode",
|
|
772
|
+
)
|
|
773
|
+
# facilitiesArgGroup.add_argument(
|
|
774
|
+
# "--facilities-log-storage-size",
|
|
775
|
+
# dest="mas_ws_facilities_storage_log_size",
|
|
776
|
+
# required=False,
|
|
777
|
+
# help="Defines the logs storage size",
|
|
778
|
+
# )
|
|
779
|
+
facilitiesArgGroup.add_argument(
|
|
780
|
+
"--facilities-userfiles-storage-class",
|
|
781
|
+
dest="mas_ws_facilities_storage_userfiles_class",
|
|
782
|
+
required=False,
|
|
783
|
+
help="Defines the user files storage class",
|
|
784
|
+
)
|
|
785
|
+
facilitiesArgGroup.add_argument(
|
|
786
|
+
"--facilities-userfiles-storage-mode",
|
|
787
|
+
dest="mas_ws_facilities_storage_userfiles_mode",
|
|
788
|
+
required=False,
|
|
789
|
+
help="Defines the user files storage mode",
|
|
790
|
+
)
|
|
791
|
+
# facilitiesArgGroup.add_argument(
|
|
792
|
+
# "--facilities-userfiles-storage-size",
|
|
793
|
+
# dest="mas_ws_facilities_storage_userfiles_size",
|
|
794
|
+
# required=False,
|
|
795
|
+
# help="Defines the user files storage size",
|
|
796
|
+
# )
|
|
797
|
+
|
|
707
798
|
# IBM Cloud Pak for Data
|
|
708
799
|
# -----------------------------------------------------------------------------
|
|
709
800
|
cpdAppsArgGroup = installArgParser.add_argument_group("IBM Cloud Pak for Data")
|
|
@@ -783,6 +874,14 @@ db2ArgGroup.add_argument(
|
|
|
783
874
|
action="store_const",
|
|
784
875
|
const="install"
|
|
785
876
|
)
|
|
877
|
+
db2ArgGroup.add_argument(
|
|
878
|
+
"--db2-facilities",
|
|
879
|
+
dest="db2_action_facilities",
|
|
880
|
+
required=False,
|
|
881
|
+
help="Install a dedicated Db2u instance for Maximo Real Estate and Facilities (supported by Facilities)",
|
|
882
|
+
action="store_const",
|
|
883
|
+
const="install"
|
|
884
|
+
)
|
|
786
885
|
db2ArgGroup.add_argument(
|
|
787
886
|
"--db2-type",
|
|
788
887
|
required=False,
|
|
@@ -1132,6 +1231,11 @@ approvalsGroup.add_argument(
|
|
|
1132
1231
|
default="",
|
|
1133
1232
|
help="Require approval after the Maximo Visual Inspection workspace has been configured"
|
|
1134
1233
|
)
|
|
1234
|
+
approvalsGroup.add_argument(
|
|
1235
|
+
"--approval-facilities",
|
|
1236
|
+
default="",
|
|
1237
|
+
help="Require approval after the Maximo Real Estate and Facilities workspace has been configured"
|
|
1238
|
+
)
|
|
1135
1239
|
|
|
1136
1240
|
|
|
1137
1241
|
# More Options
|
|
@@ -78,6 +78,7 @@ optionalParams = [
|
|
|
78
78
|
# Db2
|
|
79
79
|
"db2_action_system",
|
|
80
80
|
"db2_action_manage",
|
|
81
|
+
"db2_action_facilities",
|
|
81
82
|
"db2_type",
|
|
82
83
|
"db2_timezone",
|
|
83
84
|
"db2_namespace",
|
|
@@ -175,6 +176,20 @@ optionalParams = [
|
|
|
175
176
|
"mas_aibroker_db_secret_name",
|
|
176
177
|
"mas_aibroker_db_secret_key",
|
|
177
178
|
"mas_aibroker_db_secret_value",
|
|
179
|
+
# Facilities
|
|
180
|
+
"mas_ws_facilities_size",
|
|
181
|
+
"mas_ws_facilities_routes_timeout",
|
|
182
|
+
"mas_ws_facilities_liberty_extension_XML",
|
|
183
|
+
"mas_ws_facilities_vault_secret",
|
|
184
|
+
"mas_ws_facilities_pull_policy",
|
|
185
|
+
"mas_ws_facilities_storage_log_class",
|
|
186
|
+
"mas_ws_facilities_storage_log_mode",
|
|
187
|
+
# "mas_ws_facilities_storage_log_size",
|
|
188
|
+
"mas_ws_facilities_storage_userfiles_class",
|
|
189
|
+
"mas_ws_facilities_storage_userfiles_mode",
|
|
190
|
+
# "mas_ws_facilities_storage_userfiles_size",
|
|
191
|
+
# "mas_ws_facilities_dwfagents",
|
|
192
|
+
# "mas_ws_facilities_db_maxconnpoolsize",
|
|
178
193
|
# Special chars
|
|
179
194
|
"mas_special_characters"
|
|
180
195
|
]
|
|
@@ -163,6 +163,10 @@ class AdditionalConfigsMixin():
|
|
|
163
163
|
"mas_app_channel_optimizer": {
|
|
164
164
|
"dir": self.manualCertsDir + "/optimizer/",
|
|
165
165
|
"keyPrefix": "optimizer."
|
|
166
|
+
},
|
|
167
|
+
"mas_app_channel_facilities": {
|
|
168
|
+
"dir": self.manualCertsDir + "/facilities/",
|
|
169
|
+
"keyPrefix": "facilities."
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
172
|
|
|
@@ -21,12 +21,12 @@ class Db2SettingsMixin():
|
|
|
21
21
|
# The channel used for Db2 used has not changed since the January 2024 catalog update
|
|
22
22
|
self.params["db2_channel"] = "v110509.0"
|
|
23
23
|
|
|
24
|
-
# If neither Iot or
|
|
25
|
-
if not self.installIoT and not self.installManage:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
# If neither Iot, Manage or Facilities is being installed, we have nothing to do
|
|
25
|
+
if not self.installIoT and not self.installManage and not self.installFacilities:
|
|
26
|
+
print_formatted_text("No applications have been selected that require a Db2 installation")
|
|
27
|
+
self.setParam("db2_action_system", "none")
|
|
28
|
+
self.setParam("db2_action_manage", "none")
|
|
29
|
+
self.setParam("db2_action_facilities", "none")
|
|
30
30
|
return
|
|
31
31
|
|
|
32
32
|
# For now we are limiting users to bring your own database for Manage on s390x & ppc64le
|
|
@@ -55,10 +55,10 @@ class Db2SettingsMixin():
|
|
|
55
55
|
return
|
|
56
56
|
|
|
57
57
|
# Proceed as normal
|
|
58
|
-
# We know we are installing either IoT or
|
|
58
|
+
# We know we are installing either IoT, Manage or Facilities, and on amd64 target architecture
|
|
59
59
|
if not silentMode:
|
|
60
60
|
self.printDescription([
|
|
61
|
-
f"The installer can setup one or more IBM Db2 instances in your OpenShift cluster for the use of applications that require a JDBC datasource (IoT, {self.manageAppName}, Monitor, & Predict) or you may choose to configure MAS to use an existing database"
|
|
61
|
+
f"The installer can setup one or more IBM Db2 instances in your OpenShift cluster for the use of applications that require a JDBC datasource (IoT, {self.manageAppName}, Monitor, & Predict, Real Estate and Facilities) or you may choose to configure MAS to use an existing database"
|
|
62
62
|
])
|
|
63
63
|
|
|
64
64
|
self.setDB2DefaultSettings()
|
|
@@ -146,8 +146,31 @@ class Db2SettingsMixin():
|
|
|
146
146
|
else:
|
|
147
147
|
self.setParam("db2_action_manage", "none")
|
|
148
148
|
|
|
149
|
+
# Do we need to create and configure a Db2 for Facilities ?
|
|
150
|
+
if self.installFacilities:
|
|
151
|
+
self.printH2("Database Configuration for Maximo Real Estate and Facilities")
|
|
152
|
+
if self.yesOrNo("Create Real Estate and Facilities dedicated Db2 instance using the IBM Db2 Universal Operator"):
|
|
153
|
+
self.setParam("db2_action_facilities", "install")
|
|
154
|
+
else:
|
|
155
|
+
self.setParam("db2_action_facilities", "none")
|
|
156
|
+
instanceId = self.getParam('mas_instance_id')
|
|
157
|
+
workspaceId = self.getParam("mas_workspace_id")
|
|
158
|
+
self.selectLocalConfigDir()
|
|
159
|
+
|
|
160
|
+
# Check if a configuration already exists before creating a new one
|
|
161
|
+
jdbcCfgFile = path.join(self.localConfigDir, f"jdbc-{instanceId}-facilities.yaml")
|
|
162
|
+
print_formatted_text(f"Searching for Real Estate and Facilities database configuration file in {jdbcCfgFile} ...")
|
|
163
|
+
if path.exists(jdbcCfgFile):
|
|
164
|
+
if self.yesOrNo(f"Real Estate and Facilities database configuration file 'jdbc-{instanceId}-facilities.yaml' already exists. Do you want to generate a new one"):
|
|
165
|
+
self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="facilities", destination=jdbcCfgFile)
|
|
166
|
+
else:
|
|
167
|
+
print_formatted_text(f"Expected file ({jdbcCfgFile}) was not found, generating a valid Real Estate and Facilities database configuration file now ...")
|
|
168
|
+
self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="facilities", destination=jdbcCfgFile)
|
|
169
|
+
else:
|
|
170
|
+
self.setParam("db2_action_facilities", "none")
|
|
171
|
+
|
|
149
172
|
# Do we need to configure Db2u?
|
|
150
|
-
if self.getParam("db2_action_system") == "install" or self.getParam("db2_action_manage") == "install":
|
|
173
|
+
if self.getParam("db2_action_system") == "install" or self.getParam("db2_action_manage") == "install" or self.getParam("db2_action_facilities") == "install":
|
|
151
174
|
if self.showAdvancedOptions:
|
|
152
175
|
self.printH2("Installation Namespace")
|
|
153
176
|
self.promptForString("Install namespace", "db2_namespace", default="db2u")
|
|
@@ -217,6 +217,30 @@ class InstallSummarizerMixin():
|
|
|
217
217
|
else:
|
|
218
218
|
self.printSummary("Manage", "Do Not Install")
|
|
219
219
|
|
|
220
|
+
def facilitiesSummary(self) -> None:
|
|
221
|
+
# TODO: Fix type for storage sizes and max conn pool size
|
|
222
|
+
if self.installFacilities:
|
|
223
|
+
self.printSummary("Facilities", self.params["mas_app_channel_facilities"])
|
|
224
|
+
print_formatted_text(HTML(" <SkyBlue>+ Maximo Real Estate and Facilities Settings</SkyBlue>"))
|
|
225
|
+
self.printParamSummary(" + Size", "mas_ws_facilities_size")
|
|
226
|
+
self.printParamSummary(" + Routes Timeout", "mas_ws_facilities_routes_timeout")
|
|
227
|
+
self.printParamSummary(" + XML Extension", "mas_ws_facilities_liberty_extension_XML")
|
|
228
|
+
self.printParamSummary(" + AES vault secret name", "mas_ws_facilities_vault_secret")
|
|
229
|
+
# self.printParamSummary(" + Dedicated Workflow Agents", "mas_ws_facilities_dwfagents")
|
|
230
|
+
# self.printParamSummary(" + Maximum pool size connection ", "mas_ws_facilities_db_maxconnpoolsize")
|
|
231
|
+
self.printParamSummary(" + Log Storage Class ", "mas_ws_facilities_storage_log_class")
|
|
232
|
+
self.printParamSummary(" + Log Storage Mode", "mas_ws_facilities_storage_log_mode")
|
|
233
|
+
# self.printParamSummary(" + Log Storage Size", "mas_ws_facilities_storage_log_size")
|
|
234
|
+
self.printParamSummary(" + Userfiles Storage Class ", "mas_ws_facilities_storage_userfiles_class")
|
|
235
|
+
self.printParamSummary(" + User files Storage Mode", "mas_ws_facilities_storage_userfiles_mode")
|
|
236
|
+
# self.printParamSummary(" + User files Storage Size", "mas_ws_facilities_storage_userfiles_size")
|
|
237
|
+
if self.getParam("db2_action_facilities") == 'none':
|
|
238
|
+
self.printParamSummary(" + Dedicated DB2 Database", "No")
|
|
239
|
+
else:
|
|
240
|
+
self.printParamSummary(" + Dedicated DB2 Database", "db2_action_facilities")
|
|
241
|
+
else:
|
|
242
|
+
self.printSummary("Facilities", "Do Not Install")
|
|
243
|
+
|
|
220
244
|
def db2Summary(self) -> None:
|
|
221
245
|
if self.getParam("db2_action_system") == "install" or self.getParam("db2_action_manage") == "install":
|
|
222
246
|
self.printH2("IBM Db2 Univeral Operator Configuration")
|
|
@@ -379,6 +403,7 @@ class InstallSummarizerMixin():
|
|
|
379
403
|
self.assistSummary()
|
|
380
404
|
self.inspectionSummary()
|
|
381
405
|
self.aibrokerSummary()
|
|
406
|
+
self.facilitiesSummary()
|
|
382
407
|
|
|
383
408
|
# Application Dependencies
|
|
384
409
|
self.mongoSummary()
|