From 38fb23354595c6c3c48b1ea412b753b45fbf7cd0 Mon Sep 17 00:00:00 2001 From: Marcelo Blechner Date: Mon, 24 Feb 2025 12:01:06 -0300 Subject: [PATCH] Making sure Manage Foundation is installed when MAS 9.1 channel is selected and user chooses not to install Manage. --- python/src/mas/cli/install/app.py | 13 +- .../mas/cli/install/settings/db2Settings.py | 32 +-- .../cli/install/settings/manageSettings.py | 259 ++++++++++-------- python/src/mas/cli/install/summarizer.py | 66 ++--- 4 files changed, 200 insertions(+), 170 deletions(-) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index fab1cdf295..f6105289b4 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -615,7 +615,18 @@ def configApps(self): if self.installMonitor: self.configAppChannel("monitor") - self.installManage = self.yesOrNo("Install Manage") + self.manageAppName = "Manage" + self.isManageFoundation = False + self.installManage = self.yesOrNo(f"Install {self.manageAppName}") + + # If the selection was to not install manage but we are in mas_channel 9.1 or later, we need to set self.isManageFoundation to True + # Also, we need to force self.installManage to be True because Manage must always be installed in MAS 9.1 or later + if not self.installManage: + if not self.getParam("mas_channel").startswith("8.") and not self.getParam("mas_channel").startswith("9.0"): + self.installManage = True + self.isManageFoundation = True + self.manageAppName = "Manage Foundation" + self.printDescription([f"{self.manageAppName} will be installed with the following apps: User, Group, Graphite Tool and Mobile Configurator"]) if self.installManage: self.configAppChannel("manage") diff --git a/python/src/mas/cli/install/settings/db2Settings.py b/python/src/mas/cli/install/settings/db2Settings.py index d321b4c3bc..4782269859 100644 --- a/python/src/mas/cli/install/settings/db2Settings.py +++ b/python/src/mas/cli/install/settings/db2Settings.py @@ -40,19 +40,19 @@ def configDb2(self) -> None: # Check if a configuration already exists before creating a new one jdbcCfgFile = path.join(self.localConfigDir, f"jdbc-{instanceId}-manage.yaml") - print_formatted_text(f"Searching for Manage database configuration file in {jdbcCfgFile} ...") + print_formatted_text(f"Searching for {self.manageAppName} database configuration file in {jdbcCfgFile} ...") if path.exists(jdbcCfgFile): - if self.yesOrNo(f"Manage database configuration file 'jdbc-{instanceId}-manage.yaml' already exists. Do you want to generate a new one"): + if self.yesOrNo(f"{self.manageAppName} database configuration file 'jdbc-{instanceId}-manage.yaml' already exists. Do you want to generate a new one"): self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="manage", destination=jdbcCfgFile) else: - print_formatted_text(f"Expected file ({jdbcCfgFile}) was not found, generating a valid Manage database configuration file now ...") + print_formatted_text(f"Expected file ({jdbcCfgFile}) was not found, generating a valid {self.manageAppName} database configuration file now ...") self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="manage", destination=jdbcCfgFile) return # Proceed as normal # We know we are installing either IoT or Manage, and on amd64 target architecture self.printDescription([ - "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, Manage, Monitor, & Predict) or you may choose to configure MAS to use an existing database" + f"The installer can setup one or more IBM Db2 instances in your OpenShift cluster for the use of applications that require a JDBC datasource (IoT, {self.manageAppName}, Monitor, & Predict) or you may choose to configure MAS to use an existing database" ]) self.setParam("db2_cpu_requests", "4000m") @@ -111,28 +111,28 @@ def configDb2(self) -> None: self.setParam("db2_action_system", "none") if self.installManage: - self.printH2("Database Configuration for Maximo Manage") + self.printH2(f"Database Configuration for Maximo {self.manageAppName}") self.printDescription([ - "Maximo Manage can be configured to share the system Db2 instance or use it's own dedicated database:", + f"Maximo {self.manageAppName} can be configured to share the system Db2 instance or use it's own dedicated database:", " - Use of a shared instance has a significant footprint reduction but is only recommended for development/test/demo installs", " - In most production systems you will want to use a dedicated database", " - IBM Db2, Oracle Database, & Microsoft SQL Server are all supported database options" ]) # Determine whether to use the system or a dedicated database - if self.installIoT and self.yesOrNo("Re-use System Db2 instance for Manage application"): + if self.installIoT and self.yesOrNo(f"Re-use System Db2 instance for {self.manageAppName} application"): # We are going to bind Manage to the system database, which has already been set up in the previous step self.setParam("mas_appws_bindings_jdbc_manage", "system") self.setParam("db2_action_manage", "none") else: self.setParam("mas_appws_bindings_jdbc_manage", "workspace-application") - if self.yesOrNo("Create manage dedicated Db2 instance using the IBM Db2 Universal Operator"): + if self.yesOrNo(f"Create {self.manageAppName} dedicated Db2 instance using the IBM Db2 Universal Operator"): self.setParam("db2_action_manage", "install") self.printDescription([ - "Available Db2 instance types for Manage:", + f"Available Db2 instance types for {self.manageAppName}:", " 1. DB2 Warehouse (Default option)", " 2. DB2 Online Transactional Processing (OLTP)" ]) - self.promptForListSelect(message="Select the Manage dedicated DB2 instance type", options=["db2wh", "db2oltp"], param="db2_type", default="1") + self.promptForListSelect(message=f"Select the {self.manageAppName} dedicated DB2 instance type", options=["db2wh", "db2oltp"], param="db2_type", default="1") else: workspaceId = self.getParam("mas_workspace_id") self.setParam("db2_action_manage", "byo") @@ -141,12 +141,12 @@ def configDb2(self) -> None: # Check if a configuration already exists before creating a new one jdbcCfgFile = path.join(self.localConfigDir, f"jdbc-{instanceId}-manage.yaml") - print_formatted_text(f"Searching for Manage database configuration file in {jdbcCfgFile} ...") + print_formatted_text(f"Searching for {self.manageAppName} database configuration file in {jdbcCfgFile} ...") if path.exists(jdbcCfgFile): - if self.yesOrNo(f"Manage database configuration file 'jdbc-{instanceId}-manage.yaml' already exists. Do you want to generate a new one"): + if self.yesOrNo(f"{self.manageAppName} database configuration file 'jdbc-{instanceId}-manage.yaml' already exists. Do you want to generate a new one"): self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="manage", destination=jdbcCfgFile) else: - print_formatted_text(f"Expected file ({jdbcCfgFile}) was not found, generating a valid Manage database configuration file now ...") + print_formatted_text(f"Expected file ({jdbcCfgFile}) was not found, generating a valid {self.manageAppName} database configuration file now ...") self.generateJDBCCfg(instanceId=instanceId, scope="workspace-application", workspaceId=workspaceId, appId="manage", destination=jdbcCfgFile) else: self.setParam("db2_action_manage", "none") @@ -161,7 +161,7 @@ def configDb2(self) -> None: # ------------------------------------------------------------------------- self.printH2("Node Affinity and Tolerations") self.printDescription([ - "Note that the same settings are applied to both the IoT and Manage Db2 instances", + f"Note that the same settings are applied to both the IoT and {self.manageAppName} Db2 instances", "Use existing node labels and taints to control scheduling of the Db2 workload in your cluster", "For more information refer to the Red Hat documentation:", " - https://docs.openshift.com/container-platform/4.16/nodes/scheduling/nodes-scheduler-node-affinity.html", @@ -179,7 +179,7 @@ def configDb2(self) -> None: self.printH2("Database CPU & Memory") self.printDescription([ - "Note that the same settings are applied to both the IoT and Manage Db2 instances" + f"Note that the same settings are applied to both the IoT and {self.manageAppName} Db2 instances" ]) if self.yesOrNo("Customize CPU and memory request/limit"): @@ -190,7 +190,7 @@ def configDb2(self) -> None: self.printH2("Database Storage Capacity") self.printDescription([ - "Note that the same settings are applied to both the IoT and Manage Db2 instances" + f"Note that the same settings are applied to both the IoT and {self.manageAppName} Db2 instances" ]) if self.yesOrNo("Customize storage capacity"): diff --git a/python/src/mas/cli/install/settings/manageSettings.py b/python/src/mas/cli/install/settings/manageSettings.py index 10344b5b1c..b473423414 100644 --- a/python/src/mas/cli/install/settings/manageSettings.py +++ b/python/src/mas/cli/install/settings/manageSettings.py @@ -21,7 +21,7 @@ def arcgisSettings(self) -> None: "", "Maximo Spatial requires a map server provider in order to enable geospatial capabilities", "You may choose your preferred map provider later or you can enable IBM Maximo Location Services for Esri now", - "This includes ArcGIS Enterprise as part of the Manage and Maximo Spatial bundle (Additional AppPoints required)." + f"This includes ArcGIS Enterprise as part of the {self.manageAppName} and Maximo Spatial bundle (Additional AppPoints required)." ]) if self.yesOrNo("Include IBM Maximo Location Services for Esri"): @@ -41,8 +41,8 @@ def arcgisSettings(self) -> None: def manageSettings(self) -> None: if self.installManage: - self.printH1("Configure Maximo Manage") - self.printDescription(["Customize your Manage installation, refer to the product documentation for more information"]) + self.printH1(f"Configure Maximo {self.manageAppName}") + self.printDescription([f"Customize your {self.manageAppName} installation, refer to the product documentation for more information"]) self.manageSettingsComponents() self.arcgisSettings() @@ -70,64 +70,69 @@ def manageSettings(self) -> None: self.setParam("mas_app_settings_jms_queue_pvc_accessmode", accessMode) def manageSettingsComponents(self) -> None: - self.printH2("Maximo Manage Components") - self.printDescription(["The default configuration will install Manage with Health enabled, alternatively choose exactly what industry solutions and add-ons will be configured"]) - - self.params["mas_appws_components"] = "base=latest,health=latest" - if self.yesOrNo("Select components to enable"): - self.params["mas_appws_components"] = "base=latest" - if self.yesOrNo(" - Asset Configuration Manager"): - self.params["mas_appws_components"] += ",acm=latest" - if self.yesOrNo(" - Aviation"): - self.params["mas_appws_components"] += ",aviation=latest" - if self.yesOrNo(" - Civil Infrastructure"): - self.params["mas_appws_components"] += ",civil=latest" - if self.yesOrNo(" - Envizi"): - self.params["mas_appws_components"] += ",envizi=latest" - if self.yesOrNo(" - Health"): - self.params["mas_appws_components"] += ",health=latest" - if self.yesOrNo(" - Health, Safety and Environment"): - self.params["mas_appws_components"] += ",hse=latest" - if self.yesOrNo(" - Maximo IT"): - self.params["mas_appws_components"] += ",icd=latest" - if self.yesOrNo(" - Nuclear"): - self.params["mas_appws_components"] += ",nuclear=latest" - if self.yesOrNo(" - Oil & Gas"): - self.params["mas_appws_components"] += ",oilandgas=latest" - if self.yesOrNo(" - Connector for Oracle Applications"): - self.params["mas_appws_components"] += ",oracleadapter=latest" - if self.yesOrNo(" - Connector for SAP Application"): - self.params["mas_appws_components"] += ",sapadapter=latest" - if self.yesOrNo(" - Service Provider"): - self.params["mas_appws_components"] += ",serviceprovider=latest" - if self.yesOrNo(" - Spatial"): - self.params["mas_appws_components"] += ",spatial=latest" - if self.yesOrNo(" - Strategize"): - self.params["mas_appws_components"] += ",strategize=latest" - if self.yesOrNo(" - Transportation"): - self.params["mas_appws_components"] += ",transportation=latest" - if self.yesOrNo(" - Tririga"): - self.params["mas_appws_components"] += ",tririga=latest" - if self.yesOrNo(" - Utilities"): - self.params["mas_appws_components"] += ",utilities=latest" - if self.yesOrNo(" - Workday Applications"): - self.params["mas_appws_components"] += ",workday=latest" - logger.debug(f"Generated mas_appws_components = {self.params['mas_appws_components']}") - - if ",icd=" in self.params["mas_appws_components"]: - self.printH2("Maximo IT License Terms") - self.printDescription([ - "For information about your Maximo IT License, see https://ibm.biz/MAXIT81-License", - "To continue with the installation, you must accept these additional license terms" - ]) - - if not self.yesOrNo("Do you accept the license terms"): - exit(1) + # Only ask to install Manage components if this is a full Manage installation + # If this is a Manage Foundation installation, leave mas_appws_components blank + if self.isManageFoundation: + self.params["mas_appws_components"] = "" + else: + self.printH2(f"Maximo {self.manageAppName} Components") + self.printDescription([f"The default configuration will install {self.manageAppName} with Health enabled, alternatively choose exactly what industry solutions and add-ons will be configured"]) + + self.params["mas_appws_components"] = "base=latest,health=latest" + if self.yesOrNo("Select components to enable"): + self.params["mas_appws_components"] = "base=latest" + if self.yesOrNo(" - Asset Configuration Manager"): + self.params["mas_appws_components"] += ",acm=latest" + if self.yesOrNo(" - Aviation"): + self.params["mas_appws_components"] += ",aviation=latest" + if self.yesOrNo(" - Civil Infrastructure"): + self.params["mas_appws_components"] += ",civil=latest" + if self.yesOrNo(" - Envizi"): + self.params["mas_appws_components"] += ",envizi=latest" + if self.yesOrNo(" - Health"): + self.params["mas_appws_components"] += ",health=latest" + if self.yesOrNo(" - Health, Safety and Environment"): + self.params["mas_appws_components"] += ",hse=latest" + if self.yesOrNo(" - Maximo IT"): + self.params["mas_appws_components"] += ",icd=latest" + if self.yesOrNo(" - Nuclear"): + self.params["mas_appws_components"] += ",nuclear=latest" + if self.yesOrNo(" - Oil & Gas"): + self.params["mas_appws_components"] += ",oilandgas=latest" + if self.yesOrNo(" - Connector for Oracle Applications"): + self.params["mas_appws_components"] += ",oracleadapter=latest" + if self.yesOrNo(" - Connector for SAP Application"): + self.params["mas_appws_components"] += ",sapadapter=latest" + if self.yesOrNo(" - Service Provider"): + self.params["mas_appws_components"] += ",serviceprovider=latest" + if self.yesOrNo(" - Spatial"): + self.params["mas_appws_components"] += ",spatial=latest" + if self.yesOrNo(" - Strategize"): + self.params["mas_appws_components"] += ",strategize=latest" + if self.yesOrNo(" - Transportation"): + self.params["mas_appws_components"] += ",transportation=latest" + if self.yesOrNo(" - Tririga"): + self.params["mas_appws_components"] += ",tririga=latest" + if self.yesOrNo(" - Utilities"): + self.params["mas_appws_components"] += ",utilities=latest" + if self.yesOrNo(" - Workday Applications"): + self.params["mas_appws_components"] += ",workday=latest" + logger.debug(f"Generated mas_appws_components = {self.params['mas_appws_components']}") + + if ",icd=" in self.params["mas_appws_components"]: + self.printH2("Maximo IT License Terms") + self.printDescription([ + "For information about your Maximo IT License, see https://ibm.biz/MAXIT81-License", + "To continue with the installation, you must accept these additional license terms" + ]) + + if not self.yesOrNo("Do you accept the license terms"): + exit(1) def manageSettingsDatabase(self) -> None: if self.showAdvancedOptions: - self.printH2("Maximo Manage Settings - Database") - self.printDescription(["Customise the schema, tablespace, indexspace, and encryption settings used by Manage"]) + self.printH2(f"Maximo {self.manageAppName} Settings - Database") + self.printDescription([f"Customise the schema, tablespace, indexspace, and encryption settings used by {self.manageAppName}"]) if self.yesOrNo("Customize database settings"): self.promptForString("Schema", "mas_app_settings_db2_schema", default="maximo") @@ -142,80 +147,85 @@ def manageSettingsDatabase(self) -> None: self.yesOrNo("Override database encryption secrets with provided keys", "mas_app_settings_override_encryption_secrets_flag") def manageSettingsServerBundleConfig(self) -> None: - if self.showAdvancedOptions: - self.printH2("Maximo Manage Settings - Server Bundles") - self.printDescription([ - "Define how you want to configure Manage servers:", - " - You can have one or multiple Manage servers distributing workload", - " - Additionally, you can choose to include JMS server for messaging queues", - "", - "Configurations:", - " 1. Deploy the 'all' server pod only (workload is concentrated in just one server pod but consumes less resource)", - " 2. Deploy the 'all' and 'jms' bundle pods (workload is concentrated in just one server pod and includes jms server)" - ]) - - if not self.isSNO(): + if self.isManageFoundation: + self.setParam("mas_app_settings_server_bundles_size", "foundation") + else: + if self.showAdvancedOptions: + self.printH2(f"Maximo {self.manageAppName} Settings - Server Bundles") self.printDescription([ - " 3. Deploy the 'mea', 'report', 'ui' and 'cron' bundle pods (workload is distributed across multiple server pods)", - " 4. Deploy the 'mea', 'report', 'ui', 'cron' and 'jms' bundle pods (workload is distributed across multiple server pods and includes jms server)" + f"Define how you want to configure {self.manageAppName} servers:", + f" - You can have one or multiple {self.manageAppName} servers distributing workload", + " - Additionally, you can choose to include JMS server for messaging queues", + "", + "Configurations:", + " 1. Deploy the 'all' server pod only (workload is concentrated in just one server pod but consumes less resource)", + " 2. Deploy the 'all' and 'jms' bundle pods (workload is concentrated in just one server pod and includes jms server)" ]) - manageServerBundleSelection = self.promptForString("Select a server bundle configuration") - - if manageServerBundleSelection == "1": - self.setParam("mas_app_settings_server_bundles_size", "dev") - elif manageServerBundleSelection == "2": - self.setParam("mas_app_settings_server_bundles_size", "snojms") - self.setParam("mas_app_settings_persistent_volumes_flag", "true") - elif manageServerBundleSelection == "3": - self.setParam("mas_app_settings_server_bundles_size", "small") - elif manageServerBundleSelection == "4": - self.setParam("mas_app_settings_server_bundles_size", "jms") - self.setParam("mas_app_settings_persistent_volumes_flag", "true") + if not self.isSNO(): + self.printDescription([ + " 3. Deploy the 'mea', 'report', 'ui' and 'cron' bundle pods (workload is distributed across multiple server pods)", + " 4. Deploy the 'mea', 'report', 'ui', 'cron' and 'jms' bundle pods (workload is distributed across multiple server pods and includes jms server)" + ]) + + manageServerBundleSelection = self.promptForString("Select a server bundle configuration") + + if manageServerBundleSelection == "1": + self.setParam("mas_app_settings_server_bundles_size", "dev") + elif manageServerBundleSelection == "2": + self.setParam("mas_app_settings_server_bundles_size", "snojms") + self.setParam("mas_app_settings_persistent_volumes_flag", "true") + elif manageServerBundleSelection == "3": + self.setParam("mas_app_settings_server_bundles_size", "small") + elif manageServerBundleSelection == "4": + self.setParam("mas_app_settings_server_bundles_size", "jms") + self.setParam("mas_app_settings_persistent_volumes_flag", "true") + else: + self.fatalError("Invalid selection") else: - self.fatalError("Invalid selection") - else: - self.setParam("mas_app_settings_server_bundles_size", "dev") + self.setParam("mas_app_settings_server_bundles_size", "dev") def manageSettingsJMS(self) -> None: if self.getParam("mas_app_settings_server_bundles_size") in ["jms", "snojms"]: self.printDescription([ - "Only Manage JMS sequential queues (sqin and sqout) are enabled by default.", + f"Only {self.manageAppName} JMS sequential queues (sqin and sqout) are enabled by default.", "However, you can enable both sequential (sqin and sqout) and continuous queues (cqin and cqout)" ]) - self.yesOrNo("Enable both Manage JMS sequential and continuous queues", "mas_app_settings_default_jms") + self.yesOrNo(f"Enable both {self.manageAppName} JMS sequential and continuous queues", "mas_app_settings_default_jms") def manageSettingsCustomizationArchive(self) -> None: - self.printH2("Maximo Manage Settings - Customization") - self.printDescription([ - "Provide a customization archive to be used in the Manage build process" - ]) + # Only ask about customization archive in full Manage installation + if not self.isManageFoundation: + self.printH2(f"Maximo {self.manageAppName} Settings - Customization") + self.printDescription([ + f"Provide a customization archive to be used in the {self.manageAppName} build process" + ]) - if self.yesOrNo("Include customization archive"): - self.promptForString("Customization archive name", "mas_app_settings_customization_archive_name") - self.promptForString("Customization archive path/url", "mas_app_settings_customization_archive_url") - if self.yesOrNo("Provide authentication to access customization archive URL"): - self.promptForString("Username", "mas_app_settings_customization_archive_username") - self.promptForString("Password", "mas_app_settings_customization_archive_password", isPassword=True) + if self.yesOrNo("Include customization archive"): + self.promptForString("Customization archive name", "mas_app_settings_customization_archive_name") + self.promptForString("Customization archive path/url", "mas_app_settings_customization_archive_url") + if self.yesOrNo("Provide authentication to access customization archive URL"): + self.promptForString("Username", "mas_app_settings_customization_archive_username") + self.promptForString("Password", "mas_app_settings_customization_archive_password", isPassword=True) def manageSettingsDemodata(self) -> None: self.yesOrNo("Create demo data", "mas_app_settings_demodata") def manageSettingsTimezone(self) -> None: - self.promptForString("Manage server timezone", "mas_app_settings_server_timezone", default="GMT") + self.promptForString(f"{self.manageAppName} server timezone", "mas_app_settings_server_timezone", default="GMT") # Set Manage dedicated Db2 instance timezone to be same as Manage server timezone self.setParam("db2_timezone", self.getParam("mas_app_settings_server_timezone")) def manageSettingsLanguages(self) -> None: - self.printH2("Maximo Manage Settings - Languages") + self.printH2(f"Maximo {self.manageAppName} Settings - Languages") self.printDescription([ - "Define the base language for Maximo Manage" + f"Define the base language for Maximo {self.manageAppName}" ]) self.promptForString("Base language", "mas_app_settings_base_lang", default="EN") self.printDescription([ - "Define the additional languages to be configured in Maximo Manage. provide a comma-separated list of supported languages codes, for example: 'JA,DE,AR'", + f"Define the additional languages to be configured in Maximo {self.manageAppName}. provide a comma-separated list of supported languages codes, for example: 'JA,DE,AR'", "A complete list of available language codes is available online:", " https://www.ibm.com/docs/en/mas-cd/mhmpmh-and-p-u/continuous-delivery?topic=deploy-language-support" ]) @@ -225,7 +235,7 @@ def manageSettingsLanguages(self) -> None: def manageSettingsCP4D(self) -> None: if self.getParam("mas_app_channel_manage") in ["8.7.x", "9.0.x"] and self.showAdvancedOptions: self.printDescription([ - "Integration with Cognos Analytics provides additional support for reporting features in Maximo Manage, for more information refer to the documentation online: ", + f"Integration with Cognos Analytics provides additional support for reporting features in Maximo {self.manageAppName}, for more information refer to the documentation online: ", " - https://ibm.biz/BdMuxs" ]) self.yesOrNo("Enable integration with Cognos Analytics", "cpd_install_cognos") @@ -235,21 +245,30 @@ def manageSettingsCP4D(self) -> None: self.configCP4D() def manageSettingsOther(self) -> None: - self.printH2("Maximo Manage Settings - Other") - self.printDescription([ - "Configure additional settings:", - " - Demo data", - " - Base and additional languages", - " - Server timezone", - " - Cognos integration (install Cloud Pak for Data)", - " - Watson Studio Local integration (install Cloud Pak for Data)" - ]) - - if self.yesOrNo("Configure Additional Settings"): - self.manageSettingsDemodata() - self.manageSettingsTimezone() - self.manageSettingsLanguages() - self.manageSettingsCP4D() + self.printH2(f"Maximo {self.manageAppName} Settings - Other") + if self.isManageFoundation: + self.printDescription([ + "Configure additional settings:", + " - Base and additional languages", + " - Server timezone" + ]) + if self.yesOrNo("Configure Additional Settings"): + self.manageSettingsTimezone() + self.manageSettingsLanguages() + else: + self.printDescription([ + "Configure additional settings:", + " - Demo data", + " - Base and additional languages", + " - Server timezone", + " - Cognos integration (install Cloud Pak for Data)", + " - Watson Studio Local integration (install Cloud Pak for Data)" + ]) + if self.yesOrNo("Configure Additional Settings"): + self.manageSettingsDemodata() + self.manageSettingsTimezone() + self.manageSettingsLanguages() + self.manageSettingsCP4D() def aibrokerSettings(self) -> None: if self.installAiBroker: diff --git a/python/src/mas/cli/install/summarizer.py b/python/src/mas/cli/install/summarizer.py index 3c3e1339f1..5c1f82f1a1 100644 --- a/python/src/mas/cli/install/summarizer.py +++ b/python/src/mas/cli/install/summarizer.py @@ -178,39 +178,39 @@ def aibrokerSummary(self) -> None: def manageSummary(self) -> None: if self.installManage: - self.printSummary("Manage", self.params["mas_app_channel_manage"]) - print_formatted_text(HTML(" + Components")) - self.printSummary(" + ACM", "Enabled" if "acm=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Aviation", "Enabled" if "aviation=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Civil Infrastructure", "Enabled" if "civil=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Envizi", "Enabled" if "envizi=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Health", "Enabled" if "health=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + HSE", "Enabled" if "hse=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Maximo IT", "Enabled" if "icd=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Nuclear", "Enabled" if "nuclear=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Oil & Gas", "Enabled" if "oilandgas=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Connector for Oracle", "Enabled" if "oracleadapter=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Connector for SAP", "Enabled" if "sapadapter=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Service Provider", "Enabled" if "serviceprovider=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Spatial", "Enabled" if "spatial=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Strategize", "Enabled" if "strategize=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Transportation", "Enabled" if "transportation=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Tririga", "Enabled" if "tririga=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Utilities", "Enabled" if "utilities=" in self.getParam("mas_appws_components") else "Disabled") - self.printSummary(" + Workday Applications", "Enabled" if "workday=" in self.getParam("mas_appws_components") else "Disabled") - - self.printParamSummary("+ Server bundle size", "mas_app_settings_server_bundles_size") - self.printParamSummary("+ Enable JMS queues", "mas_app_settings_default_jms") - self.printParamSummary("+ Server Timezone", "mas_app_settings_server_timezone") - self.printParamSummary("+ Base Language", "mas_app_settings_base_lang") - self.printParamSummary("+ Additional Languages", "mas_app_settings_secondary_langs") - - print_formatted_text(HTML(" + Database Settings")) - self.printParamSummary(" + Schema", "mas_app_settings_indexspace") - self.printParamSummary(" + Username", "mas_app_settings_db2_schema") - self.printParamSummary(" + Tablespace", "mas_app_settings_tablespace") - self.printParamSummary(" + Indexspace", "mas_app_settings_indexspace") - + self.printSummary(f"{self.manageAppName}", self.params["mas_app_channel_manage"]) + if not self.isManageFoundation: + print_formatted_text(HTML(" + Components")) + self.printSummary(" + ACM", "Enabled" if "acm=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Aviation", "Enabled" if "aviation=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Civil Infrastructure", "Enabled" if "civil=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Envizi", "Enabled" if "envizi=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Health", "Enabled" if "health=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + HSE", "Enabled" if "hse=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Maximo IT", "Enabled" if "icd=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Nuclear", "Enabled" if "nuclear=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Oil & Gas", "Enabled" if "oilandgas=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Connector for Oracle", "Enabled" if "oracleadapter=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Connector for SAP", "Enabled" if "sapadapter=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Service Provider", "Enabled" if "serviceprovider=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Spatial", "Enabled" if "spatial=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Strategize", "Enabled" if "strategize=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Transportation", "Enabled" if "transportation=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Tririga", "Enabled" if "tririga=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Utilities", "Enabled" if "utilities=" in self.getParam("mas_appws_components") else "Disabled") + self.printSummary(" + Workday Applications", "Enabled" if "workday=" in self.getParam("mas_appws_components") else "Disabled") + + self.printParamSummary("+ Server bundle size", "mas_app_settings_server_bundles_size") + self.printParamSummary("+ Enable JMS queues", "mas_app_settings_default_jms") + self.printParamSummary("+ Server Timezone", "mas_app_settings_server_timezone") + self.printParamSummary("+ Base Language", "mas_app_settings_base_lang") + self.printParamSummary("+ Additional Languages", "mas_app_settings_secondary_langs") + + print_formatted_text(HTML(" + Database Settings")) + self.printParamSummary(" + Schema", "mas_app_settings_indexspace") + self.printParamSummary(" + Username", "mas_app_settings_db2_schema") + self.printParamSummary(" + Tablespace", "mas_app_settings_tablespace") + self.printParamSummary(" + Indexspace", "mas_app_settings_indexspace") else: self.printSummary("Manage", "Do Not Install")