X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-host;h=3490e6d5369ad1a3af57e33b326f68da1047fcf8;hb=ea13500e6d3103252a8531e65cddb58d5b2e3c15;hp=319227b7267e6595e19eee2d5e7e78a41db9ac2d;hpb=997a3ffb125ce1fe9eda5174630975a618e03c0e;p=mirror%2Fuserdir-ldap.git diff --git a/ud-host b/ud-host index 319227b..3490e6d 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 *; @@ -50,8 +50,10 @@ AttrInfo = {"description": ["Machine Descr.", 1], "machine": ["Machine Hardware", 10], "memory": ["Memory", 11], "disk": ["Disk", 12], + "physicalHost": ["Physical Host", 13], "sshRSAHostKey": ["SSH Host Keys", 14], - "bandwidth": ["Bandwidth", 15]}; + "bandwidth": ["Bandwidth", 15], + "purpose": ["Purposes", 16],}; AttrPrompt = {"description": ["Purpose of the machine"], "hostname": ["The hostnames for the box (ipv4/ipv6)"], @@ -65,8 +67,10 @@ AttrPrompt = {"description": ["Purpose of the machine"], "machine": ["Hardware description"], "memory": ["Installed RAM"], "disk": ["Disk Space, RAID levels, etc"], + "physicalHost": ["The box hosting this virtual server"], "sshRSAHostKey": ["A copy of /etc/ssh/ssh_*host_key.pub"], - "bandwidth": ["Available outbound"]}; + "bandwidth": ["Available outbound"], + "purpose": ["The purposes of this host"],}; # Create a map of IDs to desc,value,attr OrderedIndex = {}; @@ -116,20 +120,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 in ["sponsor", "sshRSAHostKey", "purpose"]): return MultiChangeAttr(Attrs,Attr); print "Old value: '%s'" % (GetAttr(Attrs,Attr,"")); @@ -215,7 +218,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 +246,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=*")