mas-cli 13.24.0__tar.gz → 13.25.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.

Potentially problematic release.


This version of mas-cli might be problematic. Click here for more details.

Files changed (116) hide show
  1. {mas_cli-13.24.0 → mas_cli-13.25.0}/PKG-INFO +1 -1
  2. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/__init__.py +1 -1
  3. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/cli.py +4 -1
  4. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/app.py +88 -3
  5. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/argBuilder.py +46 -1
  6. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/argParser.py +104 -0
  7. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/params.py +15 -0
  8. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/additionalConfigs.py +4 -0
  9. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/db2Settings.py +32 -9
  10. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/summarizer.py +25 -0
  11. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/ibm-mas-tekton.yaml +1408 -551
  12. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/upgrade/app.py +1 -0
  13. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas_cli.egg-info/PKG-INFO +1 -1
  14. {mas_cli-13.24.0 → mas_cli-13.25.0}/MANIFEST.in +0 -0
  15. {mas_cli-13.24.0 → mas_cli-13.25.0}/README.rst +0 -0
  16. {mas_cli-13.24.0 → mas_cli-13.25.0}/pyproject.toml +0 -0
  17. {mas_cli-13.24.0 → mas_cli-13.25.0}/setup.cfg +0 -0
  18. {mas_cli-13.24.0 → mas_cli-13.25.0}/setup.py +0 -0
  19. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/displayMixins.py +0 -0
  20. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/gencfg.py +0 -0
  21. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/__init__.py +0 -0
  22. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/catalogs.py +0 -0
  23. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/__init__.py +0 -0
  24. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/kafkaSettings.py +0 -0
  25. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/manageSettings.py +0 -0
  26. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/mongodbSettings.py +0 -0
  27. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/install/settings/turbonomicSettings.py +0 -0
  28. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/jdbccfg.yml.j2 +0 -0
  29. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-data-dictionary-assetdatadictionary.yml +0 -0
  30. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-bascfg.yml +0 -0
  31. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-coreidp.yml +0 -0
  32. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-actions.yml +0 -0
  33. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-auth.yml +0 -0
  34. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-datapower.yml +0 -0
  35. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-devops.yml +0 -0
  36. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dm.yml +0 -0
  37. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dsc.yml +0 -0
  38. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-edgeconfig.yml +0 -0
  39. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-fpl.yml +0 -0
  40. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-guardian.yml +0 -0
  41. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-iot.yml +0 -0
  42. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mbgx.yml +0 -0
  43. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mfgx.yml +0 -0
  44. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-monitor.yml +0 -0
  45. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-orgmgmt.yml +0 -0
  46. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-provision.yml +0 -0
  47. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-registry.yml +0 -0
  48. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-state.yml +0 -0
  49. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-webui.yml +0 -0
  50. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextaccelerator.yml +0 -0
  51. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextworkspace.yml +0 -0
  52. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-imagestitching.yml +0 -0
  53. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageaccelerators.yml +0 -0
  54. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageapp.yml +0 -0
  55. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageworkspace.yml +0 -0
  56. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-slackproxy.yml +0 -0
  57. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-pushnotificationcfg.yml +0 -0
  58. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-scimcfg.yml +0 -0
  59. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-slscfg.yml +0 -0
  60. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-smtpcfg.yml +0 -0
  61. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-suite.yml +0 -0
  62. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-visualinspection.yml +0 -0
  63. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-sls-licenseservice.yml +0 -0
  64. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-data-dictionary-assetdatadictionary.yml +0 -0
  65. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-bascfg.yml +0 -0
  66. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-coreidp.yml +0 -0
  67. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-actions.yml +0 -0
  68. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-auth.yml +0 -0
  69. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-datapower.yml +0 -0
  70. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-devops.yml +0 -0
  71. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dm.yml +0 -0
  72. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dsc.yml +0 -0
  73. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-edgeconfig.yml +0 -0
  74. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-fpl.yml +0 -0
  75. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-guardian.yml +0 -0
  76. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-iot.yml +0 -0
  77. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mbgx.yml +0 -0
  78. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mfgx.yml +0 -0
  79. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-monitor.yml +0 -0
  80. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-orgmgmt.yml +0 -0
  81. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-provision.yml +0 -0
  82. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-registry.yml +0 -0
  83. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-state.yml +0 -0
  84. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-webui.yml +0 -0
  85. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextaccelerator.yml +0 -0
  86. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextworkspace.yml +0 -0
  87. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-imagestitching.yml +0 -0
  88. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageaccelerators.yml +0 -0
  89. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageapp.yml +0 -0
  90. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageworkspace.yml +0 -0
  91. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-slackproxy.yml +0 -0
  92. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-pushnotificationcfg.yml +0 -0
  93. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-scimcfg.yml +0 -0
  94. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-slscfg.yml +0 -0
  95. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-smtpcfg.yml +0 -0
  96. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-suite.yml +0 -0
  97. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-visualinspection.yml +0 -0
  98. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-sls-licenseservice.yml +0 -0
  99. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/templates/suite_mongocfg.yml.j2 +0 -0
  100. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/uninstall/__init__.py +0 -0
  101. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/uninstall/app.py +0 -0
  102. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/uninstall/argParser.py +0 -0
  103. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/update/__init__.py +0 -0
  104. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/update/app.py +0 -0
  105. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/update/argParser.py +0 -0
  106. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/upgrade/__init__.py +0 -0
  107. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/upgrade/argParser.py +0 -0
  108. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/upgrade/settings/__init__.py +0 -0
  109. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas/cli/validators.py +0 -0
  110. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas-cli +0 -0
  111. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas_cli.egg-info/SOURCES.txt +0 -0
  112. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas_cli.egg-info/dependency_links.txt +0 -0
  113. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas_cli.egg-info/requires.txt +0 -0
  114. {mas_cli-13.24.0 → mas_cli-13.25.0}/src/mas_cli.egg-info/top_level.txt +0 -0
  115. {mas_cli-13.24.0 → mas_cli-13.25.0}/test/test_help.py +0 -0
  116. {mas_cli-13.24.0 → mas_cli-13.25.0}/test/test_install.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mas-cli
3
- Version: 13.24.0
3
+ Version: 13.25.0
4
4
  Summary: Python Admin CLI for Maximo Application Suite
5
5
  Home-page: https://github.com/ibm-mas/cli
6
6
  Author: David Parker
@@ -8,4 +8,4 @@
8
8
  #
9
9
  # *****************************************************************************
10
10
 
11
- __version__ = "13.24.0" # Python module compatible semver
11
+ __version__ = "13.25.0" # Python module compatible semver
@@ -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.24.0"
120
+ self.version = "13.25.0"
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 getCurrentCatalog, getDefaultStorageClasses
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 = {
@@ -644,7 +649,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
644
649
  self.configAppChannel("predict")
645
650
 
646
651
  # 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 not self.getParam("mas_channel").startswith("8."):
652
+ if isVersionEqualOrAfter('9.0.0', self.getParam("mas_channel")):
648
653
  self.installAssist = self.yesOrNo("Install Assist")
649
654
  if self.installAssist:
650
655
  self.configAppChannel("assist")
@@ -663,6 +668,13 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
663
668
  if self.installAiBroker:
664
669
  self.configAppChannel("aibroker")
665
670
 
671
+ if isVersionEqualOrAfter('9.1.0', self.getParam("mas_channel")) and self.getParam("mas_channel") != '9.1.x-feature':
672
+ self.installFacilities = self.yesOrNo("Install Real Estate and Facilities")
673
+ if self.installFacilities:
674
+ self.configAppChannel("facilities")
675
+ else:
676
+ self.installFacilities = False
677
+
666
678
  @logMethodCall
667
679
  def configAppChannel(self, appId):
668
680
  versions = self.getCompatibleVersions(self.params["mas_channel"], appId)
@@ -756,6 +768,71 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
756
768
  self.promptForString("IBM Cloud API Key", "cos_apikey", isPassword=True)
757
769
  self.promptForString("IBM Cloud Resource Group", "cos_resourcegroup")
758
770
 
771
+ @logMethodCall
772
+ # TODO: Fix type for storage sizes and max conn pool size
773
+ def facilitiesSettings(self) -> None:
774
+ if self.installFacilities:
775
+ self.printH1("Configure Maximo Real Estate and Facilities")
776
+ self.printDescription([
777
+ "Real Estate and Facilities custom configurations"
778
+ ])
779
+ self.printDescription([
780
+ "Maximo Real Estate and Facilities Size:",
781
+ " 1. Small",
782
+ " 2. Medium",
783
+ " 3. Large"
784
+ ])
785
+ self.promptForListSelect("Select the size:", ["small", "medium", "large"], "mas_ws_facilities_size")
786
+
787
+ if self.showAdvancedOptions:
788
+ if self.yesOrNo("Supply extra XML tags for Real Estate and Facilities server.xml"):
789
+ self.promptForString("Real Estate and Facilities Liberty Extension Secret Name", "mas_ws_facilities_liberty_extension_XML")
790
+ if self.yesOrNo("Supply custom AES Encryption Password"):
791
+ self.promptForString("Real Estate and Facilities AES Vault Secret Name", "mas_ws_facilities_vault_secret")
792
+
793
+ self.promptForString("Set Real Estate and Facilities Routes Timeout:", "mas_ws_facilities_routes_timeout", default="600s")
794
+ # self.promptForInt("Set Facilities maximum connection poll size:", default=200)
795
+
796
+ self.printDescription(["Real Estate and Facilities Persistent Volume Storage Configuration"])
797
+ defaultStorageClasses = getDefaultStorageClasses(self.dynamicClient)
798
+ notUseAutodetectedStorageClasses = False
799
+ if defaultStorageClasses.provider is not None:
800
+ self.storageClassProvider = defaultStorageClasses.provider
801
+ print_formatted_text(HTML(f"<MediumSeaGreen>Storage provider auto-detected: {defaultStorageClasses.providerName}</MediumSeaGreen>"))
802
+ print_formatted_text(HTML(f"<LightSlateGrey> - Storage class (ReadWriteMany): {defaultStorageClasses.rwx}</LightSlateGrey>"))
803
+ print_formatted_text(HTML(f"<LightSlateGrey> - Storage class (ReadWriteOnce): {defaultStorageClasses.rwo}</LightSlateGrey>"))
804
+ if self.yesOrNo("Use the auto-detected storage classes"):
805
+ self.printDescription([
806
+ "Storage Mode for Userfiles PVC:",
807
+ " 1. ReadWriteMany",
808
+ " 2. ReadWriteOnce"
809
+ ])
810
+ storageMode = self.promptForListSelect("Select the storage mode for user files PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_userfiles_mode", default=1)
811
+ _ = self.setParam("mas_ws_facilities_storage_userfiles_class", defaultStorageClasses.rwx) if storageMode == "ReadWriteMany" else self.setParam("mas_ws_facilities_storage_userfiles_class", defaultStorageClasses.rwo)
812
+ # self.promptForInt("User file PVC size (Gb):", "mas_ws_facilities_storage_userfiles_size", default=50)
813
+ storageMode = self.promptForListSelect("Select the storage mode for log PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_log_mode", default=1)
814
+ _ = self.setParam("mas_ws_facilities_storage_log_class", defaultStorageClasses.rwx) if storageMode == "ReadWriteMany" else self.setParam("mas_ws_facilities_storage_log_class", defaultStorageClasses.rwo)
815
+ # self.promptForInt("Log PVC size (Gb):", "mas_ws_facilities_storage_log_size", default=30)
816
+ else:
817
+ notUseAutodetectedStorageClasses = True
818
+ if defaultStorageClasses.provider is None or notUseAutodetectedStorageClasses:
819
+ for storageClass in getStorageClasses(self.dynamicClient):
820
+ print_formatted_text(HTML(f"<LightSlateGrey> - {storageClass.metadata.name}</LightSlateGrey>"))
821
+ self.promptForString("Select storage class for user files PVC:", "mas_ws_facilities_storage_userfiles_class")
822
+ self.promptForString("Select storage class for log PVC:", "mas_ws_facilities_storage_log_class")
823
+ self.printDescription([
824
+ "Storage Mode for Userfiles PVC:",
825
+ " 1. ReadWriteMany",
826
+ " 2. ReadWriteOnce"
827
+ ])
828
+ self.promptForListSelect("Select the storage mode for user files PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_userfiles_mode", default=1)
829
+ self.promptForListSelect("Select the storage mode for log PVC:", ["ReadWriteMany", "ReadWriteOnce"], "mas_ws_facilities_storage_log_mode", default=1)
830
+ # self.promptForInt("User file PVC size (Gb):", "mas_ws_facilities_storage_userfiles_size", default=50)
831
+ # self.promptForInt("Log PVC size (Gb):", "mas_ws_facilities_storage_log_size", default=30)
832
+
833
+ if self.yesOrNo("Supply configuration for dedicated workflow agents"):
834
+ self.promptForString("Dedicated Workflow Agent JSON:")
835
+
759
836
  @logMethodCall
760
837
  def chooseInstallFlavour(self) -> None:
761
838
  self.printH1("Choose Install Mode")
@@ -773,6 +850,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
773
850
  " - Enable optional Maximo Manage integration Cognos Analytics and Watson Studio Local",
774
851
  " - Enable optional Maximo Predict integration with SPSS",
775
852
  " - Enable optional IBM Turbonomic integration",
853
+ " - Enable optional Real Estate and Facilities configurations",
776
854
  " - Customize Db2 node affinity and tolerations, memory, cpu, and storage settings (when using the IBM Db2 Universal Operator)",
777
855
  " - Choose alternative Apache Kafka providers (default to Strimzi)",
778
856
  " - Customize Grafana storage settings"
@@ -819,6 +897,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
819
897
  self.predictSettings()
820
898
  self.assistSettings()
821
899
  self.aibrokerSettings()
900
+ self.facilitiesSettings()
822
901
 
823
902
  # Dependencies
824
903
  self.configMongoDb()
@@ -849,6 +928,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
849
928
  self.installInspection = False
850
929
  self.installOptimizer = False
851
930
  self.installAiBroker = False
931
+ self.installFacilities = False
852
932
  self.deployCP4D = False
853
933
  self.db2SetAffinity = False
854
934
  self.db2SetTolerations = False
@@ -862,7 +942,8 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
862
942
  "approval_monitor": {"id": "app-cfg-monitor"}, # After Monitor workspace has been configured
863
943
  "approval_optimizer": {"id": "app-cfg-optimizer"}, # After Optimizer workspace has been configured
864
944
  "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
945
+ "approval_visualinspection": {"id": "app-cfg-visualinspection"}, # After Visual Inspection workspace has been configured
946
+ "approval_facilities": {"id": "app-cfg-facilities"}, # After Facilities workspace has been configured 
866
947
  }
867
948
 
868
949
  self.configGrafana()
@@ -956,6 +1037,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
956
1037
  elif key == "optimizer_plan":
957
1038
  if value is not None and value != "":
958
1039
  self.setParam("mas_app_plan_optimizer", value)
1040
+ elif key == "facilities_channel":
1041
+ if value is not None and value != "":
1042
+ self.setParam("mas_app_channel_facilities", value)
1043
+ self.installFacilities = True
959
1044
 
960
1045
  # Manage advanced settings that need extra processing
961
1046
  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 Manage is being installed, we have nothing to do
25
- if not self.installIoT and not self.installManage:
26
- if not silentMode:
27
- print_formatted_text("No applications have been selected that require a Db2 installation")
28
- self.setParam("db2_action_system", "none")
29
- self.setParam("db2_action_manage", "none")
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 Manage, and on amd64 target architecture
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, &amp; 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, &amp; 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()