mas-cli 12.0.0__py3-none-any.whl → 12.27.0__py3-none-any.whl

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 (33) hide show
  1. mas/cli/__init__.py +1 -1
  2. mas/cli/aiservice/install/__init__.py +11 -0
  3. mas/cli/aiservice/install/app.py +810 -0
  4. mas/cli/aiservice/install/argBuilder.py +232 -0
  5. mas/cli/aiservice/install/argParser.py +742 -0
  6. mas/cli/aiservice/install/params.py +120 -0
  7. mas/cli/aiservice/install/summarizer.py +193 -0
  8. mas/cli/cli.py +36 -9
  9. mas/cli/gencfg.py +23 -0
  10. mas/cli/install/app.py +295 -85
  11. mas/cli/install/argBuilder.py +92 -14
  12. mas/cli/install/argParser.py +200 -147
  13. mas/cli/install/catalogs.py +11 -6
  14. mas/cli/install/params.py +32 -6
  15. mas/cli/install/settings/additionalConfigs.py +18 -1
  16. mas/cli/install/settings/db2Settings.py +121 -72
  17. mas/cli/install/settings/kafkaSettings.py +2 -2
  18. mas/cli/install/settings/manageSettings.py +154 -159
  19. mas/cli/install/settings/mongodbSettings.py +1 -1
  20. mas/cli/install/settings/turbonomicSettings.py +1 -3
  21. mas/cli/install/summarizer.py +85 -68
  22. mas/cli/templates/facilities-configs.yml.j2 +25 -0
  23. mas/cli/templates/ibm-mas-tekton.yaml +16683 -7870
  24. mas/cli/update/app.py +43 -9
  25. mas/cli/upgrade/app.py +52 -20
  26. mas/cli/upgrade/argParser.py +7 -0
  27. mas/cli/upgrade/settings/__init__.py +19 -0
  28. mas/cli/validators.py +13 -0
  29. {mas_cli-12.0.0.data → mas_cli-12.27.0.data}/scripts/mas-cli +5 -1
  30. {mas_cli-12.0.0.dist-info → mas_cli-12.27.0.dist-info}/METADATA +12 -3
  31. {mas_cli-12.0.0.dist-info → mas_cli-12.27.0.dist-info}/RECORD +33 -25
  32. {mas_cli-12.0.0.dist-info → mas_cli-12.27.0.dist-info}/WHEEL +1 -1
  33. {mas_cli-12.0.0.dist-info → mas_cli-12.27.0.dist-info}/top_level.txt +0 -0
@@ -11,7 +11,6 @@
11
11
  import logging
12
12
  import yaml
13
13
  from prompt_toolkit import print_formatted_text, HTML
14
- from mas.devops.mas import isAirgapInstall
15
14
  from mas.devops.ocp import getConsoleURL
16
15
 
17
16
  logger = logging.getLogger(__name__)
@@ -19,6 +18,11 @@ logger = logging.getLogger(__name__)
19
18
 
20
19
  class InstallSummarizerMixin():
21
20
  def ocpSummary(self) -> None:
21
+ self.printH2("Pipeline Configuration")
22
+ self.printParamSummary("Service Account", "service_account_name")
23
+ self.printParamSummary("Image Pull Policy", "image_pull_policy")
24
+ self.printSummary("Skip Pre-Install Healthcheck", "Yes" if self.getParam('skip_pre_check') == "true" else "No")
25
+
22
26
  self.printH2("OpenShift Container Platform")
23
27
  self.printSummary("Worker Node Architecture", self.architecture)
24
28
  self.printSummary("Storage Class Provider", self.storageClassProvider)
@@ -33,9 +37,6 @@ class InstallSummarizerMixin():
33
37
  else:
34
38
  self.printSummary("Single Node OpenShift", "No")
35
39
 
36
- self.printSummary("Skip Pre-Install Healthcheck", "Yes" if self.getParam('skip_pre_check') == "true" else "No")
37
- self.printSummary("Skip Grafana-Install", "Yes" if self.getParam('grafana_action') == "none" else "No")
38
-
39
40
  def masSummary(self) -> None:
40
41
  operationalModeNames = ["", "Production", "Non-Production"]
41
42
 
@@ -46,7 +47,7 @@ class InstallSummarizerMixin():
46
47
 
47
48
  print()
48
49
  self.printSummary("Operational Mode", operationalModeNames[self.operationalMode])
49
- if isAirgapInstall(self.dynamicClient):
50
+ if self.isAirgap():
50
51
  self.printSummary("Install Mode", "Disconnected Install")
51
52
  else:
52
53
  self.printSummary("Install Mode", "Connected Install")
@@ -69,6 +70,9 @@ class InstallSummarizerMixin():
69
70
  elif self.getParam('dns_provider') == "":
70
71
  pass
71
72
 
73
+ print()
74
+ self.printParamSummary("Configure Suite to run in IPV6", "enable_ipv6")
75
+
72
76
  if self.getParam("mas_manual_cert_mgmt") != "":
73
77
  print()
74
78
  self.printSummary("Manual Certificates", self.manualCertsDir)
@@ -149,70 +153,69 @@ class InstallSummarizerMixin():
149
153
  else:
150
154
  self.printSummary("Visual Inspection", "Do Not Install")
151
155
 
152
- def aibrokerSummary(self) -> None:
153
- if self.installAiBroker:
154
- self.printSummary("AI Broker", self.params["mas_app_channel_aibroker"])
155
- print_formatted_text(HTML(" <SkyBlue>+ Maximo AI Broker Settings</SkyBlue>"))
156
- self.printParamSummary(" + Storage provider", "mas_aibroker_storage_provider")
157
- self.printParamSummary(" + Storage access key", "mas_aibroker_storage_accesskey")
158
- self.printParamSummary(" + Storage secret key", "mas_aibroker_storage_secretkey")
159
- self.printParamSummary(" + Storage host", "mas_aibroker_storage_host")
160
- self.printParamSummary(" + Storage port", "mas_aibroker_storage_port")
161
- self.printParamSummary(" + Storage ssl", "mas_aibroker_storage_ssl")
162
- self.printParamSummary(" + Storage region", "mas_aibroker_storage_region")
163
- self.printParamSummary(" + Storage pipelines bucket", "mas_aibroker_storage_pipelines_bucket")
164
- self.printParamSummary(" + Storage tenants bucket", "mas_aibroker_storage_tenants_bucket")
165
- self.printParamSummary(" + Storage templates bucket", "mas_aibroker_storage_templates_bucket")
166
- self.printParamSummary(" + Watsonxai api key", "mas_aibroker_watsonxai_apikey")
167
- self.printParamSummary(" + Watsonxai machine learning url", "mas_aibroker_watsonxai_url")
168
- self.printParamSummary(" + Watsonxai project id", "mas_aibroker_watsonxai_project_id")
169
- self.printParamSummary(" + Database host", "mas_aibroker_db_host")
170
- self.printParamSummary(" + Database port", "mas_aibroker_db_port")
171
- self.printParamSummary(" + Database user", "mas_aibroker_db_user")
172
- self.printParamSummary(" + Database name", "mas_aibroker_db_database")
173
- self.printParamSummary(" + Database Secretname", "mas_aibroker_db_secret_name")
174
- self.printParamSummary(" + Database password", "mas_aibroker_db_secret_value")
175
- else:
176
- self.printSummary("AI Broker", "Do Not Install")
177
-
178
156
  def manageSummary(self) -> None:
179
157
  if self.installManage:
180
- self.printSummary("Manage", self.params["mas_app_channel_manage"])
181
- print_formatted_text(HTML(" <SkyBlue>+ Components</SkyBlue>"))
182
- self.printSummary(" + ACM", "Enabled" if "acm=" in self.getParam("mas_appws_components") else "Disabled")
183
- self.printSummary(" + Aviation", "Enabled" if "aviation=" in self.getParam("mas_appws_components") else "Disabled")
184
- self.printSummary(" + Civil Infrastructure", "Enabled" if "civil=" in self.getParam("mas_appws_components") else "Disabled")
185
- self.printSummary(" + Envizi", "Enabled" if "envizi=" in self.getParam("mas_appws_components") else "Disabled")
186
- self.printSummary(" + Health", "Enabled" if "health=" in self.getParam("mas_appws_components") else "Disabled")
187
- self.printSummary(" + HSE", "Enabled" if "hse=" in self.getParam("mas_appws_components") else "Disabled")
188
- self.printSummary(" + Maximo IT", "Enabled" if "icd=" in self.getParam("mas_appws_components") else "Disabled")
189
- self.printSummary(" + Nuclear", "Enabled" if "nuclear=" in self.getParam("mas_appws_components") else "Disabled")
190
- self.printSummary(" + Oil & Gas", "Enabled" if "oilandgas=" in self.getParam("mas_appws_components") else "Disabled")
191
- self.printSummary(" + Connector for Oracle", "Enabled" if "oracleadapter=" in self.getParam("mas_appws_components") else "Disabled")
192
- self.printSummary(" + Connector for SAP", "Enabled" if "sapadapter=" in self.getParam("mas_appws_components") else "Disabled")
193
- self.printSummary(" + Service Provider", "Enabled" if "serviceprovider=" in self.getParam("mas_appws_components") else "Disabled")
194
- self.printSummary(" + Spatial", "Enabled" if "spatial=" in self.getParam("mas_appws_components") else "Disabled")
195
- self.printSummary(" + Strategize", "Enabled" if "strategize=" in self.getParam("mas_appws_components") else "Disabled")
196
- self.printSummary(" + Transportation", "Enabled" if "transportation=" in self.getParam("mas_appws_components") else "Disabled")
197
- self.printSummary(" + Tririga", "Enabled" if "tririga=" in self.getParam("mas_appws_components") else "Disabled")
198
- self.printSummary(" + Utilities", "Enabled" if "utilities=" in self.getParam("mas_appws_components") else "Disabled")
199
- self.printSummary(" + Workday Applications", "Enabled" if "workday=" in self.getParam("mas_appws_components") else "Disabled")
200
-
201
- self.printParamSummary("+ Server bundle size", "mas_app_settings_server_bundles_size")
202
- self.printParamSummary("+ Enable JMS queues", "mas_app_settings_default_jms")
203
- self.printParamSummary("+ Server Timezone", "mas_app_settings_server_timezone")
204
- self.printParamSummary("+ Base Language", "mas_app_settings_base_lang")
205
- self.printParamSummary("+ Additional Languages", "mas_app_settings_secondary_langs")
206
-
207
- print_formatted_text(HTML(" <SkyBlue>+ Database Settings</SkyBlue>"))
208
- self.printParamSummary(" + Schema", "mas_app_settings_indexspace")
209
- self.printParamSummary(" + Username", "mas_app_settings_db2_schema")
210
- self.printParamSummary(" + Tablespace", "mas_app_settings_tablespace")
211
- self.printParamSummary(" + Indexspace", "mas_app_settings_indexspace")
212
-
158
+ self.printSummary(f"{'Manage foundation' if self.getParam('is_full_manage') == 'false' else 'Manage'}", self.params["mas_app_channel_manage"])
159
+ if self.getParam("is_full_manage") != "false":
160
+ print_formatted_text(HTML(" <SkyBlue>+ Components</SkyBlue>"))
161
+ self.printSummary(" + ACM", "Enabled" if "acm=" in self.getParam("mas_appws_components") else "Disabled")
162
+ self.printSummary(" + Aviation", "Enabled" if "aviation=" in self.getParam("mas_appws_components") else "Disabled")
163
+ self.printSummary(" + Civil Infrastructure", "Enabled" if "civil=" in self.getParam("mas_appws_components") else "Disabled")
164
+ self.printSummary(" + Envizi", "Enabled" if "envizi=" in self.getParam("mas_appws_components") else "Disabled")
165
+ self.printSummary(" + Health", "Enabled" if "health=" in self.getParam("mas_appws_components") else "Disabled")
166
+ self.printSummary(" + HSE", "Enabled" if "hse=" in self.getParam("mas_appws_components") else "Disabled")
167
+ self.printSummary(" + Maximo IT", "Enabled" if "icd=" in self.getParam("mas_appws_components") else "Disabled")
168
+ self.printSummary(" + Nuclear", "Enabled" if "nuclear=" in self.getParam("mas_appws_components") else "Disabled")
169
+ self.printSummary(" + Oil & Gas", "Enabled" if "oilandgas=" in self.getParam("mas_appws_components") else "Disabled")
170
+ self.printSummary(" + Connector for Oracle", "Enabled" if "oracleadapter=" in self.getParam("mas_appws_components") else "Disabled")
171
+ self.printSummary(" + Connector for SAP", "Enabled" if "sapadapter=" in self.getParam("mas_appws_components") else "Disabled")
172
+ self.printSummary(" + Service Provider", "Enabled" if "serviceprovider=" in self.getParam("mas_appws_components") else "Disabled")
173
+ self.printSummary(" + Spatial", "Enabled" if "spatial=" in self.getParam("mas_appws_components") else "Disabled")
174
+ self.printSummary(" + Strategize", "Enabled" if "strategize=" in self.getParam("mas_appws_components") else "Disabled")
175
+ self.printSummary(" + Transportation", "Enabled" if "transportation=" in self.getParam("mas_appws_components") else "Disabled")
176
+ self.printSummary(" + Tririga", "Enabled" if "tririga=" in self.getParam("mas_appws_components") else "Disabled")
177
+ self.printSummary(" + Utilities", "Enabled" if "utilities=" in self.getParam("mas_appws_components") else "Disabled")
178
+ self.printSummary(" + Workday Applications", "Enabled" if "workday=" in self.getParam("mas_appws_components") else "Disabled")
179
+ self.printSummary(" + AIP", "Enabled" if "aip=" in self.getParam("mas_appws_components") else "Disabled")
180
+
181
+ self.printParamSummary("+ Server bundle size", "mas_app_settings_server_bundles_size")
182
+ self.printParamSummary("+ Enable JMS queues", "mas_app_settings_default_jms")
183
+ self.printParamSummary("+ Server Timezone", "mas_app_settings_server_timezone")
184
+ self.printParamSummary("+ Base Language", "mas_app_settings_base_lang")
185
+ self.printParamSummary("+ Additional Languages", "mas_app_settings_secondary_langs")
186
+
187
+ print_formatted_text(HTML(" <SkyBlue>+ Database Settings</SkyBlue>"))
188
+ self.printParamSummary(" + Schema", "mas_app_settings_indexspace")
189
+ self.printParamSummary(" + Username", "mas_app_settings_db2_schema")
190
+ self.printParamSummary(" + Tablespace", "mas_app_settings_tablespace")
191
+ self.printParamSummary(" + Indexspace", "mas_app_settings_indexspace")
213
192
  else:
214
193
  self.printSummary("Manage", "Do Not Install")
215
194
 
195
+ def facilitiesSummary(self) -> None:
196
+ # TODO: Fix type for storage sizes and max conn pool size
197
+ if self.installFacilities:
198
+ self.printSummary("Facilities", self.params["mas_app_channel_facilities"])
199
+ print_formatted_text(HTML(" <SkyBlue>+ Maximo Real Estate and Facilities Settings</SkyBlue>"))
200
+ self.printParamSummary(" + Size", "mas_ws_facilities_size")
201
+ self.printParamSummary(" + Routes Timeout", "mas_ws_facilities_routes_timeout")
202
+ self.printParamSummary(" + XML Extension", "mas_ws_facilities_liberty_extension_XML")
203
+ self.printParamSummary(" + AES vault secret name", "mas_ws_facilities_vault_secret")
204
+ # self.printParamSummary(" + Dedicated Workflow Agents", "mas_ws_facilities_dwfagents")
205
+ # self.printParamSummary(" + Maximum pool size connection ", "mas_ws_facilities_db_maxconnpoolsize")
206
+ self.printParamSummary(" + Log Storage Class ", "mas_ws_facilities_storage_log_class")
207
+ self.printParamSummary(" + Log Storage Mode", "mas_ws_facilities_storage_log_mode")
208
+ # self.printParamSummary(" + Log Storage Size", "mas_ws_facilities_storage_log_size")
209
+ self.printParamSummary(" + Userfiles Storage Class ", "mas_ws_facilities_storage_userfiles_class")
210
+ self.printParamSummary(" + User files Storage Mode", "mas_ws_facilities_storage_userfiles_mode")
211
+ # self.printParamSummary(" + User files Storage Size", "mas_ws_facilities_storage_userfiles_size")
212
+ if self.getParam("db2_action_facilities") == 'none':
213
+ self.printParamSummary(" + Dedicated DB2 Database", "No")
214
+ else:
215
+ self.printParamSummary(" + Dedicated DB2 Database", "db2_action_facilities")
216
+ else:
217
+ self.printSummary("Facilities", "Do Not Install")
218
+
216
219
  def db2Summary(self) -> None:
217
220
  if self.getParam("db2_action_system") == "install" or self.getParam("db2_action_manage") == "install":
218
221
  self.printH2("IBM Db2 Univeral Operator Configuration")
@@ -253,7 +256,11 @@ class InstallSummarizerMixin():
253
256
  self.printSummary("Watson Studio Local", "Install (Required by Maximo Predict)")
254
257
  self.printSummary("Watson Machine Learning", "Install (Required by Maximo Predict)")
255
258
  self.printSummary("Analytics Engine", "Install (Required by Maximo Predict)")
256
- self.printSummary("Watson Openscale", "Install" if self.getParam("cpd_install_openscale") == "true" else "Do Not Install")
259
+ else:
260
+ self.printSummary("Watson Studio Local", "Install" if self.getParam("cpd_install_ws") == "true" else "Do Not Install")
261
+ self.printSummary("Watson Machine Learning", "Install" if self.getParam("cpd_install_wml") == "true" else "Do Not Install")
262
+ self.printSummary("Analytics Engine", "Install" if self.getParam("cpd_install_ae") == "true" else "Do Not Install")
263
+
257
264
  self.printSummary("SPSS Modeler", "Install" if self.getParam("cpd_install_spss") == "true" else "Do Not Install")
258
265
  self.printSummary("Cognos Analytics", "Install" if self.getParam("cpd_install_cognos") == "true" else "Do Not Install")
259
266
 
@@ -266,9 +273,12 @@ class InstallSummarizerMixin():
266
273
 
267
274
  def slsSummary(self) -> None:
268
275
  self.printH2("IBM Suite License Service")
269
- self.printSummary("License File", self.slsLicenseFileLocal)
270
- self.printParamSummary("IBM Open Registry", "sls_icr_cpopen")
271
276
  self.printParamSummary("Namespace", "sls_namespace")
277
+ if self.getParam("sls_action") == "install":
278
+ self.printSummary("Subscription Channel", "3.x")
279
+ self.printParamSummary("IBM Open Registry", "sls_icr_cpopen")
280
+ if self.slsLicenseFileLocal:
281
+ self.printSummary("License File", self.slsLicenseFileLocal)
272
282
 
273
283
  def cosSummary(self) -> None:
274
284
  self.printH2("Cloud Object Storage")
@@ -342,6 +352,10 @@ class InstallSummarizerMixin():
342
352
  self.printH2("Grafana")
343
353
  self.printSummary("Install Grafana", "Install" if self.getParam("grafana_action") == "install" else "Do Not Install")
344
354
 
355
+ def installSummary(self) -> None:
356
+ self.printH2("Install Process")
357
+ self.printSummary("Wait for PVCs to bind", "No" if self.getParam("no_wait_for_pvc") else "Yes")
358
+
345
359
  def displayInstallSummary(self) -> None:
346
360
  self.printH1("Review Settings")
347
361
  self.printDescription([
@@ -367,7 +381,7 @@ class InstallSummarizerMixin():
367
381
  self.optimizerSummary()
368
382
  self.assistSummary()
369
383
  self.inspectionSummary()
370
- self.aibrokerSummary()
384
+ self.facilitiesSummary()
371
385
 
372
386
  # Application Dependencies
373
387
  self.mongoSummary()
@@ -377,3 +391,6 @@ class InstallSummarizerMixin():
377
391
  self.cp4dSummary()
378
392
  self.grafanaSummary()
379
393
  self.turbonomicSummary()
394
+
395
+ # Install options
396
+ self.installSummary()
@@ -0,0 +1,25 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: facilities-config
5
+ namespace: mas-{{ mas_instance_id }}-pipelines
6
+ data:
7
+ mas_ws_facilities_storage_log_size: |
8
+ {{ mas_ws_facilities_storage_log_size }}
9
+ mas_ws_facilities_storage_userfiles_size: |
10
+ {{ mas_ws_facilities_storage_userfiles_size }}
11
+ mas_ws_facilities_db_maxconnpoolsize: |
12
+ {{ mas_ws_facilities_db_maxconnpoolsize }}
13
+ mas_ws_facilities_dwfagents: |
14
+ {%- if mas_ws_facilities_dwfagents is defined and mas_ws_facilities_dwfagents != '' %}
15
+ {%- for agent in mas_ws_facilities_dwfagents %}
16
+ - name: "{{ agent.name }}"
17
+ members:
18
+ {%- for member in agent.members %}
19
+ - name: "{{ member.name }}"
20
+ class: "{{ member.class }}"
21
+ {%- endfor %}
22
+ {%- endfor %}
23
+ {%- else %}
24
+ []
25
+ {% endif %}