self._master_passphrase = None
self._master_prk = None
self._master_puk = None
- self._master_token = ''.join(map(chr,[rng.randint(0,255)
- for rng in (random.SystemRandom(),)
- for i in xrange(8)] )).encode("hex")
+ self._master_token = os.urandom(8).encode("hex")
self._build_pid = None
self._build_ppid = None
else:
raise RuntimeError, "Failed to setup application"
else:
- self._logger.info("Setup ready: %s", self)
+ self._logger.info("Setup ready: %s at %s", self, self.node.hostname)
else:
self.setup()
buildscript = self._do_build_master()
if buildscript is not None:
- self._logger.info("Building %s", self)
+ self._logger.info("Building %s at %s", self, self.node.hostname)
# upload build script
try:
waitmaster = (
"{ . ./.ssh-agent.sh ; "
- "while [[ $(ssh -q -o UserKnownHostsFile=%(hostkey)s %(sshopts)s %(master)s cat %(token_path)s.retcode || /bin/true) != %(token)s ]] ; do sleep 5 ; done ; "
- "if [[ $(ssh -q -o UserKnownHostsFile=%(hostkey)s %(sshopts)s %(master)s cat %(token_path)s || /bin/true) != %(token)s ]] ; then echo BAD TOKEN ; exit 1 ; fi ; "
+ "while [[ $(. ./.ssh-agent.sh > /dev/null ; ssh -q -o UserKnownHostsFile=%(hostkey)s %(sshopts)s %(master)s cat %(token_path)s.retcode || /bin/true) != %(token)s ]] ; do sleep 5 ; done ; "
+ "if [[ $(. ./.ssh-agent.sh > /dev/null ; ssh -q -o UserKnownHostsFile=%(hostkey)s %(sshopts)s %(master)s cat %(token_path)s || /bin/true) != %(token)s ]] ; then echo BAD TOKEN ; exit 1 ; fi ; "
"}"
) % {
'hostkey' : 'master_known_hosts',
'sshopts' : sshopts,
}
- syncfiles = "scp -p -o UserKnownHostsFile=%(hostkey)s %(sshopts)s %(files)s ." % {
+ syncfiles = ". ./.ssh-agent.sh && scp -p -o UserKnownHostsFile=%(hostkey)s %(sshopts)s %(files)s ." % {
'hostkey' : 'master_known_hosts',
'files' : ' '.join(files),
'sshopts' : sshopts,
else:
raise RuntimeError, "Failed to set up build slave %s: cannot get pid" % (self.home_path,)
- self._logger.info("Deploying %s", self)
+ self._logger.info("Deploying %s at %s", self, self.node.hostname)
def _do_wait_build(self):
pid = self._build_pid
break
elif status is not rspawn.RUNNING:
bustspin += 1
- time.sleep(5)
+ time.sleep(delay*(5.5+random.random()))
if bustspin > 12:
self._build_pid = self._build_ppid = None
break
def _do_install(self):
if self.install:
- self._logger.info("Installing %s", self)
+ self._logger.info("Installing %s at %s", self, self.node.hostname)
# Install application
try:
app.node.architecture,
app.node.operatingSystem,
app.node.pl_distro,
+ app.__class__,
)
depgroups = collections.defaultdict(list)
suffix = ".pub")
# Create secure 256-bits temporary passphrase
- passphrase = ''.join(map(chr,[rng.randint(0,255)
- for rng in (random.SystemRandom(),)
- for i in xrange(32)] )).encode("hex")
+ passphrase = os.urandom(32).encode("hex")
# Copy keys
oprk = open(self.sliceSSHKey, "rb")