mas-cli 11.5.0__py3-none-any.whl → 11.6.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.

mas/cli/__init__.py CHANGED
@@ -8,4 +8,4 @@
8
8
  #
9
9
  # *****************************************************************************
10
10
 
11
- __version__ = "11.5.0" # Python module compatible semver
11
+ __version__ = "11.6.0" # Python module compatible semver
mas/cli/cli.py CHANGED
@@ -107,7 +107,7 @@ class BaseApp(PrintMixin, PromptMixin):
107
107
  rootLogger.setLevel(logging.DEBUG)
108
108
 
109
109
  # Supports extended semver, unlike mas.cli.__version__
110
- self.version = "11.5.0"
110
+ self.version = "11.6.0"
111
111
  self.h1count = 0
112
112
  self.h2count = 0
113
113
 
@@ -137,7 +137,8 @@ class BaseApp(PrintMixin, PromptMixin):
137
137
  "monitor": ["9.0.x", "8.11.x"],
138
138
  "optimizer": ["9.0.x", "8.5.x"],
139
139
  "predict": ["9.0.x", "8.9.x"],
140
- "visualinspection": ["9.0.x", "8.9.x"]
140
+ "visualinspection": ["9.0.x", "8.9.x"],
141
+ "aibroker": ["9.0.x"]
141
142
  },
142
143
  "8.11.x": {
143
144
  "assist": ["8.8.x", "8.7.x"],
mas/cli/install/app.py CHANGED
@@ -341,7 +341,8 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
341
341
  self.setParam("mas_manual_cert_mgmt", self.manualCerts)
342
342
  if self.getParam("mas_manual_cert_mgmt"):
343
343
  self.manualCertsDir = self.promptForDir("Enter the path containing the manual certificates", mustExist=True)
344
- self.setParam("mas_manual_cert_dir", self.manualCertsDir)
344
+ else:
345
+ self.manualCertsDir = None
345
346
 
346
347
  def configDNSAndCertsCloudflare(self):
347
348
  # User has chosen to set up DNS integration with Cloudflare
@@ -453,6 +454,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
453
454
  if self.installInspection:
454
455
  self.configAppChannel("visualinspection")
455
456
 
457
+ self.installAiBroker = self.yesOrNo("Install AI Broker")
458
+ if self.installAiBroker:
459
+ self.configAppChannel("aibroker")
460
+
456
461
  def configAppChannel(self, appId):
457
462
  versions = self.getCompatibleVersions(self.params["mas_channel"], appId)
458
463
  if len(versions) == 0:
@@ -568,7 +573,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
568
573
  self.promptForString("COS Provider [ibm/ocs]", "cos_type")
569
574
  if self.getParam("cos_type") == "ibm":
570
575
  self.promptForString("IBM Cloud API Key", "ibmcloud_apikey", isPassword=True)
571
- self.promptForString("IBM Cloud Resource Group", "cos_resourcegroup")
576
+ self.promptForString("IBM Cloud Resource Group", "ibmcos_resourcegroup")
572
577
 
573
578
  def interactiveMode(self) -> None:
574
579
  # Interactive mode
@@ -600,6 +605,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
600
605
  self.optimizerSettings()
601
606
  self.predictSettings()
602
607
  self.assistSettings()
608
+ self.aibrokerSettings()
603
609
 
604
610
  # Dependencies
605
611
  self.configMongoDb() # Will only do anything if IoT or Manage have been selected for install
@@ -625,6 +631,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
625
631
  self.installPredict = False
626
632
  self.installInspection = False
627
633
  self.installOptimizer = False
634
+ self.installAiBroker = False
628
635
  self.deployCP4D = False
629
636
  self.db2SetAffinity = False
630
637
  self.db2SetTolerations = False
@@ -660,6 +667,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
660
667
  "uds_contact_lastname"
661
668
  ]
662
669
  optionalParams = [
670
+ # Pipeline
671
+ "image_pull_policy",
672
+ # OpenShift
673
+ "ocp_ingress_tls_secret_name",
663
674
  # MAS
664
675
  "mas_catalog_digest",
665
676
  "mas_superuser_username",
@@ -668,9 +679,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
668
679
  "mas_app_settings_server_bundles_size",
669
680
  "mas_app_settings_default_jms",
670
681
  "mas_app_settings_persistent_volumes_flag",
671
- "mas_appws_bindings_jdbc_manage",
672
682
  "mas_app_settings_demodata",
673
- "mas_appws_components",
674
683
  "mas_app_settings_customization_archive_name",
675
684
  "mas_app_settings_customization_archive_url",
676
685
  "mas_app_settings_customization_archive_username",
@@ -686,7 +695,16 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
686
695
  "mas_app_settings_base_lang",
687
696
  "mas_app_settings_secondary_langs",
688
697
  "mas_app_settings_server_timezone",
689
- "ocp_ingress_tls_secret_name",
698
+ "mas_appws_bindings_jdbc_manage",
699
+ "mas_appws_components",
700
+ "mas_domain",
701
+ # DNS Providers
702
+ # TODO: Add CloudFlare and Route53 support
703
+ "dns_provider",
704
+ "cis_email",
705
+ "cis_apikey",
706
+ "cis_crn",
707
+ "cis_subdomain",
690
708
  # DRO
691
709
  "dro_namespace",
692
710
  # MongoDb
@@ -733,7 +751,7 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
733
751
  "eventstreams_instance_location",
734
752
  # COS
735
753
  "cos_type",
736
- "cos_resourcegroup",
754
+ "ibmcos_resourcegroup",
737
755
  # ECK
738
756
  "eck_action",
739
757
  "eck_enable_logstash",
@@ -760,6 +778,29 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
760
778
  "mas_arcgis_channel",
761
779
  # Guided Tour
762
780
  "mas_enable_walkme",
781
+ # Aibroker
782
+ "mas_aibroker_storage_provider",
783
+ "mas_aibroker_storage_accesskey",
784
+ "mas_aibroker_storage_secretkey",
785
+ "mas_aibroker_storage_host",
786
+ "mas_aibroker_storage_port",
787
+ "mas_aibroker_storage_ssl",
788
+ "mas_aibroker_storage_region",
789
+ "mas_aibroker_storage_pipelines_bucket",
790
+ "mas_aibroker_storage_tenants_bucket",
791
+ "mas_aibroker_storage_templates_bucket",
792
+ "mas_aibroker_tenant_name",
793
+ "mas_aibroker_watsonxai_apikey",
794
+ "mas_aibroker_watsonxai_url",
795
+ "mas_aibroker_watsonxai_project_id",
796
+ "mas_aibroker_watsonx_action",
797
+ "mas_aibroker_db_host",
798
+ "mas_aibroker_db_port",
799
+ "mas_aibroker_db_user",
800
+ "mas_aibroker_db_database",
801
+ "mas_aibroker_db_secret_name",
802
+ "mas_aibroker_db_secret_key",
803
+ "mas_aibroker_db_secret_value",
763
804
  # Special chars
764
805
  "mas_special_characters"
765
806
  ]
@@ -808,37 +849,44 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
808
849
  else:
809
850
  self.setParam("mas_pod_templates_dir", value)
810
851
 
852
+ # We check for both None and "" values for the application channel parameters
853
+ # value = None means the parameter wasn't set at all
854
+ # value = "" means the paramerter was explicitly set to "don't install this application"
811
855
  elif key == "assist_channel":
812
- if value is not None:
856
+ if value is not None and value != "":
813
857
  self.setParam("mas_app_channel_assist", value)
814
858
  self.installAssist = True
815
859
  elif key == "iot_channel":
816
- if value is not None:
860
+ if value is not None and value != "":
817
861
  self.setParam("mas_app_channel_iot", value)
818
862
  self.installIoT = True
819
863
  elif key == "monitor_channel":
820
- if value is not None:
864
+ if value is not None and value != "":
821
865
  self.setParam("mas_app_channel_monitor", value)
822
866
  self.installMonitor = True
823
867
  elif key == "manage_channel":
824
- if value is not None:
868
+ if value is not None and value != "":
825
869
  self.setParam("mas_app_channel_manage", value)
826
870
  self.installManage = True
827
871
  elif key == "predict_channel":
828
- if value is not None:
872
+ if value is not None and value != "":
829
873
  self.setParam("mas_app_channel_predict", value)
830
874
  self.installPredict = True
831
875
  self.deployCP4D = True
832
876
  elif key == "visualinspection_channel":
833
- if value is not None:
877
+ if value is not None and value != "":
834
878
  self.setParam("mas_app_channel_visualinspection", value)
835
879
  self.installInspection = True
880
+ elif key == "aibroker_channel":
881
+ if value is not None and value != "":
882
+ self.setParam("mas_app_channel_aibroker", value)
883
+ self.installAiBroker = True
836
884
  elif key == "optimizer_channel":
837
- if value is not None:
885
+ if value is not None and value != "":
838
886
  self.setParam("mas_app_channel_optimizer", value)
839
887
  self.installOptimizer = True
840
888
  elif key == "optimizer_plan":
841
- if value is not None:
889
+ if value is not None and value != "":
842
890
  self.setParam("mas_app_plan_optimizer", value)
843
891
 
844
892
  # Manage advanced settings that need extra processing
@@ -886,9 +934,10 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
886
934
  elif key == "manual_certificates":
887
935
  if value is not None:
888
936
  self.setParam("mas_manual_cert_mgmt", True)
889
- self.setParam("mas_manual_cert_dir", value)
937
+ self.manualCertsDir = value
890
938
  else:
891
939
  self.setParam("mas_manual_cert_mgmt", False)
940
+ self.manualCertsDir = None
892
941
 
893
942
  # Fail if there's any arguments we don't know how to handle
894
943
  else:
@@ -938,7 +987,8 @@ class InstallApp(BaseApp, InstallSettingsMixin, InstallSummarizerMixin, ConfigGe
938
987
  "monitor": "9.0.3",
939
988
  "optimizer": "9.0.3",
940
989
  "predict": "9.0.2",
941
- "inspection": "9.0.3"
990
+ "inspection": "9.0.3",
991
+ "aibroker": "9.0.2"
942
992
  },
943
993
  {
944
994
  "#": 2,
@@ -96,7 +96,15 @@ class installArgBuilderMixin():
96
96
  command += f" --disable-ca-trust{newline}"
97
97
 
98
98
  if self.getParam('mas_manual_cert_mgmt') is True:
99
- command += f" --manual-certificates \"{self.getParam('mas_manual_cert_dir')}\"{newline}"
99
+ command += f" --manual-certificates \"{self.manualCertsDir}\"{newline}"
100
+
101
+ if self.getParam('mas_domain') is True:
102
+ command += f" --domain \"{self.getParam('mas_domain')}\"{newline}"
103
+
104
+ if self.getParam('--dns-provider') == "cis":
105
+ command += f" --dns-provider cis --cis-apikey \"{self.getParam('cis_apikey')}"
106
+ command += f" --cis-subdomain \"{self.getParam('cis_subdomain')}"
107
+ command += f" --cis-crn \"{self.getParam('cis_crn')}\"{newline}"
100
108
 
101
109
  if self.getParam('mas_enable_walkme') == "false":
102
110
  command += f" --disable-walkme{newline}"
@@ -307,7 +315,7 @@ class installArgBuilderMixin():
307
315
  # -----------------------------------------------------------------------------
308
316
  if self.getParam('cos_type') != "":
309
317
  command += f" --cos \"{self.getParam('cos_type')}\""
310
- if self.getParam('cos_resourcegroup') != "":
318
+ if self.getParam('ibmcos_resourcegroup') != "":
311
319
  command += f" --cos-resourcegroup \"{self.getParam('cos_resourcegroup')}\""
312
320
  command += newline
313
321
 
@@ -366,6 +374,8 @@ class installArgBuilderMixin():
366
374
  command += f" --skip-pre-check{newline}"
367
375
  if self.getParam('skip_grafana_install') is True:
368
376
  command += f" --skip-grafana-install{newline}"
377
+ if self.getParam('image_pull_policy') != "":
378
+ command += f" --image-pull-policy {self.getParam('image_pull_policy')}{newline}"
369
379
 
370
380
  command += " --accept-license --no-confirm"
371
381
  return command
@@ -164,6 +164,13 @@ masAdvancedArgGroup.add_argument(
164
164
  required=False,
165
165
  help="Path to directory containing the certificates to be applied"
166
166
  )
167
+ masAdvancedArgGroup.add_argument(
168
+ "--domain",
169
+ dest="mas_domain",
170
+ required=False,
171
+ help="Configure MAS with a custom domain"
172
+ )
173
+
167
174
  masAdvancedArgGroup.add_argument(
168
175
  "--disable-walkme",
169
176
  dest="mas_enable_walkme",
@@ -173,6 +180,42 @@ masAdvancedArgGroup.add_argument(
173
180
  const="false"
174
181
  )
175
182
 
183
+ masAdvancedArgGroup.add_argument(
184
+ "--dns-provider",
185
+ dest="dns_provider",
186
+ required=False,
187
+ help="Enable Automatic DNS management (see DNS Configuration options)",
188
+ choices=["cloudflare", "cis", "route53"]
189
+ )
190
+
191
+ # DNS Configuration - IBM CIS
192
+ # -----------------------------------------------------------------------------
193
+ cisArgGroup = installArgParser.add_argument_group("DNS Configuration - CIS")
194
+ cisArgGroup.add_argument(
195
+ "--cis-email",
196
+ dest="cis_email",
197
+ required=False,
198
+ help="Required when DNS provider is CIS and you want to use a Let's Encrypt ClusterIssuer"
199
+ )
200
+ cisArgGroup.add_argument(
201
+ "--cis-apikey",
202
+ dest="cis_apikey",
203
+ required=False,
204
+ help="Required when DNS provider is CIS"
205
+ )
206
+ cisArgGroup.add_argument(
207
+ "--cis-crn",
208
+ dest="cis_crn",
209
+ required=False,
210
+ help="Required when DNS provider is CIS"
211
+ )
212
+ cisArgGroup.add_argument(
213
+ "--cis-subdomain",
214
+ dest="cis_subdomain",
215
+ required=False,
216
+ help="Optionally setup MAS instance as a subdomain under a multi-tenant CIS DNS record"
217
+ )
218
+
176
219
  # Storage
177
220
  # -----------------------------------------------------------------------------
178
221
  storageArgGroup = installArgParser.add_argument_group("Storage")
@@ -244,7 +287,6 @@ mongoArgGroup.add_argument(
244
287
  help=""
245
288
  )
246
289
 
247
-
248
290
  # OCP Configuration
249
291
  # -----------------------------------------------------------------------------
250
292
  ocpArgGroup = installArgParser.add_argument_group("OCP Configuration")
@@ -298,6 +340,147 @@ masAppsArgGroup.add_argument(
298
340
  choices=["full", "limited"],
299
341
  help="Install plan for Maximo Optimizer"
300
342
  )
343
+ masAppsArgGroup.add_argument(
344
+ "--aibroker-channel",
345
+ required=False,
346
+ help="Subscription channel for Maximo Ai Broker"
347
+ )
348
+
349
+ # AI Broker
350
+ # -----------------------------------------------------------------------------
351
+ aibrokerArgGroup = installArgParser.add_argument_group("Maximo AI Broker")
352
+ aibrokerArgGroup.add_argument(
353
+ "--mas-aibroker-storage-provider",
354
+ dest="mas_aibroker_storage_provider",
355
+ required=False,
356
+ help="Customize Manage database encryption keys"
357
+ )
358
+ aibrokerArgGroup.add_argument(
359
+ "--mas-aibroker-storage-accesskey",
360
+ dest="mas_aibroker_storage_accesskey",
361
+ required=False,
362
+ help="Customize Manage database encryption keys"
363
+ )
364
+ aibrokerArgGroup.add_argument(
365
+ "--mas-aibroker-storage-secretkey",
366
+ dest="mas_aibroker_storage_secretkey",
367
+ required=False,
368
+ help="Customize Manage database encryption keys"
369
+ )
370
+ aibrokerArgGroup.add_argument(
371
+ "--mas-aibroker-storage-host",
372
+ dest="mas_aibroker_storage_host",
373
+ required=False,
374
+ help="Customize Manage database encryption keys"
375
+ )
376
+ aibrokerArgGroup.add_argument(
377
+ "--mas-aibroker-storage-port",
378
+ dest="mas_aibroker_storage_port",
379
+ required=False,
380
+ help="Customize Manage database encryption keys"
381
+ )
382
+ aibrokerArgGroup.add_argument(
383
+ "--mas-aibroker-storage-ssl",
384
+ dest="mas_aibroker_storage_ssl",
385
+ required=False,
386
+ help="Customize Manage database encryption keys"
387
+ )
388
+ aibrokerArgGroup.add_argument(
389
+ "--mas-aibroker-storage-region",
390
+ dest="mas_aibroker_storage_region",
391
+ required=False,
392
+ help="Customize Manage database encryption keys"
393
+ )
394
+ aibrokerArgGroup.add_argument(
395
+ "--mas-aibroker-storage-pipelines-bucket",
396
+ dest="mas_aibroker_storage_pipelines_bucket",
397
+ required=False,
398
+ help="Customize Manage database encryption keys"
399
+ )
400
+ aibrokerArgGroup.add_argument(
401
+ "--mas-aibroker-storage-tenants-bucket",
402
+ dest="mas_aibroker_storage_tenants_bucket",
403
+ required=False,
404
+ help="Customize Manage database encryption keys"
405
+ )
406
+ aibrokerArgGroup.add_argument(
407
+ "--mas-aibroker-storage-templates-bucket",
408
+ dest="mas_aibroker_storage_templates_bucket",
409
+ required=False,
410
+ help="Customize Manage database encryption keys"
411
+ )
412
+ aibrokerArgGroup.add_argument(
413
+ "--mas-aibroker-tenant-name",
414
+ dest="mas_aibroker_tenant_name",
415
+ required=False,
416
+ help="Customize Manage database encryption keys"
417
+ )
418
+ aibrokerArgGroup.add_argument(
419
+ "--mas-aibroker-watsonxai-apikey",
420
+ dest="mas_aibroker_watsonxai_apikey",
421
+ required=False,
422
+ help="Customize Manage database encryption keys"
423
+ )
424
+ aibrokerArgGroup.add_argument(
425
+ "--mas-aibroker-watsonxai-url",
426
+ dest="mas_aibroker_watsonxai_url",
427
+ required=False,
428
+ help="Customize Manage database encryption keys"
429
+ )
430
+ aibrokerArgGroup.add_argument(
431
+ "--mas-aibroker-watsonxai-project-id",
432
+ dest="mas_aibroker_watsonxai_project_id",
433
+ required=False,
434
+ help="Customize Manage database encryption keys"
435
+ )
436
+ aibrokerArgGroup.add_argument(
437
+ "--mas-aibroker-watsonx-action",
438
+ dest="mas_aibroker_watsonx_action",
439
+ required=False,
440
+ help="Customize Manage database encryption keys"
441
+ )
442
+ aibrokerArgGroup.add_argument(
443
+ "--mas-aibroker-db-host",
444
+ dest="mas_aibroker_db_host",
445
+ required=False,
446
+ help="Customize Manage database encryption keys"
447
+ )
448
+ aibrokerArgGroup.add_argument(
449
+ "--mas-aibroker-db-port",
450
+ dest="mas_aibroker_db_port",
451
+ required=False,
452
+ help="Customize Manage database encryption keys"
453
+ )
454
+ aibrokerArgGroup.add_argument(
455
+ "--mas-aibroker-db-user",
456
+ dest="mas_aibroker_db_user",
457
+ required=False,
458
+ help="Customize Manage database encryption keys"
459
+ )
460
+ aibrokerArgGroup.add_argument(
461
+ "--mas-aibroker-db-database",
462
+ dest="mas_aibroker_db_database",
463
+ required=False,
464
+ help="Customize Manage database encryption keys"
465
+ )
466
+ aibrokerArgGroup.add_argument(
467
+ "--mas-aibroker-db-secret-name",
468
+ dest="mas_aibroker_db_secret_name",
469
+ required=False,
470
+ help="Customize Manage database encryption keys"
471
+ )
472
+ aibrokerArgGroup.add_argument(
473
+ "--mas-aibroker-db-secret-key",
474
+ dest="mas_aibroker_db_secret_key",
475
+ required=False,
476
+ help="Customize Manage database encryption keys"
477
+ )
478
+ aibrokerArgGroup.add_argument(
479
+ "--mas-aibroker-db-secret-value",
480
+ dest="mas_aibroker_db_secret_value",
481
+ required=False,
482
+ help="Customize Manage database encryption keys"
483
+ )
301
484
 
302
485
  # Arcgis
303
486
  # -----------------------------------------------------------------------------
@@ -728,6 +911,7 @@ cosArgGroup.add_argument(
728
911
  )
729
912
  cosArgGroup.add_argument(
730
913
  "--cos-resourcegroup",
914
+ dest="ibmcos_resourcegroup",
731
915
  required=False,
732
916
  help="When using IBM COS, set the resource group where the instance will run"
733
917
  )
@@ -895,6 +1079,12 @@ otherArgGroup.add_argument(
895
1079
  default=False,
896
1080
  help="Launch the upgrade without prompting for confirmation",
897
1081
  )
1082
+ otherArgGroup.add_argument(
1083
+ "--image-pull-policy",
1084
+ dest="image_pull_policy",
1085
+ required=False,
1086
+ help="Manually set the image pull policy used in the Tekton Pipeline",
1087
+ )
898
1088
 
899
1089
  otherArgGroup.add_argument(
900
1090
  "-h", "--help",
@@ -137,40 +137,40 @@ class AdditionalConfigsMixin():
137
137
 
138
138
  apps = {
139
139
  "mas_app_channel_assist": {
140
- "dir": self.getParam("mas_manual_cert_dir") + "/assist/",
140
+ "dir": self.manualCertsDir + "/assist/",
141
141
  "keyPrefix": "assist."
142
142
  },
143
143
  "mas_app_channel_manage": {
144
- "dir": self.getParam("mas_manual_cert_dir") + "/manage/",
144
+ "dir": self.manualCertsDir + "/manage/",
145
145
  "keyPrefix": "manage."
146
146
  },
147
147
  "mas_app_channel_iot": {
148
- "dir": self.getParam("mas_manual_cert_dir") + "/iot/",
148
+ "dir": self.manualCertsDir + "/iot/",
149
149
  "keyPrefix": "iot."
150
150
  },
151
151
  "mas_app_channel_monitor": {
152
- "dir": self.getParam("mas_manual_cert_dir") + "/monitor/",
152
+ "dir": self.manualCertsDir + "/monitor/",
153
153
  "keyPrefix": "monitor."
154
154
  },
155
155
  "mas_app_channel_predict": {
156
- "dir": self.getParam("mas_manual_cert_dir") + "/predict/",
156
+ "dir": self.manualCertsDir + "/predict/",
157
157
  "keyPrefix": "predict."
158
158
  },
159
159
  "mas_app_channel_visualinspection": {
160
- "dir": self.getParam("mas_manual_cert_dir") + "/visualinspection/",
160
+ "dir": self.manualCertsDir + "/visualinspection/",
161
161
  "keyPrefix": "visualinspection."
162
162
  },
163
163
  "mas_app_channel_optimizer": {
164
- "dir": self.getParam("mas_manual_cert_dir") + "/optimizer/",
164
+ "dir": self.manualCertsDir + "/optimizer/",
165
165
  "keyPrefix": "optimizer."
166
166
  }
167
167
  }
168
168
 
169
169
  for file in ["ca.crt", "tls.crt", "tls.key"]:
170
- if file not in map(path.basename, glob(f'{self.getParam("mas_manual_cert_dir")}/core/*')):
171
- self.fatalError(f'{file} is not present in {self.getParam("mas_manual_cert_dir")}/core/')
170
+ if file not in map(path.basename, glob(f'{self.manualCertsDir}/core/*')):
171
+ self.fatalError(f'{file} is not present in {self.manualCertsDir}/core/')
172
172
  for ext in extensions:
173
- certsSecret = self.addFilesToSecret(certsSecret, self.getParam("mas_manual_cert_dir") + '/core/', ext, "core.")
173
+ certsSecret = self.addFilesToSecret(certsSecret, self.manualCertsDir + '/core/', ext, "core.")
174
174
 
175
175
  for app in apps:
176
176
  if self.getParam(app) != "":
@@ -246,3 +246,27 @@ class ManageSettingsMixin():
246
246
  self.manageSettingsTimezone()
247
247
  self.manageSettingsLanguages()
248
248
  self.manageSettingsCP4D()
249
+
250
+ def aibrokerSettings(self) -> None:
251
+ if self.installAiBroker:
252
+ self.printH2("Maximo AI Broker Settings - Storage, WatsonX, MariaDB details")
253
+ self.printDescription(["Customise AI Broker details"])
254
+ self.promptForString("Storage provider", "mas_aibroker_storage_provider")
255
+ self.promptForString("Storage access key", "mas_aibroker_storage_accesskey")
256
+ self.promptForString("Storage secret key", "mas_aibroker_storage_secretkey")
257
+ self.promptForString("Storage host", "mas_aibroker_storage_host")
258
+ self.promptForString("Storage port", "mas_aibroker_storage_port")
259
+ self.promptForString("Storage ssl", "mas_aibroker_storage_ssl")
260
+ self.promptForString("Storage region", "mas_aibroker_storage_region")
261
+ self.promptForString("Storage pipelines bucket", "mas_aibroker_storage_pipelines_bucket")
262
+ self.promptForString("Storage tenants bucket", "mas_aibroker_storage_tenants_bucket")
263
+ self.promptForString("Storage templates bucket", "mas_aibroker_storage_templates_bucket")
264
+ self.promptForString("Watsonxai api key", "mas_aibroker_watsonxai_apikey")
265
+ self.promptForString("Watsonxai machine learning url", "mas_aibroker_watsonxai_url")
266
+ self.promptForString("Watsonxai project id", "mas_aibroker_watsonxai_project_id")
267
+ self.promptForString("Database host", "mas_aibroker_db_host")
268
+ self.promptForString("Database port", "mas_aibroker_db_port")
269
+ self.promptForString("Database user", "mas_aibroker_db_user")
270
+ self.promptForString("Database name", "mas_aibroker_db_database")
271
+ self.promptForString("Database Secretname", "mas_aibroker_db_secret_name")
272
+ self.promptForString("Database password", "mas_aibroker_db_secret_value")
@@ -77,7 +77,7 @@ class InstallSummarizerMixin():
77
77
 
78
78
  if self.getParam("mas_manual_cert_mgmt") != "":
79
79
  print()
80
- self.printParamSummary("Manual Certificates", "mas_manual_cert_dir")
80
+ self.printSummary("Manual Certificates", self.manualCertsDir)
81
81
  else:
82
82
  print()
83
83
  self.printSummary("Manual Certificates", "Not Configured")
@@ -155,6 +155,32 @@ class InstallSummarizerMixin():
155
155
  else:
156
156
  self.printSummary("Visual Inspection", "Do Not Install")
157
157
 
158
+ def aibrokerSummary(self) -> None:
159
+ if self.installAiBroker:
160
+ self.printSummary("AI Broker", self.params["mas_app_channel_aibroker"])
161
+ print_formatted_text(HTML(" <SkyBlue>+ Maximo AI Broker Settings</SkyBlue>"))
162
+ self.printParamSummary(" + Storage provider", "mas_aibroker_storage_provider")
163
+ self.printParamSummary(" + Storage access key", "mas_aibroker_storage_accesskey")
164
+ self.printParamSummary(" + Storage secret key", "mas_aibroker_storage_secretkey")
165
+ self.printParamSummary(" + Storage host", "mas_aibroker_storage_host")
166
+ self.printParamSummary(" + Storage port", "mas_aibroker_storage_port")
167
+ self.printParamSummary(" + Storage ssl", "mas_aibroker_storage_ssl")
168
+ self.printParamSummary(" + Storage region", "mas_aibroker_storage_region")
169
+ self.printParamSummary(" + Storage pipelines bucket", "mas_aibroker_storage_pipelines_bucket")
170
+ self.printParamSummary(" + Storage tenants bucket", "mas_aibroker_storage_tenants_bucket")
171
+ self.printParamSummary(" + Storage templates bucket", "mas_aibroker_storage_templates_bucket")
172
+ self.printParamSummary(" + Watsonxai api key", "mas_aibroker_watsonxai_apikey")
173
+ self.printParamSummary(" + Watsonxai machine learning url", "mas_aibroker_watsonxai_url")
174
+ self.printParamSummary(" + Watsonxai project id", "mas_aibroker_watsonxai_project_id")
175
+ self.printParamSummary(" + Database host", "mas_aibroker_db_host")
176
+ self.printParamSummary(" + Database port", "mas_aibroker_db_port")
177
+ self.printParamSummary(" + Database user", "mas_aibroker_db_user")
178
+ self.printParamSummary(" + Database name", "mas_aibroker_db_database")
179
+ self.printParamSummary(" + Database Secretname", "mas_aibroker_db_secret_name")
180
+ self.printParamSummary(" + Database password", "mas_aibroker_db_secret_value")
181
+ else:
182
+ self.printSummary("AI Broker", "Do Not Install")
183
+
158
184
  def manageSummary(self) -> None:
159
185
  if self.installManage:
160
186
  self.printSummary("Manage", self.params["mas_app_channel_manage"])
@@ -253,8 +279,8 @@ class InstallSummarizerMixin():
253
279
  self.printH2("Cloud Object Storage")
254
280
  if self.getParam("cos_type") != "":
255
281
  self.printParamSummary("Type", "cos_type")
256
- if self.getParam("cos_resourcegroup") != "":
257
- self.printParamSummary("Resource Group", "cos_resourcegroup")
282
+ if self.getParam("ibmcos_resourcegroup") != "":
283
+ self.printParamSummary("Resource Group", "ibmcos_resourcegroup")
258
284
  else:
259
285
  self.printSummary("Type", "None")
260
286
 
@@ -341,6 +367,7 @@ class InstallSummarizerMixin():
341
367
  self.optimizerSummary()
342
368
  self.assistSummary()
343
369
  self.inspectionSummary()
370
+ self.aibrokerSummary()
344
371
 
345
372
  # Application Dependencies
346
373
  self.mongoSummary()