
et comme on a le fichier knownhost du system mis a jour automatiquement il ne sert a rien
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import subprocess
|
|
|
|
_options = ['PasswordAuthentication=no', 'ConnectTimeout=1', 'VerifyHostKeyDNS=no',
|
|
'BatchMode=yes', 'ServerAliveInterval=5', 'ServerAliveCountMax=1']
|
|
_args = ["ssh", "-4", "-i", "/etc/crans/secrets/trigger-generate" ]
|
|
|
|
def build_args(host):
|
|
if not 'adm.crans.org' in host:
|
|
host=host + '.adm.crans.org'
|
|
args = list(_args)
|
|
for opt in _options:
|
|
args.append('-o')
|
|
args.append(opt)
|
|
args.extend(["rpcssh@%s" % host, "generate"])
|
|
return args
|
|
|
|
def trigger_generate(host, background=False):
|
|
args = build_args(host)
|
|
if background:
|
|
subprocess.Popen(args)
|
|
else:
|
|
p=subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
out, err = p.communicate()
|
|
if err:
|
|
raise Exception(err)
|
|
return out
|
|
|
|
def trigger_generate_cochon(host):
|
|
"""Ceci est une fonction crade qui permet de se débarraser du process enfant
|
|
que l'on aurait laissé en arrière plan"""
|
|
args = build_args(host)
|
|
p = subprocess.Popen(['/bin/bash'],
|
|
stdin=subprocess.PIPE, )
|
|
p.communicate(' '.join(args) + ' &> /dev/null &')
|