X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=blobdiff_plain;f=ud-host;h=e186e9a796d6f32560159d2be770d2f58854830f;hp=1183aa52c50b3fc0bbb6c7b97113a3fd81fa54b0;hb=a6fb69805c3999a85c064a96c93417bb1c284c5c;hpb=b16d5723e935432b9a26699a1c73618e1c35acf4 diff --git a/ud-host b/ud-host index 1183aa5..e186e9a 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 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 = {}; @@ -128,7 +132,7 @@ def Overview(Attrs): # Change a single attribute def ChangeAttr(Attrs,Attr): - if (Attr == "sponsor" or Attr == "sshRSAHostKey"): + if (Attr in ["sponsor", "sshRSAHostKey", "purpose"]): return MultiChangeAttr(Attrs,Attr); print "Old value: '%s'" % (GetAttr(Attrs,Attr,"")); @@ -166,7 +170,7 @@ def MultiChangeAttr(Attrs,Attr): Attrs[1][Attr].sort(); print "Old values: ",Attrs[1][Attr]; - Mode = string.upper(raw_input("[D]elete or [A]dd? ")); + Mode = raw_input("[D]elete or [A]dd? ").upper() if (Mode != 'D' and Mode != 'A'): return; @@ -242,10 +246,8 @@ else: l = ldap.open(LDAPServer); l.simple_bind_s("","") -HBaseDn = HostBaseDn - if ListMode == 1: - Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=*") + Attrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=*") hosts = [] for hAttrs in Attrs: hosts.append(hAttrs[1]['host'][0]) @@ -260,9 +262,9 @@ if ListMode == 1: sys.exit(0) elif FingerPrints == 1: if Host is not None: - Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=" + Host) + Attrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=" + Host) else: - Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=*") + Attrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=*") hosts = [] for hAttrs in Attrs: hosts.append(hAttrs[1]['host'][0]) @@ -285,10 +287,10 @@ elif FingerPrints == 1: os.unlink(tmpfile) sys.exit(0) -HostDn = "host=" + Host + "," + HBaseDn; +HostDn = "host=" + Host + "," + HostBaseDn; # Query the server for all of the attributes -Attrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=" + Host); +Attrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=" + Host); if len(Attrs) == 0: print "Host",Host,"was not found."; sys.exit(0); @@ -317,13 +319,13 @@ while(1): NewHost = raw_input("Host? "); if NewHost == "": continue; - NAttrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=" + NewHost); + NAttrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=" + NewHost); if len(NAttrs) == 0: print "Host",NewHost,"was not found."; continue; Attrs = NAttrs; Host = NewHost; - HostDn = "host=" + Host + "," + HBaseDn; + HostDn = "host=" + Host + "," + HostBaseDn; OrderedIndex = copy.deepcopy(OrigOrderedIndex); continue; @@ -332,26 +334,26 @@ while(1): NewHost = raw_input("Host? "); if NewHost == "": continue; - NAttrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=" + NewHost); + NAttrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=" + NewHost); if len(NAttrs) != 0: print "Host",NewHost,"already exists."; continue; NewHostName = raw_input("Hostname? "); if NewHost == "": continue; - Dn = "host=" + NewHost + "," + HBaseDn; + Dn = "host=" + NewHost + "," + HostBaseDn; l.add_s(Dn,[("host", NewHost), ("hostname", NewHostName), ("objectClass", ("top", "debianServer"))]); # Switch - NAttrs = l.search_s(HBaseDn,ldap.SCOPE_ONELEVEL,"host=" + NewHost); + NAttrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"host=" + NewHost); if len(NAttrs) == 0: print "Host",NewHost,"was not found."; continue; Attrs = NAttrs; Host = NewHost; - HostDn = "host=" + Host + "," + HBaseDn; + HostDn = "host=" + Host + "," + HostBaseDn; OrderedIndex = copy.deepcopy(OrigOrderedIndex); continue;