示例#1
0
    def doPrivateConfigSet(self, localInst, configFile):
        """
        """
        configFile = os.path.join(localInst.datadir, configFile)
        self.logger.debug("Set private config file: %s" % configFile)
        
        if (localInst.instanceRole == INSTANCE_ROLE_CMAGENT):
            self.modifyConfigItem(localInst, configFile, "log_dir", "%s/cm/cm_agent" % DefaultValue.getUserLogDirWithUser(self.user))
        elif (localInst.instanceRole == INSTANCE_ROLE_COODINATOR):
            self.modifyConfigItem(localInst, configFile, "listen_addresses", "'localhost,%s'" % ",".join(localInst.listenIps))
            self.modifyConfigItem(localInst, configFile, "port", str(localInst.port))
            self.modifyConfigItem(localInst, configFile, "pgxc_node_name", "'cn_%d'" % localInst.instanceId)
            self.modifyConfigItem(localInst, configFile, "pooler_port", str(localInst.haPort))
            self.modifyConfigItem(localInst, configFile, "log_directory", "'%s/pg_log/cn_%d'" % (DefaultValue.getUserLogDirWithUser(self.user), localInst.instanceId))
            self.modifyConfigItem(localInst, configFile, "audit_directory", "'%s/pg_audit/cn_%d'" % (DefaultValue.getUserLogDirWithUser(self.user), localInst.instanceId))
        elif(localInst.instanceRole == INSTANCE_ROLE_DATANODE):
            peerInsts = self.clusterInfo.getPeerInstance(localInst)
            if (len(peerInsts) != 2 and len(peerInsts) != 1):
                self.logger.logExit("Get peer instance failed!")
            masterInst = None
            standbyInst = None
            dummyStandbyInst = None
            nodename = ""
            for i in range(len(peerInsts)):
                if(peerInsts[i].instanceType == MASTER_INSTANCE):
                    masterInst = peerInsts[i]
                elif(peerInsts[i].instanceType == STANDBY_INSTANCE):
                    standbyInst = peerInsts[i]
                elif(peerInsts[i].instanceType == DUMMY_STANDBY_INSTANCE):
                    dummyStandbyInst = peerInsts[i]
                    
            if(localInst.instanceType == MASTER_INSTANCE):
                masterInst = localInst
                nodename = "dn_%d_%d" % (masterInst.instanceId, standbyInst.instanceId)
            elif(localInst.instanceType == STANDBY_INSTANCE):
                standbyInst = localInst
                nodename = "dn_%d_%d" % (masterInst.instanceId, standbyInst.instanceId)
            elif(localInst.instanceType == DUMMY_STANDBY_INSTANCE):
                dummyStandbyInst = localInst
                nodename = "dn_%d_%d" % (masterInst.instanceId, dummyStandbyInst.instanceId)

            self.modifyConfigItem(localInst, configFile, "listen_addresses", "'%s'" % ",".join(localInst.listenIps))
            self.modifyConfigItem(localInst, configFile, "port", str(localInst.port))
            self.modifyConfigItem(localInst, configFile, "pgxc_node_name", "'%s'" % nodename)
            self.modifyConfigItem(localInst, configFile, "log_directory", "'%s/pg_log/dn_%d'" % (DefaultValue.getUserLogDirWithUser(self.user), localInst.instanceId))  
            self.modifyConfigItem(localInst, configFile, "audit_directory", "'%s/pg_audit/dn_%d'" % (DefaultValue.getUserLogDirWithUser(self.user), localInst.instanceId))

            if(localInst.instanceType == MASTER_INSTANCE):
                self.modifyConfigItem(localInst, configFile, "replconninfo1", "'localhost=%s localport=%d remotehost=%s remoteport=%d'" % 
                                        (localInst.haIps[0], localInst.haPort, standbyInst.haIps[0], standbyInst.haPort))
                if(dummyStandbyInst != None):
                    self.modifyConfigItem(localInst, configFile, "replconninfo2", "'localhost=%s localport=%d remotehost=%s remoteport=%d'" % 
                                            (localInst.haIps[0], localInst.haPort, dummyStandbyInst.haIps[0], dummyStandbyInst.haPort))
            elif(localInst.instanceType == STANDBY_INSTANCE):
                self.modifyConfigItem(localInst, configFile, "replconninfo1", "'localhost=%s localport=%d remotehost=%s remoteport=%d'" % 
                                        (localInst.haIps[0], localInst.haPort, masterInst.haIps[0], masterInst.haPort))
                if(dummyStandbyInst != None):
                    self.modifyConfigItem(localInst, configFile, "replconninfo2", "'localhost=%s localport=%d remotehost=%s remoteport=%d'" % 
                                            (localInst.haIps[0], localInst.haPort, dummyStandbyInst.haIps[0], dummyStandbyInst.haPort))
            elif(localInst.instanceType == DUMMY_STANDBY_INSTANCE):
                self.modifyConfigItem(localInst, configFile, "replconninfo1", "'localhost=%s localport=%d remotehost=%s remoteport=%d'" % 
                                        (localInst.haIps[0], localInst.haPort, masterInst.haIps[0], masterInst.haPort))
                self.modifyConfigItem(localInst, configFile, "replconninfo2", "'localhost=%s localport=%d remotehost=%s remoteport=%d'" % 
                                        (localInst.haIps[0], localInst.haPort, standbyInst.haIps[0], standbyInst.haPort))
        else:
            self.logger.logExit("current instance role is invalid [%s %s]." % (localInst.datadir,  localInst,instanceRole))