X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-host;h=4ba05719ff238ce6aded1f34923c3adecbedb731;hb=c3bdc0a516ee5036c5d9ff45847e89e972dfb32f;hp=319227b7267e6595e19eee2d5e7e78a41db9ac2d;hpb=997a3ffb125ce1fe9eda5174630975a618e03c0e;p=mirror%2Fuserdir-ldap.git diff --git a/ud-host b/ud-host index 319227b..4ba0571 100755 --- a/ud-host +++ b/ud-host @@ -32,7 +32,7 @@ # -l list all hosts and their status # -f list all SSH fingerprints -import string, time, os, pwd, sys, getopt, ldap, crypt, whrandom, readline, copy; +import string, time, os, pwd, sys, getopt, ldap, crypt, readline, copy; from tempfile import mktemp from os import O_CREAT, O_EXCL, O_WRONLY from userdir_ldap import *; @@ -116,20 +116,19 @@ def ShowAttrs(Attrs): def Overview(Attrs): """Display a one-line overview for a given host""" - if 'status' in Attrs[1].keys(): - status = Attrs[1]['status'][0] - else: - status = '' + for i in ['host','architecture','distribution','access','status']: + if i not in Attrs[1].keys(): + Attrs[1][i] = [''] print "%-12s %-10s %-38s %-25s %s" % (\ Attrs[1]['host'][0], \ Attrs[1]['architecture'][0], \ Attrs[1]['distribution'][0], \ Attrs[1]['access'][0], \ - status) + Attrs[1]['status'][0]) # Change a single attribute def ChangeAttr(Attrs,Attr): - if (Attr == "sponsor" or Attr == "hostname" or Attr == "sshRSAHostKey"): + if (Attr == "sponsor" or Attr == "sshRSAHostKey"): return MultiChangeAttr(Attrs,Attr); print "Old value: '%s'" % (GetAttr(Attrs,Attr,"")); @@ -215,7 +214,12 @@ ListMode = 0 FingerPrints = 0 Host = None # Process options -(options, arguments) = getopt.getopt(sys.argv[1:], "nh:a:rlf") +try: + (options, arguments) = getopt.getopt(sys.argv[1:], "nh:a:rlf") +except getopt.GetoptError, data: + print data + sys.exit(1) + for (switch, val) in options: if (switch == '-h'): Host = val; @@ -238,7 +242,7 @@ else: l = ldap.open(LDAPServer); l.simple_bind_s("","") -HBaseDn = "ou=hosts,dc=debian,dc=org"; +HBaseDn = HostBaseDn if ListMode == 1: Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=*")