[ressuscite_lc] Spécification des lockIds et context manager

This commit is contained in:
Valentin Samir 2014-11-09 17:21:21 +01:00
parent bea06f390a
commit eaf913de6a

View file

@ -11,18 +11,19 @@ import sys
import pprint import pprint
from affich_tools import coul, prompt from affich_tools import coul, prompt
from IPython.frontend.terminal.embed import InteractiveShellEmbed from IPython.frontend.terminal.embed import InteractiveShellEmbed
import contextlib
import lc_ldap.shortcuts import lc_ldap.shortcuts
import lc_ldap.attributs import lc_ldap.attributs
import lc_ldap.crans_utils import lc_ldap.crans_utils
import lc_ldap.printing import lc_ldap.printing
def reset_ip(machine): def reset_ip(machine):
machine['rid']=unicode(conn._find_id('rid', lc_ldap.crans_utils.find_rid_plage(machine['rid'][0].value)[0])) machine['rid']=unicode(conn._find_id('rid', lc_ldap.crans_utils.find_rid_plage(machine['rid'][0].value)[0], lockId=machine.lockId))
machine['ipHostNumber']=lc_ldap.attributs.ipHostNumber.default machine['ipHostNumber']=lc_ldap.attributs.ipHostNumber.default
machine['ip6HostNumber']=lc_ldap.attributs.ip6HostNumber.default machine['ip6HostNumber']=lc_ldap.attributs.ip6HostNumber.default
def reset_mid(machine, proprio=None): def reset_mid(machine, proprio=None):
machine['mid']=unicode(conn._find_id('mid')) machine['mid']=unicode(conn._find_id('mid', lockId=machine.lockId))
if proprio: if proprio:
machine.dn="mid=%s,aid=%s,%s" % (machine['mid'][0], proprio['aid'][0], machine.dn.split(',',2)[2]) machine.dn="mid=%s,aid=%s,%s" % (machine['mid'][0], proprio['aid'][0], machine.dn.split(',',2)[2])
else: else:
@ -51,7 +52,8 @@ if __name__ == '__main__':
print lc_ldap.printing.sprint(coffins[0]) print lc_ldap.printing.sprint(coffins[0])
ret=prompt("Ressuciter ?[y,n,e]", "N") ret=prompt("Ressuciter ?[y,n,e]", "N")
if ret.lower() == 'y': if ret.lower() == 'y':
coffins[0].create() with coffins[0] as machine:
machine.create()
if ret.lower() == 'e': if ret.lower() == 'e':
raise Edit("Édition manuelle") raise Edit("Édition manuelle")
else: else:
@ -67,8 +69,9 @@ Pour ressuciter les machines, il y a en plus les fonctions :
* reset_ip(machine) * reset_ip(machine)
""" """
ipshell = InteractiveShellEmbed.instance(banner1 = unicode(msg, 'utf-8')) ipshell = InteractiveShellEmbed.instance(banner1 = unicode(msg, 'utf-8'))
ipshell() with contextlib.nested(*coffins) as coffins:
sys.exit(0) ipshell()
sys.exit(0)
except ValueError as error: except ValueError as error:
print coul("%s" % error, "rouge") print coul("%s" % error, "rouge")
else: else: