Implement test.ping
Wait for minions to respond to test.ping before attempting a state.apply. Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
This commit is contained in:
parent
3ad04b0e1a
commit
f2e6df7448
19
scullery.py
19
scullery.py
@ -141,11 +141,21 @@ def vagrant_sshconfig(outfile):
|
|||||||
with open(outfile, 'w') as fh:
|
with open(outfile, 'w') as fh:
|
||||||
fh.write(ssh_config)
|
fh.write(ssh_config)
|
||||||
|
|
||||||
def runapply(state, target):
|
def _saltcmd(target):
|
||||||
if target == 'local':
|
if target == 'local':
|
||||||
saltcmd = 'salt-call --local'
|
saltcmd = 'salt-call --local'
|
||||||
else:
|
else:
|
||||||
saltcmd = 'salt {}'.format(target)
|
saltcmd = 'salt -t10 {}'.format(target)
|
||||||
|
return saltcmd
|
||||||
|
|
||||||
|
def runping(target):
|
||||||
|
saltcmd = _saltcmd(target)
|
||||||
|
sshout = v.ssh(command='sudo {} test.ping'.format(saltcmd))
|
||||||
|
log.info('\n{}\n'.format(str(sshout)))
|
||||||
|
return sshout
|
||||||
|
|
||||||
|
def runapply(state, target):
|
||||||
|
saltcmd = _saltcmd(target)
|
||||||
sshout = v.ssh(command='sudo {} state.apply {}'.format(saltcmd, state))
|
sshout = v.ssh(command='sudo {} state.apply {}'.format(saltcmd, state))
|
||||||
log.info('\n{}\n'.format(str(sshout)))
|
log.info('\n{}\n'.format(str(sshout)))
|
||||||
|
|
||||||
@ -241,6 +251,11 @@ def main_interactive():
|
|||||||
log.debug('state.apply requested')
|
log.debug('state.apply requested')
|
||||||
if masters is not None:
|
if masters is not None:
|
||||||
target = 'scullery-*'
|
target = 'scullery-*'
|
||||||
|
count = 0
|
||||||
|
while not runping(target):
|
||||||
|
if count == 5:
|
||||||
|
_abort('Unable to reach minions')
|
||||||
|
count += 1
|
||||||
else:
|
else:
|
||||||
target = 'local'
|
target = 'local'
|
||||||
runapply(testconf['apply'], target)
|
runapply(testconf['apply'], target)
|
||||||
|
Loading…
Reference in New Issue
Block a user