Exemplo n.º 1
0
    def __processConfigFile(self):
        """ Process the configuration file as a key/value pair """
        configLoc = '%s/config' % self.peerDir
        if not os.path.exists(configLoc):
            self.logger.warn('Could not find a configuration file')
            return self.__changeState(PeerState.DEAD())

        with open(configLoc, 'r') as lf:
            for line in lf.readlines():
                key, value = line.strip().split('=', 1)
                self.config[key.lower()] = value

        self.envServer = self.config['envserver'].strip()
        self.envServerPort = self.config['envserverport'].strip()
        if self.envServerPort.isdigit():
            self.envServerPort = int(self.envServerPort)

        if self.config['rebootcmd'] == '':
            self.postReboot = self.initReboot = False

        self.capabilities = envcatRequest(self.envServer,
            self.envServerPort, 'capabilities')

        if self.__configIsMissingKeys():
            return self.__changeState(PeerState.DEAD(), 'Invalid config')

        cmd = 'mkdir -p %(T)s; cd %(T)s; if [ ! -f locked ]; then echo "%(I)s" > locked; sleep 2; fi; ' \
              'if [ "%(I)s" != `cat locked` ]; then echo `cat locked`; else echo "UNLOCKED"; fi;' \
              % { 'T' : self.config['tmpdir'], 'I' : self.hostIP }

        self.longRunningProcesses.append(SSHClient(self.config['user'],
            self.config['password'], self.ipAddr, cmd))
Exemplo n.º 2
0
 def __stopEnvServer(self):
     envcatRequest(self.__envServerHost,
         self.__envServerPort, self.__STOP_ENV_SERVER_CMD)