mas-cli 19.6.0__tar.gz → 19.7.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.
Files changed (136) hide show
  1. {mas_cli-19.6.0 → mas_cli-19.7.0}/PKG-INFO +1 -1
  2. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/__init__.py +1 -1
  3. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/cli.py +3 -1
  4. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/app.py +18 -0
  5. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/argBuilder.py +5 -0
  6. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/argParser.py +12 -0
  7. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/settings/__init__.py +2 -1
  8. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/settings/manageSettings.py +4 -0
  9. mas_cli-19.7.0/src/mas/cli/install/settings/redisSettings.py +70 -0
  10. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/summarizer.py +8 -0
  11. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/ibm-mas-tekton.yaml +529 -221
  12. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/update/app.py +42 -0
  13. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas_cli.egg-info/PKG-INFO +1 -1
  14. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas_cli.egg-info/SOURCES.txt +1 -0
  15. {mas_cli-19.6.0 → mas_cli-19.7.0}/MANIFEST.in +0 -0
  16. {mas_cli-19.6.0 → mas_cli-19.7.0}/README.rst +0 -0
  17. {mas_cli-19.6.0 → mas_cli-19.7.0}/pyproject.toml +0 -0
  18. {mas_cli-19.6.0 → mas_cli-19.7.0}/setup.cfg +0 -0
  19. {mas_cli-19.6.0 → mas_cli-19.7.0}/setup.py +0 -0
  20. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/install/__init__.py +0 -0
  21. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/install/app.py +0 -0
  22. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/install/argBuilder.py +0 -0
  23. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/install/argParser.py +0 -0
  24. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/install/params.py +0 -0
  25. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/install/summarizer.py +0 -0
  26. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/upgrade/__init__.py +0 -0
  27. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/upgrade/app.py +0 -0
  28. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/aiservice/upgrade/argParser.py +0 -0
  29. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/backup/__init__.py +0 -0
  30. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/backup/app.py +0 -0
  31. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/backup/argParser.py +0 -0
  32. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/displayMixins.py +0 -0
  33. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/gencfg.py +0 -0
  34. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/__init__.py +0 -0
  35. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/catalogs.py +0 -0
  36. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/params.py +0 -0
  37. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/settings/additionalConfigs.py +0 -0
  38. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/settings/db2Settings.py +0 -0
  39. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/settings/kafkaSettings.py +0 -0
  40. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/install/settings/mongodbSettings.py +0 -0
  41. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/mirror/__init__.py +0 -0
  42. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/mirror/app.py +0 -0
  43. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/mirror/argParser.py +0 -0
  44. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/mirror/config.py +0 -0
  45. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/restore/__init__.py +0 -0
  46. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/restore/app.py +0 -0
  47. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/restore/argParser.py +0 -0
  48. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/facilities-configs.yml.j2 +0 -0
  49. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/jdbccfg.yml.j2 +0 -0
  50. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-data-dictionary-assetdatadictionary.yml +0 -0
  51. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-bascfg.yml +0 -0
  52. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-coreidp.yml +0 -0
  53. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-actions.yml +0 -0
  54. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-auth.yml +0 -0
  55. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-datapower.yml +0 -0
  56. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-devops.yml +0 -0
  57. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dm.yml +0 -0
  58. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-dsc.yml +0 -0
  59. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-edgeconfig.yml +0 -0
  60. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-fpl.yml +0 -0
  61. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-guardian.yml +0 -0
  62. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-iot.yml +0 -0
  63. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mbgx.yml +0 -0
  64. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-mfgx.yml +0 -0
  65. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-monitor.yml +0 -0
  66. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-orgmgmt.yml +0 -0
  67. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-provision.yml +0 -0
  68. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-registry.yml +0 -0
  69. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-state.yml +0 -0
  70. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-iot-webui.yml +0 -0
  71. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextaccelerator.yml +0 -0
  72. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-healthextworkspace.yml +0 -0
  73. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-imagestitching.yml +0 -0
  74. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageaccelerators.yml +0 -0
  75. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageapp.yml +0 -0
  76. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-manageworkspace.yml +0 -0
  77. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-manage-slackproxy.yml +0 -0
  78. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-pushnotificationcfg.yml +0 -0
  79. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-scimcfg.yml +0 -0
  80. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-slscfg.yml +0 -0
  81. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-smtpcfg.yml +0 -0
  82. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-suite.yml +0 -0
  83. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-mas-visualinspection.yml +0 -0
  84. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/best-effort/ibm-sls-licenseservice.yml +0 -0
  85. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-data-dictionary-assetdatadictionary.yml +0 -0
  86. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-bascfg.yml +0 -0
  87. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-coreidp.yml +0 -0
  88. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-actions.yml +0 -0
  89. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-auth.yml +0 -0
  90. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-datapower.yml +0 -0
  91. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-devops.yml +0 -0
  92. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dm.yml +0 -0
  93. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-dsc.yml +0 -0
  94. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-edgeconfig.yml +0 -0
  95. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-fpl.yml +0 -0
  96. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-guardian.yml +0 -0
  97. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-iot.yml +0 -0
  98. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mbgx.yml +0 -0
  99. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-mfgx.yml +0 -0
  100. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-monitor.yml +0 -0
  101. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-orgmgmt.yml +0 -0
  102. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-provision.yml +0 -0
  103. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-registry.yml +0 -0
  104. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-state.yml +0 -0
  105. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-iot-webui.yml +0 -0
  106. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextaccelerator.yml +0 -0
  107. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-healthextworkspace.yml +0 -0
  108. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-imagestitching.yml +0 -0
  109. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageaccelerators.yml +0 -0
  110. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageapp.yml +0 -0
  111. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-manageworkspace.yml +0 -0
  112. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-manage-slackproxy.yml +0 -0
  113. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-pushnotificationcfg.yml +0 -0
  114. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-scimcfg.yml +0 -0
  115. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-slscfg.yml +0 -0
  116. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-smtpcfg.yml +0 -0
  117. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-suite.yml +0 -0
  118. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-mas-visualinspection.yml +0 -0
  119. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/pod-templates/guaranteed/ibm-sls-licenseservice.yml +0 -0
  120. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/templates/suite_mongocfg.yml.j2 +0 -0
  121. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/uninstall/__init__.py +0 -0
  122. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/uninstall/app.py +0 -0
  123. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/uninstall/argParser.py +0 -0
  124. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/update/__init__.py +0 -0
  125. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/update/argParser.py +0 -0
  126. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/upgrade/__init__.py +0 -0
  127. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/upgrade/app.py +0 -0
  128. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/upgrade/argParser.py +0 -0
  129. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/upgrade/settings/__init__.py +0 -0
  130. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas/cli/validators.py +0 -0
  131. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas-cli +0 -0
  132. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas_cli.egg-info/dependency_links.txt +0 -0
  133. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas_cli.egg-info/requires.txt +0 -0
  134. {mas_cli-19.6.0 → mas_cli-19.7.0}/src/mas_cli.egg-info/top_level.txt +0 -0
  135. {mas_cli-19.6.0 → mas_cli-19.7.0}/test/test_baseapp.py +0 -0
  136. {mas_cli-19.6.0 → mas_cli-19.7.0}/test/test_help.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mas-cli
3
- Version: 19.6.0
3
+ Version: 19.7.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__ = "19.6.0" # Python module compatible semver
11
+ __version__ = "19.7.0" # Python module compatible semver
@@ -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 = "19.6.0"
123
+ self.version: str = "19.7.0"
124
124
  self.h1count: int = 0
125
125
  self.h2count: int = 0
126
126
 
@@ -153,6 +153,8 @@ class BaseApp(PrintMixin, PromptMixin):
153
153
  "manage": ["9.2.x-feature", "9.1.x"],
154
154
  "optimizer": ["9.2.x-feature", "9.1.x"],
155
155
  "visualinspection": ["9.2.x-feature", "9.1.x"],
156
+ "iot": ["9.2.x-feature", "9.1.x"],
157
+ "monitor": ["9.2.x-feature", "9.1.x"],
156
158
  },
157
159
  "9.1.x": {
158
160
  "facilities": ["9.1.x"],
@@ -846,7 +846,11 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
846
846
  if self.isSNO():
847
847
  self.setParam("mongodb_replicas", "1")
848
848
  self.setParam("mongodb_cpu_requests", "500m")
849
+ self.setParam("redis_replicas", "1")
849
850
  self.setParam("mas_app_settings_aio_flag", "false")
851
+ else:
852
+ # Multi-node cluster: use 3 replicas for Redis HA
853
+ self.setParam("redis_replicas", "3")
850
854
 
851
855
  @logMethodCall
852
856
  def configDNSAndCerts(self):
@@ -1718,6 +1722,12 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
1718
1722
  if value is not None and value != "":
1719
1723
  self.setParam(key, value)
1720
1724
  self.setParam("sls_mongodb_cfg_file", f"/workspace/configs/mongo-{value}.yml")
1725
+ # Redis
1726
+ elif key == "redis_namespace":
1727
+ if value is not None and value != "":
1728
+ self.setParam(key, value)
1729
+ self.setParam("redis_action", "install")
1730
+ self.setParam("redis_cfg_file", f"/workspace/configs/redis-{value}.yml")
1721
1731
 
1722
1732
  # SLS
1723
1733
  elif key == "license_file":
@@ -1870,6 +1880,14 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
1870
1880
  if ((self.getParam("mas_app_channel_predict") is not None and self.getParam("mas_app_channel_predict") != "") and 'health' not in self.getParam("mas_appws_components")):
1871
1881
  self.fatalError("--manage-components must include 'health' component when installing Predict")
1872
1882
 
1883
+ # Configure Redis if Collaborate addon is enabled
1884
+ if self.installManage and "collaborate=" in self.getParam("mas_appws_components"):
1885
+ logger.debug("Collaborate addon detected in mas_appws_components, configuring Redis")
1886
+ self.setParam("redis_action", "install")
1887
+ if self.getParam("redis_namespace") == "":
1888
+ self.setParam("redis_namespace", "redis")
1889
+ self.setParam("redis_cfg_file", f"/workspace/configs/redis-{self.getParam('redis_namespace')}.yml")
1890
+
1873
1891
  # Validate ArcGIS installation requirements in non-interactive mode
1874
1892
  if self.installArcgis:
1875
1893
  hasSpatial = self.installManage and "spatial=" in self.getParam("mas_appws_components")
@@ -180,6 +180,11 @@ class installArgBuilderMixin():
180
180
  if self.getParam('mongodb_namespace') != "":
181
181
  command += f" --mongodb-namespace \"{self.getParam('mongodb_namespace')}\"{newline}"
182
182
 
183
+ # Redis Configuration
184
+ # -----------------------------------------------------------------------------
185
+ if self.getParam('redis_namespace') != "":
186
+ command += f" --redis-namespace \"{self.getParam('redis_namespace')}\"{newline}"
187
+
183
188
  # OCP Configuration
184
189
  # -----------------------------------------------------------------------------
185
190
  if self.getParam('ocp_ingress_tls_secret_name') != "":
@@ -423,6 +423,18 @@ mongoArgGroup.add_argument(
423
423
  help="Namespace for MongoDB Community Operator"
424
424
  )
425
425
 
426
+ # Redis Configuration
427
+ # -----------------------------------------------------------------------------
428
+ redisArgGroup = installArgParser.add_argument_group(
429
+ "Redis",
430
+ "Configure the namespace for Redis deployment (required for Collaborate addon)."
431
+ )
432
+ redisArgGroup.add_argument(
433
+ "--redis-namespace",
434
+ required=False,
435
+ help="Namespace for Redis deployment (default: redis)"
436
+ )
437
+
426
438
  # OCP Configuration
427
439
  # -----------------------------------------------------------------------------
428
440
  ocpArgGroup = installArgParser.add_argument_group(
@@ -10,12 +10,13 @@
10
10
 
11
11
  from .db2Settings import Db2SettingsMixin
12
12
  from .mongodbSettings import MongoDbSettingsMixin
13
+ from .redisSettings import RedisSettingsMixin
13
14
  from .kafkaSettings import KafkaSettingsMixin
14
15
  from .manageSettings import ManageSettingsMixin
15
16
  from .additionalConfigs import AdditionalConfigsMixin
16
17
 
17
18
 
18
- class InstallSettingsMixin(Db2SettingsMixin, MongoDbSettingsMixin, KafkaSettingsMixin, ManageSettingsMixin, AdditionalConfigsMixin):
19
+ class InstallSettingsMixin(Db2SettingsMixin, MongoDbSettingsMixin, RedisSettingsMixin, KafkaSettingsMixin, ManageSettingsMixin, AdditionalConfigsMixin):
19
20
  """
20
21
  This class collects all the Mixins providing interactive prompts for mas-install
21
22
  """
@@ -176,6 +176,10 @@ class ManageSettingsMixin():
176
176
  self.params["mas_appws_components"] += ",aip=latest"
177
177
  if self.yesOrNo(" - Vegetation Management"):
178
178
  self.params["mas_appws_components"] += ",vegm=latest"
179
+ if self.yesOrNo(" - Collaborate"):
180
+ self.params["mas_appws_components"] += ",collaborate=latest"
181
+ # Configure Redis for Collaborate addon
182
+ self.configRedis()
179
183
  logger.debug(f"Generated mas_appws_components = {self.params['mas_appws_components']}")
180
184
 
181
185
  if ",icd=" in self.params["mas_appws_components"]:
@@ -0,0 +1,70 @@
1
+ # *****************************************************************************
2
+ # Copyright (c) 2024, 2026 IBM Corporation and other Contributors.
3
+ #
4
+ # All rights reserved. This program and the accompanying materials
5
+ # are made available under the terms of the Eclipse Public License v1.0
6
+ # which accompanies this distribution, and is available at
7
+ # http://www.eclipse.org/legal/epl-v10.html
8
+ #
9
+ # *****************************************************************************
10
+
11
+ from typing import TYPE_CHECKING, Dict, List
12
+
13
+
14
+ if TYPE_CHECKING:
15
+ from prompt_toolkit.completion import WordCompleter
16
+ from prompt_toolkit.validation import Validator
17
+
18
+
19
+ class RedisSettingsMixin():
20
+ if TYPE_CHECKING:
21
+ # Attributes from BaseApp and other mixins
22
+ params: Dict[str, str]
23
+ showAdvancedOptions: bool
24
+
25
+ # Methods from BaseApp
26
+ def setParam(self, param: str, value: str) -> None:
27
+ ...
28
+
29
+ def getParam(self, param: str) -> str:
30
+ ...
31
+
32
+ # Methods from PrintMixin
33
+ def printH1(self, message: str) -> None:
34
+ ...
35
+
36
+ def printDescription(self, content: List[str]) -> None:
37
+ ...
38
+
39
+ # Methods from PromptMixin
40
+ def promptForString(
41
+ self,
42
+ message: str,
43
+ param: str | None = None,
44
+ default: str = "",
45
+ isPassword: bool = False,
46
+ validator: Validator | None = None,
47
+ completer: WordCompleter | None = None
48
+ ) -> str:
49
+ ...
50
+
51
+ def configRedis(self) -> None:
52
+ """
53
+ Configure Redis for Collaborate addon.
54
+ Redis will be deployed automatically when Collaborate is enabled.
55
+ """
56
+ self.printH1("Configure Redis for Collaborate")
57
+ self.printDescription([
58
+ "Redis is required for the Collaborate addon to support caching.",
59
+ "The installer will automatically deploy Redis with high availability (Sentinel + HAProxy)."
60
+ ])
61
+
62
+ if self.showAdvancedOptions:
63
+ self.promptForString("Redis namespace", "redis_namespace", default="redis")
64
+ else:
65
+ # Use default namespace
66
+ self.setParam("redis_namespace", "redis")
67
+
68
+ # Always install Redis when Collaborate is enabled
69
+ self.setParam("redis_action", "install")
70
+ self.setParam("redis_cfg_file", f"/workspace/configs/redis-{self.getParam('redis_namespace')}.yml")
@@ -198,6 +198,7 @@ class InstallSummarizerMixin():
198
198
  self.printSummary(" + Workday Applications", "Enabled" if "workday=" in self.getParam("mas_appws_components") else "Disabled")
199
199
  self.printSummary(" + AIP", "Enabled" if "aip=" in self.getParam("mas_appws_components") else "Disabled")
200
200
  self.printSummary(" + Vegetation Management", "Enabled" if "vegm=" in self.getParam("mas_appws_components") else "Disabled")
201
+ self.printSummary(" + Collaborate", "Enabled" if "collaborate=" in self.getParam("mas_appws_components") else "Disabled")
201
202
 
202
203
  self.printParamSummary("+ Upgrade Type", "mas_appws_upgrade_type")
203
204
 
@@ -375,6 +376,12 @@ class InstallSummarizerMixin():
375
376
  else:
376
377
  self.fatalError(f"Unexpected value for mongodb_action parameter: {self.getParam('mongodb_action')}")
377
378
 
379
+ def redisSummary(self) -> None:
380
+ if self.getParam("redis_action") == "install":
381
+ self.printH2("Redis")
382
+ self.printSummary("Type", "Redis with Sentinel HA")
383
+ self.printParamSummary("Install Namespace", "redis_namespace")
384
+
378
385
  def kafkaSummary(self) -> None:
379
386
  if self.getParam("kafka_action_system") != "":
380
387
  self.printH2("Kafka")
@@ -445,6 +452,7 @@ class InstallSummarizerMixin():
445
452
 
446
453
  # Application Dependencies
447
454
  self.mongoSummary()
455
+ self.redisSummary()
448
456
  self.db2Summary()
449
457
  self.cosSummary()
450
458
  self.kafkaSummary()