X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=ud-host;h=4ba05719ff238ce6aded1f34923c3adecbedb731;hb=8b615deb35e176d752f1784ada1ad529b43fa9fd;hp=956c046940f1efdec62ed1cfe2761275164398ce;hpb=8bedb26f6cfb5410fdfee34a78ff4644f6d5ced0;p=mirror%2Fuserdir-ldap.git diff --git a/ud-host b/ud-host index 956c046..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,"")); @@ -213,8 +212,14 @@ User = pwd.getpwuid(os.getuid())[0]; BindUser = User; 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; @@ -237,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=*") @@ -254,7 +259,10 @@ if ListMode == 1: Overview(hAttrs) sys.exit(0) elif FingerPrints == 1: - Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=*") + if Host is not None: + Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=" + Host) + else: + Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=*") hosts = [] for hAttrs in Attrs: hosts.append(hAttrs[1]['host'][0])