Exemplo n.º 1
0
    def addToVocalConf(self):
        if not (os.path.isfile(vocalConstant.vocalConfFile)):
            vcFile = open(vocalConstant.vocalConfFile, 'w')
            bpvObj = psClass.vocalObject()
            bpvObj.load(vocalConstant.ksVocalIdFile)
            vcFile.write("VOCALUSER " + bpvObj.dict(self.hostName)[0] + "\n")
            vcFile.write("PSERVER " + bpvObj.pServer + ":" +
                         bpvObj.pServerPort + "\n")

            vcFile.write("PSERVERBACKUP " + bpvObj.bupServer + ":" +
                         bpvObj.bupServerPort + "\n")
            vcFile.write("LOG_LEVEL " + vocalConstant.defaultLogLevel + "\n")
            vcFile.write(self.processName + " ")
            if (self.params):
                for ii in range(len(self.params)):
                    vcFile.write(self.params[ii] + " ")
            vcFile.write("\n")
            vcFile.write("snmpd\n")
        elif vUtils.processIn(vocalConstant.vocalConfFile,
                              [self.processName] + self.params[:]):
            print "Process already present. Exiting without adding self to vocal.conf"
            vcFile.close()
            return 0
        else:
            vcFile = open(vocalConstant.vocalConfFile, 'a')
            vcFile.write(self.processName + " ")
            for ii in self.params:
                vcFile.write(ii + " ")
            vcFile.write("\n")
        vcFile.close()
Exemplo n.º 2
0
    def process(self):
        psDirs = provVocalDirs()
        psDirs.initDirs()
        psVObj = psClass.vocalObject()
        psVObj.load(vocalConstant.ksVocalIdFile)

        os.system("chown -R " + psVObj.dict[self.hostName][0] + " " +
                  vocalConstant.vocalProvDir)

        self.calcParams()
        self.addToVocalConf()

        psSerName, psDocRoot, psCgiRoot = self.apacheConfig()
        self.insertLink(psSerName, psDocRoot, psCgiRoot)

        if (psVObj.pServer == self.hostName):
            self.mainPserver = 1
        else:
            self.mainPserver = 0

        if not (self.mainPserver):
            pServerCheck = vUtils.hostUp(psVObj.bupServer,
                                         psVObj.bupServerPort,
                                         "GET Accounts foo")
        else:
            pServerCheck = vUtils.hostUp(psVObj.pServer, psVObj.pServerPort,
                                         "GET Accounts foo")

        if not (pServerCheck):
            print "Cannot write provisioning data without at least one Provisioning Server running."
            return 0
Exemplo n.º 3
0
def selectPserver():
    svObj = psClass.vocalObject()
    svObj.load(vocalConstant.ksVocalIdFile)
    connServer = svObj.pServer
    connPort = string.atoi(svObj.pServerPort)

    if not (hostUp(connServer, connPort, "GET Accounts foo")):
        connServer = svObj.bupServer
        connPort = string.atoi(svObj.bupServerPort)
        if not (hostUp(connServer, connPort, "GET Accounts foo")):
            print "Cannot open connection to either main or backup pserver. No provisioning data written."
            connServer = ""
            connPort = 0
    return connServer, connPort
Exemplo n.º 4
0
    def addToVocalConf(self):
        if not (os.path.isfile(vocalConstant.vocalConfFile)):
            vcFile = open(vocalConstant.vocalConfFile, 'w')
            bpvObj = psClass.vocalObject()
            bpvObj.load(vocalConstant.ksVocalIdFile)
            vcFile.write("VOCALUSER " + bpvObj.dict[self.hostName][0] + "\n")

            # Checks to see if the PSERVER defined in the identity.cfg file is itself
            # If not, it writes the PSERVERBACKUP defined in the identity.cfg file as the PSERVER
            # in vocal.conf.

            if (socket.gethostbyname(socket.gethostname()) == bpvObj.pServer):
                vcFile.write("PSERVER " + bpvObj.pServer + ":" +
                             bpvObj.pServerPort + "\n")
                vcFile.write("PSERVERBACKUP " + bpvObj.bupServer + ":" +
                             bpvObj.bupServerPort + "\n")
            else:
                vcFile.write("PSERVER " + bpvObj.bupServer + ":" +
                             bpvObj.bupServerPort + "\n")
                vcFile.write("PSERVERBACKUP " + bpvObj.pServer + ":" +
                             bpvObj.pServerPort + "\n")

            vcFile.write("LOG_LEVEL " + vocalConstant.defaultLogLevel + "\n")
            vcFile.write(self.processName + " ")
            if (self.params):
                for ii in range(len(self.params)):
                    vcFile.write(self.params[ii] + " ")
            vcFile.write("\n")
            vcFile.write("snmpd\n")
            vcFile.close()
        elif vUtils.processIn(vocalConstant.vocalConfFile,
                              [self.processName] + self.params[:]):
            print "Process already present: " + ` [
                self.processName
            ] + self.params[:] ` + ". \n\tExiting without adding self to vocal.conf"

            return 0
        else:
            #print `self.processName`+" " + `self.params`
            #print `vUtils.processIn(vocalConstant.vocalConfFile, [self.processName]+self.params[:])`
            vcFile = open(vocalConstant.vocalConfFile, 'a')
            vcFile.write(self.processName + " ")
            for ii in self.params:
                vcFile.write(ii + " ")
            vcFile.write("\n")
            vcFile.close()
Exemplo n.º 5
0
    def process(self):
        mssDirs = baseVocalDirs()
        mssDirs.initDirs()

        self.calcParams()
        self.addToVocalConf()

        msvo = psClass.vocalObject()
        msvo.load(vocalConstant.ksVocalIdFile)

        mssXmlFile = "/tmp/" + self.hostName + ":" + self.port + ".xml"
        os.system("cp -f " + vocalConstant.mssSeedFile + " " + mssXmlFile)
        vUtils.replaceInFile(mssXmlFile, "MSHOSTIP", self.hostName)
        vUtils.replaceInFile(mssXmlFile, "MSPORT", self.port)
        vUtils.replaceInFile(mssXmlFile, "MSTYPE", self.type)
        vUtils.replaceInFile(mssXmlFile, "PSTNGATEWAYIP", msvo.pstnIP[0])
        vUtils.replaceInFile(mssXmlFile, "PSTNGATEWAYPORT",
                             msvo.pstnPort[msvo.pstnIP[0]])

        vUtils.writeToPserver(mssXmlFile, "Marshals", mssXmlFile[5:])
        self.addToList("ListOfMarshalServers", vocalConstant.LOMSSeedFile,
                       "marshalServers", "MS")
Exemplo n.º 6
0
def kickstartVocal():
    mainVO = psClass.vocalObject()
    mainVO.load(vocalConstant.ksVocalIdFile)

    myName = vUtils.getIP(socket.gethostname())   
    print myName
    myUser = mainVO.dict[myName][0]
    if myUser in vocalConstant.vocalProcesses:
	print "Warning: VocalUser parameter is: "+myName+". If this is unintentional, please re-kickstart the machine."

    os.system("cp -rf "+vocalConstant.ksVocalBinDir+"/* "+vocalConstant.vocalBinDir)
    os.system("cp -rf "+vocalConstant.vocalBinDir+"/vocalstart "+vocalConstant.sysInitDir)

    pDict = mainVO.dict
    
    uPort = ""

    for ii in range(1,len(pDict[myName])):
	pSplit = string.split(pDict[myName][ii], ":")
	if (len(pSplit) == 2):
	    uProcess = pSplit[0]
	    uPort = pSplit[1]
	    if vUtils.vocalPortInUse(uPort):
		print "Warning: Specified port: "+uPort+" \n\tfor Process: "+uProcess+" is already assigned/in use.\n\tNot Processing....."
                continue
	elif (len(pSplit) > 2):
	    print "Fatal Error: Process "+uProcess+" for host "+myName+" cannot be resolved.\nExiting....."

	uProcess = pSplit[0]
	if not(uProcess in vocalConstant.vocalProcesses):
	    print "Fatal Error: Process "+uProcess+" for host "+myName+" cannot be resolved.\nExiting....."
	    return 0

	if (uProcess == "mss"):
	    if not(uPort):
		uPort =vocalConstant.defaultMssPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
            psObj = mss(myName,uPort)
	    psObj.process()

	elif (uProcess == "msg"):
	    if not(uPort):
		uPort =vocalConstant.defaultMsgPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = msg(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "rs"):
	    if not(uPort):
		uPort =vocalConstant.defaultRsPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = rs(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "netMgnt"):
	 	    
	    psObj = netMgnt(myName)
	    psObj.process()
	    
	elif (uProcess == "ps"):
	    if not(uPort):
		uPort =vocalConstant.defaultPsPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = provisioning(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "fscb"):
	    if not(uPort):
		uPort =vocalConstant.defaultFSCBPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = fscb(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "fsfnab"):
	    if not(uPort):
		uPort =vocalConstant.defaultFSFNABPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = fsfnab(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "fscs"):
	    if not(uPort):
		uPort =vocalConstant.defaultFSCSPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = fscs(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "fsfac"):
	    if not(uPort):
		uPort =vocalConstant.defaultFSFACPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = fsfac(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "fscr"):
	    if not(uPort):
		uPort =vocalConstant.defaultFSCRPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = fscr(myName,uPort)
	    psObj.process()
	    
	elif (uProcess == "fscib"):
	    if not(uPort):
		uPort =vocalConstant.defaultFSCIBPort 
	    uPort = vUtils.vocalCheckNGetPort(uPort)
	    
	    psObj = fscib(myName,uPort)
	    psObj.process()
	
	else:
	    print "Error: Process "+uProcess+" for host "+myName+" cannot be resolved."

	os.system("chmod -R a+rwx "+vocalConstant.vocalDir)