scripts/gestion/gen_confs/trigger.py
Daniel STAN d5bd1ec23e radius: on se débarasse du fils ssh
Et on a presque un truc qui marche.
Bon le trigger_generate, on va vite le virer parce que c'est mauche tout de
même.
2014-03-01 20:23:44 +01:00

37 lines
1.2 KiB
Python
Executable file

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
_options = ['PasswordAuthentication=no', 'ConnectTimeout=1', 'VerifyHostKeyDNS=yes',
'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 &')