diff --git a/script/gs_install b/script/gs_install index 54696c1..17b234f 100644 --- a/script/gs_install +++ b/script/gs_install @@ -216,6 +216,9 @@ General options: # parameter --time-out if (ParaDict.__contains__("time_out")): self.time_out = ParaDict.get("time_out") + # parameter --dorado-info + if (ParaDict.__contains__("dorado-config")): + self.dorado_config = ParaDict.get("dorado-config") def checkUser(self): """ diff --git a/script/gspylib/common/LocalBaseOM.py b/script/gspylib/common/LocalBaseOM.py index 578d25b..8073f86 100644 --- a/script/gspylib/common/LocalBaseOM.py +++ b/script/gspylib/common/LocalBaseOM.py @@ -49,7 +49,8 @@ class LocalBaseOM(object): gtmInitParas=None, paxos_mode=False, dss_mode=False, - dss_config=""): + dss_config="", + dorado_config=""): ''' Constructor ''' @@ -79,6 +80,7 @@ class LocalBaseOM(object): self.paxos_mode = paxos_mode self.dss_mode = dss_mode self.dss_config = dss_config + self.dorado_config = dorado_config def initComponent(self, paxos_mode=False): """ @@ -153,6 +155,7 @@ class LocalBaseOM(object): component.paxos_mode = paxos_mode self.initComponentAttributes(component) component.initParas = self.initParas + component.dorado_config = self.dorado_config self.dnCons.append(component) def readConfigInfo(self): diff --git a/script/gspylib/common/ParallelBaseOM.py b/script/gspylib/common/ParallelBaseOM.py index e80b791..3eac95f 100644 --- a/script/gspylib/common/ParallelBaseOM.py +++ b/script/gspylib/common/ParallelBaseOM.py @@ -80,6 +80,7 @@ class ParallelBaseOM(object): self.cnCons = [] self.dnCons = [] self.dss_cons = [] + self.dorado_config = "" # localMode is same as isSingle in all OM script, expect for # gs_preinstall. # in gs_preinstall, localMode means local mode for master-standby diff --git a/script/gspylib/common/ParameterParsecheck.py b/script/gspylib/common/ParameterParsecheck.py index 2fa68bb..6a29fc7 100644 --- a/script/gspylib/common/ParameterParsecheck.py +++ b/script/gspylib/common/ParameterParsecheck.py @@ -68,7 +68,7 @@ gs_preinstall = ["-?", "--help", "-V", "--version", "-U:", "-G:", "-L", "-l:", "--non-interactive", "--delete-root-trust", "--unused-third-party"] gs_install = ["-?", "--help", "-V", "--version", "-X:", "-l:", "--gsinit-parameter=", "--dn-guc=", "--cms-guc=", - "--time-out=", "--alarm-component="] + "--time-out=", "--dorado-config=", "--alarm-component="] gs_uninstall = ["-?", "--help", "-V", "--version", "-l:", "-L", "--delete-data"] gs_postuninstall = ["-?", "--help", "-V", "--version", "--delete-user", @@ -302,6 +302,7 @@ class Parameter(): "--alarm-type": "warningType", "--alarm-server-addr": "warningserverip", "--time-out": "time_out", "": "", + "--dorado-config": "dorado-config", "--alarm-component": "alarm_component", "--SSD-fault-time": "SSDFaultTime", "--begin-time": "begintime", @@ -473,6 +474,8 @@ class Parameter(): PARAMETER_VALUEDICT['new_values'] = value.strip().split(",") elif key == "--upgrade-package": PARAMETER_VALUEDICT["upgrade-package"] = value.strip() + elif key == "--dorado-config": + PARAMETER_VALUEDICT["dorado-config"] = value.strip() # Only check / symbol for gs_lcct. if key in ("--name", "--nodegroup-name"): self.checkLcGroupName(key, value) diff --git a/script/gspylib/component/BaseComponent.py b/script/gspylib/component/BaseComponent.py index 9a631f4..b2fe6f7 100644 --- a/script/gspylib/component/BaseComponent.py +++ b/script/gspylib/component/BaseComponent.py @@ -55,6 +55,7 @@ class BaseComponent(object): self.paxos_mode = '' self.dss_mode = '' self.dss_config = '' + self.dorado_config = '' def install(self): pass diff --git a/script/gspylib/component/Kernel/DN_OLAP/DN_OLAP.py b/script/gspylib/component/Kernel/DN_OLAP/DN_OLAP.py index 846e6ab..d3897ec 100644 --- a/script/gspylib/component/Kernel/DN_OLAP/DN_OLAP.py +++ b/script/gspylib/component/Kernel/DN_OLAP/DN_OLAP.py @@ -157,6 +157,10 @@ class DN_OLAP(Kernel): " --socketpath=\"{}\"".format( "+{},+{}".format(vgname, pri_vgname), cfg_context, inst_id, "UDS:{}/.dss_unix_d_socket".format(dss_home)) + if (self.dorado_config != "" and self.instInfo.instanceType == DefaultValue.MASTER_INSTANCE): + cmd += " -g %s" % self.dorado_config + tmpDict3 = {} + tmpDict3["xlog_lock_file_path"] = "'%s/redolog.lock'" % self.instInfo.datadir self.logger.debug("Command for initializing database " "node instance: %s" % cmd) status, output = CmdUtil.retryGetstatusoutput( @@ -167,6 +171,8 @@ class DN_OLAP(Kernel): # set ssl to DB nodes. dnGucParas = self.getDnGUCDict() self.setGucConfig(dnGucParas) + if (self.dorado_config != "" and self.instInfo.instanceType == DefaultValue.MASTER_INSTANCE): + self.setGucConfig(tmpDict3) self.copyAndModCertFiles() def getInstanceNodeName(self): diff --git a/script/impl/install/OLAP/InstallImplOLAP.py b/script/impl/install/OLAP/InstallImplOLAP.py index 5123133..58c591f 100644 --- a/script/impl/install/OLAP/InstallImplOLAP.py +++ b/script/impl/install/OLAP/InstallImplOLAP.py @@ -290,7 +290,7 @@ class InstallImplOLAP(InstallImpl): elif self.context.clusterInfo.enable_dss == 'on': dss_config = DssConfig.get_value_b64_handler( 'dss_nodes_list', self.context.clusterInfo.dss_config) - cmd += f" --dss_mode --dss_config={dss_config}" + cmd += f" --dss_mode --dss_config={dss_config} --dorado_config={self.context.dorado_config}" self.context.logger.debug( "Command for initializing instances: %s" % cmd) diff --git a/script/local/InitInstance.py b/script/local/InitInstance.py index 62f6bd2..d9aa645 100644 --- a/script/local/InitInstance.py +++ b/script/local/InitInstance.py @@ -62,6 +62,7 @@ class CmdOptions(): self.paxos_mode = False self.dss_mode = False self.dss_config = "" + self.dorado_config = "" def usage(): @@ -79,7 +80,7 @@ def parseCommandLine(): try: opts, args = getopt.getopt(sys.argv[1:], "U:P:G:l:?", [ "help", "dws_mode", "vc_mode", "paxos_mode", "dss_mode", - "dss_config=" + "dss_config=", "dorado_config=" ]) except Exception as e: usage() @@ -112,6 +113,8 @@ def parseCommandLine(): g_opts.dss_mode = True elif key == "--dss_config": g_opts.dss_config = value.strip() + elif key == "--dorado_config": + g_opts.dorado_config = value.strip() Parameter.checkParaVaild(key, value) @@ -178,7 +181,8 @@ class initDbNode(LocalBaseOM): dbInitParams=None, paxos_mode=False, dss_mode=False, - dss_config=""): + dss_config="", + dorado_config = ""): """ function: init instance input : logFile, user, clusterConf, dbInitParams @@ -194,7 +198,8 @@ class initDbNode(LocalBaseOM): dbInitParams, paxos_mode, dss_mode=dss_mode, - dss_config=dss_config) + dss_config=dss_config, + dorado_config=dorado_config) if self.clusterConfig == "": # Read config from static config file self.readConfigInfo() @@ -269,7 +274,8 @@ if __name__ == '__main__': g_opts.dbInitParams, g_opts.paxos_mode, dss_mode=g_opts.dss_mode, - dss_config=g_opts.dss_config) + dss_config=g_opts.dss_config, + dorado_config=g_opts.dorado_config) dbInit.initNodeInst(g_opts.vc_mode) except Exception as e: