def _do_launch_build(self): script = "bash ./nepi-build.sh" if self._master_passphrase: script = "NEPI_MASTER_PASSPHRASE=%s %s" % ( server.shell_escape(self._master_passphrase), script ) (out,err),proc = rspawn.remote_spawn( script, pidfile = 'build-pid', home = self.home_path, stdin = '/dev/null', stdout = 'buildlog', stderr = rspawn.STDOUT, host = self.node.hostname, port = None, user = self.node.slicename, agent = None, ident_key = self.node.ident_path, server_key = self.node.server_key, hostip = self.node.hostip, ) if proc.wait(): if self.check_bad_host(out, err): self.node.blacklist() raise RuntimeError, "Failed to set up build slave %s: %s %s" % (self.home_path, out,err,) pid = ppid = None delay = 1.0 for i in xrange(5): pidtuple = rspawn.remote_check_pid( os.path.join(self.home_path,'build-pid'), host = self.node.hostip, port = None, user = self.node.slicename, agent = None, ident_key = self.node.ident_path, server_key = self.node.server_key, hostip = self.node.hostip ) if pidtuple: pid, ppid = pidtuple self._build_pid, self._build_ppid = pidtuple break else: time.sleep(delay) delay = min(30,delay*1.2) else: raise RuntimeError, "Failed to set up build slave %s: cannot get pid" % (self.home_path,) self._logger.info("Deploying %s at %s", self, self.node.hostname)
def _do_launch_build(self): script = "bash ./nepi-build.sh" if self._master_passphrase: script = "NEPI_MASTER_PASSPHRASE=%s %s" % (server.shell_escape( self._master_passphrase), script) (out, err), proc = rspawn.remote_spawn( script, pidfile='build-pid', home=self.home_path, stdin='/dev/null', stdout='buildlog', stderr=rspawn.STDOUT, host=self.node.hostname, port=None, user=self.node.slicename, agent=None, ident_key=self.node.ident_path, server_key=self.node.server_key, hostip=self.node.hostip, ) if proc.wait(): if self.check_bad_host(out, err): self.node.blacklist() raise RuntimeError, "Failed to set up build slave %s: %s %s" % ( self.home_path, out, err, ) pid = ppid = None delay = 1.0 for i in xrange(5): pidtuple = rspawn.remote_check_pid(os.path.join( self.home_path, 'build-pid'), host=self.node.hostip, port=None, user=self.node.slicename, agent=None, ident_key=self.node.ident_path, server_key=self.node.server_key, hostip=self.node.hostip) if pidtuple: pid, ppid = pidtuple self._build_pid, self._build_ppid = pidtuple break else: time.sleep(delay) delay = min(30, delay * 1.2) else: raise RuntimeError, "Failed to set up build slave %s: cannot get pid" % ( self.home_path, ) self._logger.info("Deploying %s at %s", self, self.node.hostname)
def checkpid(self): # Get PID/PPID # NOTE: wait a bit for the pidfile to be created if self._started and not self._pid or not self._ppid: pidtuple = rspawn.remote_check_pid(os.path.join( self.home_path, 'pid'), host=self.node.hostname, port=None, user=self.node.slicename, agent=None, ident_key=self.node.ident_path, server_key=self.node.server_key) if pidtuple: self._pid, self._ppid = pidtuple
def checkpid(self): # Get PID/PPID # NOTE: wait a bit for the pidfile to be created if self._started and not self._pid or not self._ppid: pidtuple = rspawn.remote_check_pid( os.path.join(self.home_path,'pid'), host = self.node.hostname, port = None, user = self.node.slicename, agent = None, ident_key = self.node.ident_path, server_key = self.node.server_key ) if pidtuple: self._pid, self._ppid = pidtuple
def checkpid(self): local = self.local() if not local: raise RuntimeError, "Lost reference to local interface" # Get PID/PPID # NOTE: wait a bit for the pidfile to be created if self._started and not self._pid or not self._ppid: pidtuple = rspawn.remote_check_pid( os.path.join(self.home_path, 'pid'), host=local.node.hostname, port=None, user=local.node.slicename, agent=None, ident_key=local.node.ident_path, server_key=local.node.server_key) if pidtuple: self._pid, self._ppid = pidtuple
def checkpid(self): local = self.local() if not local: raise RuntimeError, "Lost reference to local interface" # Get PID/PPID # NOTE: wait a bit for the pidfile to be created if self._started and not self._pid or not self._ppid: pidtuple = rspawn.remote_check_pid( os.path.join(self.home_path,'pid'), host = local.node.hostname, port = None, user = local.node.slicename, agent = None, ident_key = local.node.ident_path, server_key = local.node.server_key ) if pidtuple: self._pid, self._ppid = pidtuple