Merge usergroups patch in
[mirror/userdir-ldap.git] / ud-host
diff --git a/ud-host b/ud-host
index 319227b..4ba0571 100755 (executable)
--- 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=*")