summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Hostbase/hostbase
diff options
context:
space:
mode:
authorKen Raffenetti <raffenet@mcs.anl.gov>2006-08-29 16:33:36 +0000
committerKen Raffenetti <raffenet@mcs.anl.gov>2006-08-29 16:33:36 +0000
commit510c55e843ea0a1c049b39a9f57ff044190fcbd9 (patch)
tree5e82a8238779a088147ff61efc0db305be76a1f7 /src/lib/Server/Hostbase/hostbase
parentdbc96682be8968aac8ca8f8727728d60609f732c (diff)
downloadbcfg2-510c55e843ea0a1c049b39a9f57ff044190fcbd9.tar.gz
bcfg2-510c55e843ea0a1c049b39a9f57ff044190fcbd9.tar.bz2
bcfg2-510c55e843ea0a1c049b39a9f57ff044190fcbd9.zip
Added all the django application code
includes database models, file templates, and web apps git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2135 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Hostbase/hostbase')
-rw-r--r--src/lib/Server/Hostbase/hostbase/__init__.py0
-rw-r--r--src/lib/Server/Hostbase/hostbase/__init__.pycbin0 -> 197 bytes
-rw-r--r--src/lib/Server/Hostbase/hostbase/__init__.pyobin0 -> 149 bytes
-rw-r--r--src/lib/Server/Hostbase/hostbase/models.py143
-rw-r--r--src/lib/Server/Hostbase/hostbase/models.pycbin0 -> 6943 bytes
-rw-r--r--src/lib/Server/Hostbase/hostbase/models.pyobin0 -> 206 bytes
-rw-r--r--src/lib/Server/Hostbase/hostbase/views.py654
-rw-r--r--src/lib/Server/Hostbase/hostbase/views.pycbin0 -> 19040 bytes
-rw-r--r--src/lib/Server/Hostbase/hostbase/views.pyobin0 -> 146 bytes
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/confirm.html189
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/dns.html133
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/dnsedit.html192
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/edit.html314
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/errors.html126
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/host.html173
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/new.html191
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/results.html141
-rw-r--r--src/lib/Server/Hostbase/hostbase/webtemplates/search.html183
18 files changed, 2439 insertions, 0 deletions
diff --git a/src/lib/Server/Hostbase/hostbase/__init__.py b/src/lib/Server/Hostbase/hostbase/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/__init__.py
diff --git a/src/lib/Server/Hostbase/hostbase/__init__.pyc b/src/lib/Server/Hostbase/hostbase/__init__.pyc
new file mode 100644
index 000000000..928d88eff
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/__init__.pyc
Binary files differ
diff --git a/src/lib/Server/Hostbase/hostbase/__init__.pyo b/src/lib/Server/Hostbase/hostbase/__init__.pyo
new file mode 100644
index 000000000..13344544e
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/__init__.pyo
Binary files differ
diff --git a/src/lib/Server/Hostbase/hostbase/models.py b/src/lib/Server/Hostbase/hostbase/models.py
new file mode 100644
index 000000000..6253a7b50
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/models.py
@@ -0,0 +1,143 @@
+from django.db import models
+
+# Create your models here.
+class Host(models.Model):
+ NETGROUP_CHOICES = (
+ ('none', 'none'),('cave', 'cave'),('ccst', 'ccst'),('mcs', 'mcs'),
+ ('mmlab', 'mmlab'),('sp', 'sp'),('red', 'red'),('virtual', 'virtual'),
+ ('win', 'win'),('xterm', 'xterm'),('lcrc', 'lcrc'),('anlext', 'anlext'),
+ ('teragrid', 'teragrid')
+ )
+ STATUS_CHOICES = (
+ ('active','active'),('dormant','dormant')
+ )
+ SUPPORT_CHOICES = (
+ ('green','green'),('yellow','yellow'),('red','red')
+ )
+ CLASS_CHOICES = (
+ ('scientific','scientific'),
+ ('operations','operations'),('guest','guest'),
+ ('confidential','confidential'),('public','public')
+ )
+ hostname = models.CharField(maxlength=64)
+ whatami = models.CharField(maxlength=16)
+ netgroup = models.CharField(maxlength=32, choices=NETGROUP_CHOICES)
+ security_class = models.CharField('class', maxlength=16)
+ support = models.CharField(maxlength=8, choices=SUPPORT_CHOICES)
+ csi = models.CharField(maxlength=32, blank=True)
+ printq = models.CharField(maxlength=32)
+ dhcp = models.BooleanField()
+ outbound_smtp = models.BooleanField()
+ primary_user = models.EmailField()
+ administrator = models.EmailField(blank=True)
+ location = models.CharField(maxlength=16)
+ comments = models.TextField(blank=True)
+ expiration_date = models.DateField(null=True, blank=True)
+ last = models.DateField(auto_now=True, auto_now_add=True)
+ status = models.CharField(maxlength=7, choices=STATUS_CHOICES)
+
+ class Admin:
+ list_display = ('hostname', 'last')
+ search_fields = ['hostname']
+
+ def __str__(self):
+ return self.hostname
+
+class Interface(models.Model):
+ TYPE_CHOICES = (
+ ('eth', 'ethernet'), ('wl', 'wireless'), ('myr', 'myr'),
+ ('mgmt', 'mgmt'), ('tape', 'tape'), ('fe', 'fe')
+ )
+ host = models.ForeignKey(Host, edit_inline=models.TABULAR, num_in_admin=2)
+ mac_addr = models.CharField(maxlength=32, core=True)
+ hdwr_type = models.CharField('type', maxlength=16, choices=TYPE_CHOICES,
+ radio_admin=True, blank=True)
+
+ def __str__(self):
+ return self.mac_addr
+
+ class Admin:
+ list_display = ('mac_addr', 'host')
+ search_fields = ['mac_addr']
+
+class IP(models.Model):
+ interface = models.ForeignKey(Interface,
+ edit_inline=models.TABULAR, num_in_admin=1)
+ ip_addr = models.IPAddressField(core=True)
+ num = models.IntegerField()
+
+ def __str__(self):
+ return self.ip_addr
+
+ class Admin:
+ pass
+
+ class Meta:
+ ordering = ('ip_addr', )
+
+class MX(models.Model):
+ priority = models.IntegerField()
+ mx = models.CharField(maxlength=64, core=True)
+
+ def __str__(self):
+ return (" ".join([str(self.priority), self.mx]))
+
+ class Admin:
+ pass
+
+class Name(models.Model):
+ DNS_CHOICES = (
+ ('global','global'),('internal','ANL internal'),
+ ('mcs-internal','MCS internal'),('private','private')
+ )
+ ip = models.ForeignKey(IP, edit_inline=models.TABULAR, num_in_admin=1)
+ name = models.CharField(maxlength=64, core=True)
+ dns_view = models.CharField(maxlength=16, choices=DNS_CHOICES)
+ only = models.BooleanField(blank=True)
+ mxs = models.ManyToManyField(MX)
+
+ def __str__(self):
+ return self.name
+
+ class Admin:
+ pass
+
+class CName(models.Model):
+ name = models.ForeignKey(Name, edit_inline=models.TABULAR, num_in_admin=1)
+ cname = models.CharField(maxlength=64, core=True)
+
+ def __str__(self):
+ return self.cname
+
+ class Admin:
+ pass
+
+class Nameserver(models.Model):
+ name = models.CharField(maxlength=64)
+
+ def __str__(self):
+ return self.name
+
+ class Admin:
+ pass
+
+class Zone(models.Model):
+ zone = models.CharField(maxlength=64)
+ serial = models.IntegerField()
+ admin = models.CharField(maxlength=64)
+ primary_master = models.CharField(maxlength=64)
+ expire = models.IntegerField()
+ retry = models.IntegerField()
+ refresh = models.IntegerField()
+ ttl = models.IntegerField()
+ nameservers = models.ManyToManyField(Nameserver)
+ mxs = models.ManyToManyField(MX)
+ addresses = models.ManyToManyField(IP, blank=True)
+ aux = models.TextField(blank=True)
+
+ def __str__(self):
+ return self.zone
+
+ class Admin:
+ pass
+
diff --git a/src/lib/Server/Hostbase/hostbase/models.pyc b/src/lib/Server/Hostbase/hostbase/models.pyc
new file mode 100644
index 000000000..f76cc7d76
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/models.pyc
Binary files differ
diff --git a/src/lib/Server/Hostbase/hostbase/models.pyo b/src/lib/Server/Hostbase/hostbase/models.pyo
new file mode 100644
index 000000000..02c6a5e3d
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/models.pyo
Binary files differ
diff --git a/src/lib/Server/Hostbase/hostbase/views.py b/src/lib/Server/Hostbase/hostbase/views.py
new file mode 100644
index 000000000..1077cbede
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/views.py
@@ -0,0 +1,654 @@
+# Create your views here.
+"""Views.py
+Contains all the views associated with the hostbase app
+Also has does form validation
+"""
+__revision__ = 0.1
+
+from django.http import HttpResponse, HttpResponseRedirect
+from models import *
+from Cheetah.Template import Template
+from datetime import date
+from django.db import connection
+import re
+
+attribs = ['hostname', 'whatami', 'netgroup', 'security_class', 'support',
+ 'csi', 'printq', 'primary_user', 'administrator', 'location',
+ 'comments', 'status']
+
+dispatch = {'mac_addr':'i.mac_addr LIKE \'%%%%%s%%%%\'',
+ 'ip_addr':'p.ip_addr LIKE \'%%%%%s%%%%\'',
+ 'name':'n.name LIKE \'%%%%%s%%%%\'',
+ 'cname':'c.cname LIKE \'%%%%%s%%%%\'',
+ 'mx':'m.mx LIKE \'%%%%%s%%%%\'',
+ 'dns_view':'n.dns_view = \'%s\'',
+ 'hdwr_type':'i.hdwr_type = \'%s\''}
+
+
+## def netreg(request):
+## if request.GET.has_key('sub'):
+## failures = []
+## validated = True
+## # do validation right in here
+## macaddr_regex = re.compile('^[0-9abcdef]{2}(:[0-9abcdef]{2}){5}$')
+## if not (request.POST['mac_addr'] and macaddr_regex.match(request.POST['mac_addr'])):
+## validated = False
+## userregex = re.compile('^[a-z0-9-_\.@]+$')
+## if not (request.POST['email_address'] and userregex.match(request.POST['email_address'])):
+## validated = False
+## if not validated:
+## t = Template(open('./hostbase/webtemplates/errors.html').read())
+## t.failures = validate(request, True)
+## return HttpResponse(str(t))
+## return HttpResponseRedirect('/hostbase/%s/' % host.id)
+## else:
+## t = Template(open('./hostbase/webtemplates/netreg.html').read())
+## t.TYPE_CHOICES = Interface.TYPE_CHOICES
+## t.failures = False
+## return HttpResponse(str(t))
+
+
+def search(request):
+ """Search for hosts in the database
+ If more than one field is entered, logical AND is used
+ """
+ if request.GET.has_key('sub'):
+ querystring = """SELECT DISTINCT h.hostname, h.id, h.status
+ FROM (((((hostbase_host h
+ INNER JOIN hostbase_interface i ON h.id = i.host_id)
+ INNER JOIN hostbase_ip p ON i.id = p.interface_id)
+ INNER JOIN hostbase_name n ON p.id = n.ip_id)
+ INNER JOIN hostbase_name_mxs x ON n.id = x.name_id)
+ INNER JOIN hostbase_mx m ON m.id = x.mx_id)
+ LEFT JOIN hostbase_cname c ON n.id = c.name_id
+ WHERE """
+
+ _and = False
+ for field in request.POST:
+ if request.POST[field] and field in dispatch:
+ if _and:
+ querystring += ' AND '
+ querystring += dispatch[field] % request.POST[field]
+ _and = True
+ elif request.POST[field]:
+ if _and:
+ querystring += ' AND '
+ querystring += "h.%s LIKE \'%%%%%s%%%%\'" % (field, request.POST[field])
+ _and = True
+
+
+ if not _and:
+ cursor = connection.cursor()
+ cursor.execute("""SELECT hostname, id, status
+ FROM hostbase_host ORDER BY hostname""")
+ results = cursor.fetchall()
+ else:
+ querystring += " ORDER BY h.hostname"
+ cursor = connection.cursor()
+ cursor.execute(querystring)
+ results = cursor.fetchall()
+
+ temp = Template(open('./hostbase/webtemplates/results.html').read())
+ temp.hosts = results
+ return HttpResponse(str(temp))
+ else:
+ temp = Template(open('./hostbase/webtemplates/search.html').read())
+ temp.TYPE_CHOICES = Interface.TYPE_CHOICES
+ temp.DNS_CHOICES = Name.DNS_CHOICES
+ temp.yesno = [(1, 'yes'), (0, 'no')]
+ return HttpResponse(str(temp))
+
+def look(request, host_id):
+ """Displays general host information"""
+ temp = Template(open('./hostbase/webtemplates/host.html').read())
+ hostdata = gethostdata(host_id)
+ temp = fill(temp, hostdata)
+ return HttpResponse(str(temp))
+
+def dns(request, host_id):
+ temp = Template(open('./hostbase/webtemplates/dns.html').read())
+ hostdata = gethostdata(host_id, True)
+ temp = fill(temp, hostdata, True)
+ return HttpResponse(str(temp))
+
+def edit(request, host_id):
+ """Edit general host information
+ Data is validated before being committed to the database"""
+ # fix bug when ip address changes, update the dns info appropriately
+
+ if request.GET.has_key('sub'):
+ host = Host.objects.get(id=host_id)
+ interfaces = host.interface_set.all()
+ if not validate(request, False, host_id):
+ if (request.POST.has_key('outbound_smtp')
+ and not host.outbound_smtp or
+ not request.POST.has_key('outbound_smtp')
+ and host.outbound_smtp):
+ host.outbound_smtp = not host.outbound_smtp
+ if (request.POST.has_key('dhcp') and not host.dhcp or
+ not request.POST.has_key('dhcp') and host.dhcp):
+ host.dhcp = not host.dhcp
+ # add validation for attribs here
+ # likely use a helper fucntion
+ for attrib in attribs:
+ if request.POST.has_key(attrib):
+ host.__dict__[attrib] = request.POST[attrib]
+ if len(request.POST['expiration_date'].split("-")) == 3:
+ (year, month, day) = request.POST['expiration_date'].split("-")
+ host.expiration_date = date(int(year), int(month), int(day))
+ for inter in interfaces:
+ ips = IP.objects.filter(interface=inter.id)
+ inter.mac_addr = request.POST['mac_addr%d' % inter.id]
+ oldtype = inter.hdwr_type
+ inter.hdwr_type = request.POST['hdwr_type%d' % inter.id]
+ oldname = "-".join([host.hostname.split(".", 1)[0], oldtype])
+ oldname += "." + host.hostname.split(".", 1)[1]
+ newname = "-".join([host.hostname.split(".", 1)[0],
+ inter.hdwr_type])
+ newname += "." + host.hostname.split(".", 1)[1]
+ for name in Name.objects.filter(name=oldname):
+ name.name = newname
+ name.save()
+ for ip in ips:
+ oldip = ip.ip_addr
+ ip.ip_addr = request.POST['ip_addr%d' % ip.id]
+ ip.save()
+ oldname = "-".join([host.hostname.split(".", 1)[0],
+ oldip.split(".")[2]])
+ oldname += "." + host.hostname.split(".", 1)[1]
+ newname = "-".join([host.hostname.split(".", 1)[0],
+ ip.ip_addr.split(".")[2]])
+ newname += "." + host.hostname.split(".", 1)[1]
+ if Name.objects.filter(name=oldname):
+ name = Name.objects.get(name=oldname, ip=ip.id)
+ name.name = newname
+ name.save()
+ if request.POST['%dip_addr' % inter.id]:
+ mx, created = MX.objects.get_or_create(priority=30, mx='mailgw.mcs.anl.gov')
+ if created:
+ mx.save()
+ new_ip = IP(interface=inter, num=len(ips),
+ ip_addr=request.POST['%dip_addr' % inter.id])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ name.mxs.add(mx)
+ new_name = "-".join([host.hostname.split(".")[0],
+ inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ name.mxs.add(mx)
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ name.mxs.add(mx)
+ inter.save()
+ if request.POST['mac_addr_new']:
+ new_inter = Interface(host=host,
+ mac_addr=request.POST['mac_addr_new'],
+ hdwr_type=request.POST['hdwr_type_new'])
+ new_inter.save()
+ if request.POST['mac_addr_new'] and request.POST['ip_addr_new']:
+ mx, created = MX.objects.get_or_create(priority=30, mx='mailgw.mcs.anl.gov')
+ if created:
+ mx.save()
+ new_ip = IP(interface=new_inter, num=0,
+ ip_addr=request.POST['ip_addr_new'])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ name.mxs.add(mx)
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ name.mxs.add(mx)
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ name.mxs.add(mx)
+ if request.POST['ip_addr_new'] and not request.POST['mac_addr_new']:
+ mx, created = MX.objects.get_or_create(priority=30, mx='mailgw.mcs.anl.gov')
+ if created:
+ mx.save()
+ new_inter = Interface(host=host, mac_addr="",
+ hdwr_type=request.POST['hdwr_type_new'])
+ new_inter.save()
+ new_ip = IP(interface=new_inter, num=0,
+ ip_addr=request.POST['ip_addr_new'])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ host.save()
+ return HttpResponseRedirect('/hostbase/%s/' % host.id)
+ else:
+ t = Template(open('./hostbase/webtemplates/errors.html').read())
+ t.failures = validate(request, False, host_id)
+ return HttpResponse(str(t))
+ # examine the check boxes for any changes
+ else:
+ t = Template(open('./hostbase/webtemplates/edit.html').read())
+ hostdata = gethostdata(host_id)
+ t = fill(t, hostdata)
+ t.type_choices = Interface.TYPE_CHOICES
+ t.request = request
+ return HttpResponse(str(t))
+
+def confirm(request, item, item_id, host_id, name_id=None):
+ """Asks if the user is sure he/she wants to remove an item"""
+ if request.GET.has_key('sub'):
+ if item == 'interface':
+ for ip in Interface.objects.get(id=item_id).ip_set.all():
+ for name in ip.name_set.all():
+ name.cname_set.all().delete()
+ ip.name_set.all().delete()
+ Interface.objects.get(id=item_id).ip_set.all().delete()
+ Interface.objects.get(id=item_id).delete()
+ elif item=='ip':
+ for name in IP.objects.get(id=item_id).name_set.all():
+ name.cname_set.all().delete()
+ IP.objects.get(id=item_id).name_set.all().delete()
+ IP.objects.get(id=item_id).delete()
+ elif item=='cname':
+ CName.objects.get(id=item_id).delete()
+ elif item=='mx':
+ mx = MX.objects.get(id=item_id)
+ Name.objects.get(id=name_id).mxs.remove(mx)
+ elif item=='name':
+ Name.objects.get(id=item_id).cname_set.all().delete()
+ Name.objects.get(id=item_id).delete()
+ if item == 'cname' or item == 'mx' or item == 'name':
+ return HttpResponseRedirect('/hostbase/%s/dns' % host_id)
+ else:
+ return HttpResponseRedirect('/hostbase/%s/edit' % host_id)
+ else:
+ temp = Template(open('./hostbase/webtemplates/confirm.html').read())
+ interface = None
+ ips = []
+ names = {}
+ cnames = {}
+ mxs = {}
+ if item == 'interface':
+ interface = Interface.objects.get(id=item_id)
+ ips = interface.ip_set.all()
+ for ip in ips:
+ names[ip.id] = ip.name_set.all()
+ for name in names[ip.id]:
+ cnames[name.id] = name.cname_set.all()
+ mxs[name.id] = name.mx_set.all()
+ elif item=='ip':
+ ips = [IP.objects.get(id=item_id)]
+ names[ips[0].id] = ips[0].name_set.all()
+ for name in names[ips[0].id]:
+ cnames[name.id] = name.cname_set.all()
+ mxs[name.id] = name.mx_set.all()
+ elif item=='name':
+ names = [Name.objects.get(id=item_id)]
+ for name in names:
+ cnames[name.id] = name.cname_set.all()
+ mxs[name.id] = name.mxs.all()
+ elif item=='cname':
+ cnames = [CName.objects.get(id=item_id)]
+ elif item=='mx':
+ mxs = [MX.objects.get(id=item_id)]
+ temp.interface = interface
+ temp.ips = ips
+ temp.names = names
+ temp.cnames = cnames
+ temp.mxs = mxs
+ temp.id = item_id
+ temp.type = item
+ temp.host_id = host_id
+ return HttpResponse(str(temp))
+
+def dnsedit(request, host_id):
+ """Edits specific DNS information
+ Data is validated before committed to the database"""
+ if request.GET.has_key('sub'):
+ hostdata = gethostdata(host_id, True)
+ for ip in hostdata['names']:
+ ipaddr = IP.objects.get(id=ip)
+ ipaddrstr = ipaddr.__str__()
+ for name in hostdata['cnames']:
+ for cname in hostdata['cnames'][name]:
+ cname.cname = request.POST['cname%d' % cname.id]
+ cname.save()
+ for name in hostdata['mxs']:
+ for mx in hostdata['mxs'][name]:
+ mx.priority = request.POST['priority%d' % mx.id]
+ mx.mx = request.POST['mx%d' % mx.id]
+ mx.save()
+ for name in hostdata['names'][ip]:
+ name.name = request.POST['name%d' % name.id]
+ if request.POST['%dcname' % name.id]:
+ cname = CName(name=name,
+ cname=request.POST['%dcname' % name.id])
+ cname.save()
+ if (request.POST['%dpriority' % name.id] and
+ request.POST['%dmx' % name.id]):
+ mx, created = MX.objects.get_or_create(priority=request.POST['%dpriority' % name.id],
+ mx=request.POST['%dmx' % name.id])
+ if created:
+ mx.save()
+ name.mxs.add(mx)
+ name.save()
+ if request.POST['%sname' % ipaddrstr]:
+ name = Name(ip=ipaddr,
+ dns_view=request.POST['%sdns_view' % ipaddrstr],
+ name=request.POST['%sname' % ipaddrstr], only=False)
+ name.save()
+ if request.POST['%scname' % ipaddrstr]:
+ cname = CName(name=name,
+ cname=request.POST['%scname' % ipaddrstr])
+ cname.save()
+ if (request.POST['%smx' % ipaddrstr] and
+ request.POST['%spriority' % ipaddrstr]):
+ mx, created = MX.objects.get_or_create(priority=request.POST['%spriority' % ipaddrstr],
+ mx=request.POST['%smx' % ipaddrstr])
+ if created:
+ mx.save()
+ name.mxs.add(mx)
+ return HttpResponseRedirect('/hostbase/%s/dns' % host_id)
+ else:
+ temp = Template(open('./hostbase/webtemplates/dnsedit.html').read())
+ hostdata = gethostdata(host_id, True)
+ temp = fill(temp, hostdata, True)
+ temp.request = request
+ return HttpResponse(str(temp))
+
+def gethostdata(host_id, dnsdata=False):
+ """Grabs the necessary data about a host
+ Replaces a lot of repeated code"""
+ hostdata = {}
+ hostdata['ips'] = {}
+ hostdata['names'] = {}
+ hostdata['cnames'] = {}
+ hostdata['mxs'] = {}
+ hostdata['host'] = Host.objects.get(id=host_id)
+ hostdata['interfaces'] = hostdata['host'].interface_set.all()
+ for interface in hostdata['interfaces']:
+ hostdata['ips'][interface.id] = interface.ip_set.all()
+ if dnsdata:
+ for ip in hostdata['ips'][interface.id]:
+ hostdata['names'][ip.id] = ip.name_set.all()
+ for name in hostdata['names'][ip.id]:
+ hostdata['cnames'][name.id] = name.cname_set.all()
+ hostdata['mxs'][name.id] = name.mxs.all()
+ return hostdata
+
+def fill(template, hostdata, dnsdata=False):
+ """Fills a generic template
+ Replaces a lot of repeated code"""
+ if dnsdata:
+ template.names = hostdata['names']
+ template.cnames = hostdata['cnames']
+ template.mxs = hostdata['mxs']
+ template.host = hostdata['host']
+ template.interfaces = hostdata['interfaces']
+ template.ips = hostdata['ips']
+ return template
+
+
+def new(request):
+ """Function for creating a new host in hostbase
+ Data is validated before committed to the database"""
+ if request.GET.has_key('sub'):
+ if not validate(request, True):
+ host = Host()
+ # this is the stuff that validate() should take care of
+ # examine the check boxes for any changes
+ host.outbound_smtp = request.POST.has_key('outbound_smtp')
+ host.dhcp = request.POST.has_key('dhcp')
+ for attrib in attribs:
+ if request.POST.has_key(attrib):
+ host.__dict__[attrib] = request.POST[attrib]
+ host.status = 'active'
+ host.save()
+ else:
+ temp = Template(open('./hostbase/webtemplates/errors.html').read())
+ temp.failures = validate(request, True)
+ return HttpResponse(str(temp))
+ if request.POST['mac_addr_new']:
+ new_inter = Interface(host=host,
+ mac_addr=request.POST['mac_addr_new'],
+ hdwr_type=request.POST['hdwr_type_new'])
+ new_inter.save()
+ if request.POST['mac_addr_new'] and request.POST['ip_addr_new']:
+ new_ip = IP(interface=new_inter,
+ num=0, ip_addr=request.POST['ip_addr_new'])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name, dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ if request.POST['ip_addr_new1'] and not request.POST['mac_addr_new1']:
+ new_inter = Interface(host=host,
+ mac_addr="",
+ hdwr_type=request.POST['hdwr_type_new1'])
+ new_inter.save()
+ new_ip = IP(interface=new_inter, num=0,
+ ip_addr=request.POST['ip_addr_new1'])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ if request.POST['mac_addr_new2']:
+ new_inter = Interface(host=host,
+ mac_addr=request.POST['mac_addr_new2'],
+ hdwr_type=request.POST['hdwr_addr_new2'])
+ new_inter.save()
+ if request.POST['mac_addr_new2'] and request.POST['ip_addr_new2']:
+ new_ip = IP(interface=new_inter, num=0,
+ ip_addr=request.POST['ip_addr_new2'])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ if request.POST['ip_addr_new2'] and not request.POST['mac_addr_new2']:
+ new_inter = Interface(host=host,
+ mac_addr="",
+ hdwr_type=request.POST['hdwr_type_new2'])
+ new_inter.save()
+ new_ip = IP(interface=new_inter, num=0,
+ ip_addr=request.POST['ip_addr_new2'])
+ new_ip.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_ip.ip_addr.split(".")[2]])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ new_name = "-".join([host.hostname.split(".")[0],
+ new_inter.hdwr_type])
+ new_name += "." + host.hostname.split(".", 1)[1]
+ name = Name(ip=new_ip, name=new_name,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ name = Name(ip=new_ip, name=host.hostname,
+ dns_view='global', only=False)
+ name.save()
+ mx = MX(name=name, priority=30, mx='mailgw.mcs.anl.gov')
+ mx.save()
+ host.save()
+ return HttpResponseRedirect('/hostbase/%s/' % host.id)
+ else:
+ temp = Template(open('./hostbase/webtemplates/new.html').read())
+ temp.TYPE_CHOICES = Interface.TYPE_CHOICES
+ temp.NETGROUP_CHOICES = Host.NETGROUP_CHOICES
+ temp.CLASS_CHOICES = Host.CLASS_CHOICES
+ temp.SUPPORT_CHOICES = Host.SUPPORT_CHOICES
+ temp.failures = False
+ return HttpResponse(str(temp))
+
+def validate(request, new=False, host_id=None):
+ """Function for checking form data"""
+ failures = []
+ dateregex = re.compile('^[0-9]{4}-[0-9]{2}-[0-9]{2}$')
+ if (request.POST['expiration_date']
+ and dateregex.match(request.POST['expiration_date'])):
+ try:
+ (year, month, day) = request.POST['expiration_date'].split("-")
+ date(int(year), int(month), int(day))
+ except (ValueError):
+ failures.append('expiration_date')
+ elif request.POST['expiration_date']:
+ failures.append('expiration_date')
+
+ hostregex = re.compile('^[a-z0-9-_]+(\.[a-z0-9-_]+)+$')
+ if not (request.POST['hostname']
+ and hostregex.match(request.POST['hostname'])):
+ failures.append('hostname')
+
+ printregex = re.compile('^[a-z0-9-]+$')
+ if not printregex.match(request.POST['printq']) and request.POST['printq']:
+ failures.append('printq')
+
+ userregex = re.compile('^[a-z0-9-_\.@]+$')
+ if not userregex.match(request.POST['primary_user']):
+ failures.append('primary_user')
+
+ if (not userregex.match(request.POST['administrator'])
+ and request.POST['administrator']):
+ failures.append('administrator')
+
+ locationregex = re.compile('^[0-9]{3}-[a-z][0-9]{3}$|none|bmr|cave|dsl|evl|mobile|offsite|mural|activespaces')
+ if not (request.POST['location']
+ and locationregex.match(request.POST['location'])):
+ failures.append('location')
+
+ if new:
+ macaddr_regex = re.compile('^[0-9abcdef]{2}(:[0-9abcdef]{2}){5}$')
+ if (not macaddr_regex.match(request.POST['mac_addr_new'])
+ and request.POST['mac_addr_new']):
+ failures.append('mac_addr (#1)')
+ if ((request.POST['mac_addr_new'] or request.POST['ip_addr_new']) and
+ not request.has_key('hdwr_type_new')):
+ failures.append('hdwr_type (#1)')
+ if ((request.POST['mac_addr_new2'] or request.POST['ip_addr_new']) and
+ not request.has_key('hdwr_type_new2')):
+ failures.append('hdwr_type (#2)')
+
+ if (not macaddr_regex.match(request.POST['mac_addr_new2'])
+ and request.POST['mac_addr_new2']):
+ failures.append('mac_addr (#2)')
+
+ ipaddr_regex = re.compile('^[0-9]{1,3}(\.[0-9]{1,3}){3}$')
+ if (not ipaddr_regex.match(request.POST['ip_addr_new'])
+ and request.POST['ip_addr_new']):
+ failures.append('ip_addr (#1)')
+ if (not ipaddr_regex.match(request.POST['ip_addr_new2'])
+ and request.POST['ip_addr_new2']):
+ failures.append('ip_addr (#2)')
+
+ [failures.append('ip_addr (#1)') for number in
+ request.POST['ip_addr_new'].split(".")
+ if number.isdigit() and int(number) > 255
+ and 'ip_addr (#1)' not in failures]
+ [failures.append('ip_addr (#2)') for number in
+ request.POST['ip_addr_new2'].split(".")
+ if number.isdigit() and int(number) > 255
+ and 'ip_addr (#2)' not in failures]
+
+ elif host_id:
+ macaddr_regex = re.compile('^[0-9abcdef]{2}(:[0-9abcdef]{2}){5}$')
+ ipaddr_regex = re.compile('^[0-9]{1,3}(\.[0-9]{1,3}){3}$')
+ interfaces = Interface.objects.filter(host=host_id)
+ for interface in interfaces:
+ if (not macaddr_regex.match(request.POST['mac_addr%d' % interface.id])
+ and request.POST['mac_addr%d' % interface.id]):
+ failures.append('mac_addr (%s)' % request.POST['mac_addr%d' % interface.id])
+ for ip in interface.ip_set.all():
+ if not ipaddr_regex.match(request.POST['ip_addr%d' % ip.id]):
+ failures.append('ip_addr (%s)' % request.POST['ip_addr%d' % ip.id])
+ [failures.append('ip_addr (%s)' % request.POST['ip_addr%d' % ip.id])
+ for number in request.POST['ip_addr%d' % ip.id].split(".")
+ if (number.isdigit() and int(number) > 255 and
+ 'ip_addr (%s)' % request.POST['ip_addr%d' % ip.id] not in failures)]
+
+
+
+
+ if not failures:
+ return 0
+ return failures
diff --git a/src/lib/Server/Hostbase/hostbase/views.pyc b/src/lib/Server/Hostbase/hostbase/views.pyc
new file mode 100644
index 000000000..24619902c
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/views.pyc
Binary files differ
diff --git a/src/lib/Server/Hostbase/hostbase/views.pyo b/src/lib/Server/Hostbase/hostbase/views.pyo
new file mode 100644
index 000000000..04623e621
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/views.pyo
Binary files differ
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/confirm.html b/src/lib/Server/Hostbase/hostbase/webtemplates/confirm.html
new file mode 100644
index 000000000..96ed4ed4f
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/confirm.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+<form name="input" action="confirm.html?sub=true" method="post">
+<h3>Are you sure?</h3>
+Are you sure you want to remove these items?
+
+#if $interface
+<ul>
+<li> interface: $interface.__str__ </li>
+#end if
+
+
+#if $ips
+<ul>
+#for $ip in $ips
+<li> ip: $ip.__str__ </li>
+<ul>
+#for $name in $names[$ip.id]
+<li> name: $name.__str__ </li>
+<ul>
+#for $cname in $cnames[$name.id]
+<li> cname: $cname.__str__ </li>
+#end for
+</ul>
+<ul>
+#for $mx in $mxs[$name.id]
+<li> mx: $mx.priority $mx.__str__ </li>
+#end for
+</ul>
+#end for
+</ul>
+#end for
+</ul>
+#end if
+
+#if $names and not $ips
+<ul>
+#for $name in $names
+<li> name: $name.__str__ </li>
+<ul>
+#for $cname in $cnames[$name.id]
+<li> cname: $cname.__str__ </li>
+#end for
+</ul>
+<ul>
+#for $mx in $mxs[$name.id]
+<li> mx: $mx.priority $mx.__str__ </li>
+#end for
+</ul>
+#end for
+</ul>
+#end if
+
+#if $cnames and not $names
+<ul>
+#for $cname in $cnames
+<li> cname: $cname.__str__ </li>
+#end for
+</ul>
+#end if
+
+#if $mxs and not $names
+<ul>
+#for $mx in $mxs
+<li> mx: $mx.priority $mx.__str__ </li>
+#end for
+</ul>
+#end if
+
+#if $interface
+</ul>
+#end if
+
+<input type="submit" value="confirm">
+<input type="reset" value="cancel" onclick="history.back()">
+</form>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Adminstration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/dns.html b/src/lib/Server/Hostbase/hostbase/webtemplates/dns.html
new file mode 100644
index 000000000..a937fb833
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/dns.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+<b>DNS Information for host "$host.hostname"</b>
+
+ #for $interface in $interfaces
+ #for $ip in $ips[$interface.id]
+ <ul><li> <b>ip_addr:</b> $ip.ip_addr</li>
+ #for $name in $names[$ip.id]
+ <ul> <li><b>name:</b> $name.name</li> <ul>
+ #for $cname in $cnames[$name.id]
+ <li> <b>cname:</b> $cname.cname</li>
+ #end for
+ #for $mx in $mxs[$name.id]
+ <li> <b>mx:</b> $mx.priority $mx.mx</li>
+ #end for
+ </ul></ul>
+ #end for
+ </ul>
+ #end for
+ #end for
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/dnsedit.html b/src/lib/Server/Hostbase/hostbase/webtemplates/dnsedit.html
new file mode 100644
index 000000000..9065153da
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/dnsedit.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+
+#set $cont = 1
+
+#if $request.GET.has_key('sub')
+ok, submitted
+#end if
+
+
+#if $cont
+<form name="dns" action="?sub=true" method="post">
+<input type="hidden" name="host" value="$host.id">
+<b>Edit DNS information below for individual IP addresses.</b>
+<table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ #for $interface in $interfaces
+ <tr><td><br></td></tr>
+ <tr> <td> <b>interface type</b> </td>
+ <td> $interface.hdwr_type </td></tr>
+ <tr> <td> <b>mac_addr</b> </td>
+ <td> $interface.mac_addr </td></tr>
+ <tr><td><hr></td><td><hr></td></tr>
+ #for $ip in $ips[$interface.id]
+ <tr> <td> <b>ip_addr</b></td>
+ <td>$ip.ip_addr</td></tr>
+ #for $name in $names[$ip.id]
+ <tr> <td><b>name(dns)</b></td>
+ <td> <input name="name$name.id" type="text" value="$name.name">
+ <select name="dns_view$name.id">
+ #for $choice in $name.DNS_CHOICES
+ #if $name.dns_view == $choice[0]
+ <option value="$choice[0]">$choice[1]
+ #else
+ <option value="$choice[0]">$choice[1]
+ #end if
+ #end for
+ </select>
+ <a style="font-size:75%" href="/hostbase/$host.id/name/${name.id}/confirm">remove</a></td></tr>
+ #for $cname in $cnames[$name.id]
+ <tr> <td> <b>cname</b></td>
+ <td> <input name="cname$cname.id" type="text" value="$cname.cname">
+ <a style="font-size:75%" href="/hostbase/$host.id/cname/${cname.id}/confirm">remove</a></td></tr>
+ #end for
+ <tr> <td> <b>cname</b></td>
+ <td> <input name="${name.id}cname" type="text"></td></tr>
+ #for $mx in $mxs[$name.id]
+ <tr> <td> <b>mx</b></td>
+ <td> <input name="priority$mx.id" type="text" size="6" value="$mx.priority">
+ <input name="mx$mx.id" type="text" value="$mx.mx">
+ <a style="font-size:75%" href="/hostbase/$host.id/mx/${mx.id}/${name.id}/confirm">remove</a></td></tr>
+ #end for
+ <tr> <td> <b>mx</b></td>
+ <td> <input name="${name.id}priority" type="text" size="6">
+ <input name="${name.id}mx" type="text"></td></tr>
+ #end for
+ <tr> <td> <b>name</b></td>
+ <td> <input name="${ip.__str__}name" type="text">
+ <select name="${ip.__str__}dns_view">
+ #for $choice in $name.DNS_CHOICES
+ <option value="$choice[0]">$choice[1]
+ #end for
+ </select></td></tr>
+ <tr> <td> <b>cname</b></td>
+ <td> <input name="${ip.__str__}cname" type="text"></td></tr>
+ <tr> <td> <b>mx</b></td>
+ <td> <input name="${ip.__str__}priority" type="text" size="6">
+ <input name="${ip.__str__}mx" type="text"></td></tr>
+ <tr><td></td></tr>
+ <tr><td><hr></td><td><hr></td></tr>
+ #end for
+ #end for
+ </table>
+
+<p><input type="submit" value="Submit">
+</form>
+#end if
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/edit.html b/src/lib/Server/Hostbase/hostbase/webtemplates/edit.html
new file mode 100644
index 000000000..71ca621a1
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/edit.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+<script language=JavaScript type=text/Javascript>
+function toggleAddr(interface_id){
+ if(document.getElementById){
+ var style = document.getElementById('ipaddr'+interface_id).style;
+ style.display = style.display? "":"block";
+ }
+}
+function toggleInter(){
+ if(document.getElementById){
+ var style = document.getElementById('interface').style;
+ style.display = style.display? "":"block";
+ }
+}
+</script>
+
+<style type=text/css>
+#for $interface in $interfaces
+div#ipaddr${interface.id}{
+ display: none;
+}
+<!--
+#for $ip in $ips[$interface.id]
+div#dns${ip.id}{
+ display: none;
+}
+#end for
+-->
+#end for
+div#interface{
+ display: none;
+}
+</style>
+
+#set $cont = 1
+
+#if $request.GET.has_key('sub')
+ok, submitted
+#end if
+
+#if $cont
+<form name="hostdata" action="?sub=true" method="post">
+<input type="hidden" name="host" value="$host.id">
+<table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ <tr> <td> <b>hostname</b></td>
+ <td> <input name="hostname" type="text" value="$host.hostname"></td></tr>
+ <tr> <td> <b>whatami</b></td>
+ <td> <input name="whatami" type="text" value="$host.whatami"></td></tr>
+ <tr> <td> <b>netgroup</b></td>
+ <td>
+ <select name="netgroup">
+ #for $choice in $host.NETGROUP_CHOICES
+ #if $host.netgroup == $choice[0]
+ <option value="$choice[0]" selected="selected">$choice[1]
+ #else
+ <option value="$choice[0]">$choice[1]
+ #end if
+ #end for
+ </select>
+ </td></tr>
+ <tr> <td> <b>class</b></td>
+ <td>
+ <select name="security_class">
+ #for $choice in $host.CLASS_CHOICES
+ #if $host.security_class == $choice[0]
+ <option value="$choice[0]" selected="selected">$choice[1]
+ #else
+ <option value="$choice[0]">$choice[1]
+ #end if
+ #end for
+ </select></td></tr>
+ <tr> <td> <b>support</b></td>
+ <td>
+ <select name="support">
+ #for $choice in $host.SUPPORT_CHOICES
+ #if $host.support == $choice[0]
+ <option value="$choice[0]" selected="selected">$choice[1]
+ #else
+ <option value="$choice[0]">$choice[1]
+ #end if
+ #end for
+ </select></td></tr>
+ <tr> <td> <b>csi</b></td>
+ <td> <input name="csi" type="text" value="$host.csi"></td></tr>
+ <tr> <td> <b>printq</b></td>
+ <td> <input name="printq" type="text" value="$host.printq"></td></tr>
+ <tr> <td> <b>dhcp</b></td>
+ <td>
+ #if $host.dhcp
+ <input type="checkbox" checked="checked" name="dhcp"></td></tr>
+ #else
+ <input type="checkbox" name="dhcp"></td></tr>
+ #end if
+ <tr> <td> <b>outbound_smtp</b></td>
+ <td>
+ #if $host.outbound_smtp
+ <input type="checkbox" checked="checked" name="outbound_smtp"></td></tr>
+ #else
+ <input type="checkbox" name="outbound_smtp"></td></tr>
+ #end if
+ <tr> <td> <b>primary_user</b></td>
+ <td> <input name="primary_user" type="text" size="32" value="$host.primary_user"></td></tr>
+ <tr> <td> <b>administrator</b></td>
+ <td> <input name="administrator" type="text" size="32" value="$host.administrator"></td></tr>
+ <tr> <td> <b>location</b></td>
+ <td> <input name="location" type="text" value="$host.location"></td></tr>
+ <tr> <td> <b>expiration_date</b></td>
+ <td> <input name="expiration_date" type="text" value="$host.expiration_date"> YYYY-MM-DD</td></tr>
+ #for $interface in $interfaces
+ <tr> <td><br><b>Interface</b>
+ </td><td><br>
+ #for $choice in $interface.TYPE_CHOICES
+ #if $interface.hdwr_type == $choice[0]
+ <input type="radio" name="hdwr_type$interface.id" value="$choice[0]" checked="checked">$choice[1]
+ #else
+ <input type="radio" name="hdwr_type$interface.id" value="$choice[0]">$choice[1]
+ #end if
+ #end for
+ </td></tr>
+ <tr> <td> <b>mac_addr</b></td>
+ <td> <input name="mac_addr$interface.id" type="text" value="$interface.mac_addr">
+ <a style="font-size:75%" href="/hostbase/$host.id/interface/${interface.id}/confirm">remove</a>
+ </td></tr>
+ #for $ip in $ips[$interface.id]
+ <tr> <td> <b>ip_addr</b>
+ </td>
+ <td> <input name="ip_addr${ip.id}" type="text" value="$ip.ip_addr">
+ <a style="font-size:75%" href="/hostbase/$host.id/ip/${ip.id}/confirm">remove
+ </a></td></tr>
+ #end for
+
+<!-- Section for adding a new IP address to an existing interface -->
+<!-- By default, section is hidden -->
+ </table>
+ <div id=ipaddr${interface.id}>
+ <table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ <tr> <td> <b>ip_addr</b></td>
+ <td> <input name="${interface.id}ip_addr" type="text"></td></tr>
+ </table>
+ </div>
+ <a style="font-size:75%" href=# onclick="toggleAddr($interface.id)">Add a New IP Address</a>
+ <table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ #end for
+<!-- End section for new IP address -->
+
+<!-- Section for add an entirely new interface to a host -->
+<!-- By default, section is hidden -->
+ </table>
+ <div id=interface>
+ <table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ <tr> <td><br><b>Interface</b></td><td><br>
+ #for $choice in $type_choices
+ <input type="radio" name="hdwr_type_new" value="$choice[0]">$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>mac_addr</b></td>
+ <td> <input name="mac_addr_new" type="text"></td></tr>
+ <tr> <td> <b>ip_addr</b></td>
+ <td> <input name="ip_addr_new" type="text"></td></tr>
+</table>
+</div>
+<a style="font-size:75%" href=# onclick="toggleInter()">Add a New Interface</a>
+<!-- End new interface section -->
+
+
+<table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+<tr> <td> <b>comments</b></td>
+<td> <textarea rows="10" cols="50" name="comments">$host.comments</textarea></td></tr>
+</table>
+<a style="font-size:75%" href="/hostbase/$host.id/dns/edit">edit detailed DNS information for this host</a>
+<br>
+this host is
+<select name="status">
+#for $choice in $host.STATUS_CHOICES
+#if $host.status == $choice[0]
+<option value="$choice[0]" selected="selected">$choice[1]
+#else
+<option value="$choice[0]">$choice[1]
+#end if
+#end for
+</select><br>
+last update on $host.last<br>
+<p><input type="submit" value="Submit">
+</form>
+#end if
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/errors.html b/src/lib/Server/Hostbase/hostbase/webtemplates/errors.html
new file mode 100644
index 000000000..83f5cd014
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/errors.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","index.html","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+#if $failures
+There were errors in the following fields<br><br>
+#for $failure in $failures
+
+<font color="#FF0000">$failure</font><br>
+
+#end for
+#end if
+<br>
+Press the back button on your browser and edit those field(s)
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/host.html b/src/lib/Server/Hostbase/hostbase/webtemplates/host.html
new file mode 100644
index 000000000..a9ec9014b
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/host.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+<table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ <tr> <td> <b>hostname</b></td>
+ <td> $host.hostname</td></tr>
+ <tr> <td> <b>whatami</b></td>
+ <td> $host.whatami</td></tr>
+ <tr> <td> <b>netgroup</b></td>
+ <td> $host.netgroup</td></tr>
+ <tr> <td> <b>class</b></td>
+ <td> $host.security_class</td></tr>
+ <tr> <td> <b>support</b></td>
+ <td> $host.support</td></tr>
+ <tr> <td> <b>csi</b></td>
+ <td> $host.csi</td></tr>
+ <tr> <td> <b>printq</b></td>
+ <td> $host.printq</td></tr>
+ <tr> <td> <b>dhcp</b></td>
+ #if $host.dhcp
+ <td> y </td></tr>
+ #else
+ <td> n </td></tr>
+ #end if
+ <tr> <td> <b>outbound_smtp</b></td>
+ #if $host.outbound_smtp
+ <td> y </td></tr>
+ #else
+ <td> n </td></tr>
+ #end if
+ <tr> <td> <b>primary_user</b></td>
+ <td> $host.primary_user</td></tr>
+ <tr> <td> <b>administrator</b></td>
+ <td> $host.administrator</td></tr>
+ <tr> <td> <b>location</b></td>
+ <td> $host.location</td></tr>
+ <tr> <td> <b>expiration_date</b></td>
+ <td> $host.expiration_date</td></tr>
+ #for $interface in $interfaces
+ <tr> <td><br><b>Interface</b></td>
+ #if $interface.hdwr_type != 'no'
+ <td><br>$interface.hdwr_type </td></tr>
+ #end if
+ <tr> <td> <b>mac_addr</b></td>
+ <td> $interface.mac_addr </b></td></tr>
+ #for $ip in $ips[$interface.id]
+ <tr> <td> <b>ip_addr</b></td>
+ <td> $ip.ip_addr</td></tr>
+ #end for
+ #end for
+ <tr> <td> <b>comments</b></td>
+ <td> $host.comments</td></tr>
+
+</table>
+<a style="font-size:75%" href="/hostbase/$host.id/dns/">see detailed DNS information for this host</a>
+<br><br>
+this host is $host.status<br>
+last update on $host.last<br>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/new.html b/src/lib/Server/Hostbase/hostbase/webtemplates/new.html
new file mode 100644
index 000000000..bb00e57b0
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/new.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+<b> Enter new host information </b>
+
+<form name="hostdata" action="?sub=true" method="post">
+<input type="hidden" name="host">
+<table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ <tr> <td> <b>hostname</b></td>
+ <td> <input name="hostname" type="text" ></td></tr>
+ <tr> <td> <b>whatami</b></td>
+ <td> </td></tr>
+ <tr> <td> <b>netgroup</b></td>
+ <td>
+ <select name="netgroup">
+ #for $choice in $NETGROUP_CHOICES
+ <option value="$choice[0]">$choice[1]
+ #end for
+ </select>
+ </td></tr>
+ <tr> <td> <b>class</b></td>
+ <td>
+ <select name="security_class">
+ #for $choice in $CLASS_CHOICES
+ <option value="$choice[0]">$choice[1]
+ #end for
+ </select></td></tr>
+ <tr> <td> <b>support</b></td>
+ <td>
+ <select name="support">
+ #for $choice in $SUPPORT_CHOICES
+ <option value="$choice[0]">$choice[1]
+ #end for
+ </select></td></tr>
+ <tr> <td> <b>csi</b></td>
+ <td> <input name="csi" type="text" ></td></tr>
+ <tr> <td> <b>printq</b></td>
+ <td> <input name="printq" type="text" ></td></tr>
+ <tr> <td> <b>dhcp</b></td>
+ <td>
+ <input type="checkbox" name="dhcp"></td></tr>
+ <tr> <td> <b>outbound_smtp</b></td>
+ <td>
+ <input type="checkbox" name="outbound_smtp"></td></tr>
+ <tr> <td> <b>primary_user</b></td>
+ <td> <input name="primary_user" type="text" size="32" ></td></tr>
+ <tr> <td> <b>administrator</b></td>
+ <td> <input name="administrator" type="text" size="32" ></td></tr>
+ <tr> <td> <b>location</b></td>
+ <td> <input name="location" type="text" ></td></tr>
+ <tr> <td> <b>expiration_date</b></td>
+ <td> <input name="expiration_date" type="text" size="10" >YYYY-MM-DD</td></tr>
+ <tr> <td><br><b>Interface</b></td><td><br>
+ #for $choice in $TYPE_CHOICES
+ <input type="radio" name="hdwr_type_new" value="$choice[0]" >$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>mac_addr</b></td>
+ <td> <input name="mac_addr_new" type="text"></td></tr>
+ <tr> <td> <b>ip_addr</b></td>
+ <td> <input name="ip_addr_new" type="text"></td></tr>
+ <tr> <td><br><b>Interface</b></td><td><br>
+ #for $choice in $TYPE_CHOICES
+ <input type="radio" name="hdwr_type_new2" value="choice[0]" >$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>mac_addr</b></td>
+ <td> <input name="mac_addr_new2" type="text"></td></tr>
+ <tr> <td> <b>ip_addr</b></td>
+ <td> <input name="ip_addr_new2" type="text"></td></tr>
+ <tr> <td> <b>comments</b></td>
+ <td> <textarea rows="10" cols="50" name="comments"></textarea></td></tr>
+</table>
+<br>
+<p><input type="submit" value="Submit">
+</form>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/results.html b/src/lib/Server/Hostbase/hostbase/webtemplates/results.html
new file mode 100644
index 000000000..efae1143f
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/results.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" --><img src="http://www-unix.mcs.anl.gov/hostbaseweb/images/mcs_logo_white_minus_logo_small.png" width="92" height="31"><br>
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+#if $hosts
+<table border="0" width="100%">
+ <colgroup>
+ <col width="200">
+ <col width="75">
+ <col width="50">
+ <col width="*">
+ <tr> <td><b>hostname</b></td>
+ <td> <b>status</b> </td>
+ </tr>
+ #for $host in $hosts
+ <tr> <td> $host[0]</td>
+ #if $host[2]
+ <td> active </td>
+ #else
+ <td> inactive </td>
+ #end if
+ <td> <a href="$host[1]">view</a> </td>
+ <td> <a href="$host[1]/edit.html">edit</a> </td>
+ </tr>
+ #end for
+</table>
+#else
+No hosts matched your query<br>
+Click the back button on your browser to edit your search
+#end if
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
+
diff --git a/src/lib/Server/Hostbase/hostbase/webtemplates/search.html b/src/lib/Server/Hostbase/hostbase/webtemplates/search.html
new file mode 100644
index 000000000..29a684b1a
--- /dev/null
+++ b/src/lib/Server/Hostbase/hostbase/webtemplates/search.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><!-- InstanceBegin template="/Templates/publicFull.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<link href="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/stylesheets/argonne.css" rel="stylesheet" type="text/css">
+<link href="http://www.anl.gov/favicon.ico" rel="SHORTCUT ICON">
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/anlmain.js" type="text/JavaScript"></script>
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/stm31.js" type="text/JavaScript"></script>
+<!-- InstanceBeginEditable name="head" -->
+<!-- Insert page specific head elements in this region, including custom javascript -->
+<!-- TemplateBeginEditable name="head" -->
+<script language="JavaScript" src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/javascript/main.js" type="text/JavaScript"></script>
+<!-- TemplateEndEditable --><!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="title" -->
+<title></title>
+<!-- InstanceEndEditable -->
+<!-- InstanceBeginEditable name="metadata" -->
+<meta name="description" content="">
+<meta name="keywords" content="">
+<meta name="classification" content="">
+<meta name="author" content="Argonne National Laboratory">
+<meta name="expires" content="">
+<!-- InstanceEndEditable -->
+<!-- InstanceParam name="Contact URL" type="URL" value="../about/contacts.html" --><!-- InstanceParam name="Sitemap URL" type="URL" value="../Division/sitemap.html" --><!-- InstanceParam name="Search URL" type="URL" value="../About/search.html" --><!-- InstanceParam name="enableOptionalSponsorLogos" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarTabs" type="boolean" value="true" --><!-- InstanceParam name="enableNavBarSearch" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSitemapFooter" type="boolean" value="false" --><!-- InstanceParam name="enableOptionalSearchFooter" type="boolean" value="false" -->
+</head>
+<body>
+<table width="100%" border="0" cellpadding="0" cellspacing="3">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr class="headerBkgd" valign="middle">
+ <td width="10"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" height="10" width="10" border="0" alt=""></td>
+ <td width="300" align="left"><a href="http://www.anl.gov"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/argonne_header_logo.jpg" alt="Argonne National Laboratory" width="227" height="100" border="0"></a></td>
+ <td><span class="sectionTitle"><!-- InstanceBeginEditable name="divisionProgramIdentity" -->
+ <a href="http://www.mcs.anl.gov">Mathematics
+ and Computer Science </a><!-- InstanceEndEditable --></span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
+
+ <tr> <!-- InstanceBeginRepeat name="localNavigation" --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="http://www.mcs.anl.gov">About
+ Us</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/research/">Research</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --> <a href="../research/index.html"></a><a href="http://www-fp.mcs.anl.gov/division/resources/">Facilities</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" --><a href="http://www-fp.mcs.anl.gov/division/people/">Staff</a><!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/software/">Software</a> <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/collaboration">Collaborations </a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceBeginRepeatEntry -->
+ <td nowrap class="navGlobalBkgd"><span class="navGlobal"><!-- InstanceBeginEditable name="localNavigationItem" -->
+ <a href="http://www-fp.mcs.anl.gov/division/information/">Information</a>
+ <!-- InstanceEndEditable --></span></td>
+ <td width="3" nowrap><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="3" height="1" border="0" alt=""></td>
+ <!-- InstanceEndRepeatEntry --><!-- InstanceEndRepeat -->
+
+ <td class="navGlobalBkgd" width="50%"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/spacer.gif" width="1" height="30" border="0" alt=""></td>
+ </tr> </table>
+ <!-- #EndLibraryItem --></td>
+ </tr>
+ <tr>
+ <td class="greyBkgdLight"><span class="breadcrumbs"><a href="http://www.mcs.anl.gov/">MCS
+ Home</a> &gt; <!-- InstanceBeginEditable name="topLevelBreadcrumbs" -->
+ <script language="JavaScript">breadCrumbs("www-unix.mcs.anl.gov/new",">","","breadcrumbs","None","None","0");</script>
+ <!-- InstanceEndEditable --></span></td>
+</td>
+ </tr>
+ <tr valign="top">
+ <td nowrap><table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td><!-- InstanceBeginEditable name="mainFeature" -->
+<h2>Welcome to the hostbase database!</h2>
+Find hosts using one or more of the searchable fields below.<br>
+#*...or go to <a href="hostinfo">this</a>
+ page to enter hostinfo-like queries<br><br>*#
+<form name="input" action="?sub=true" method="post">
+<table border="0" width="100%">
+ <colgroup>
+ <col width="150">
+ <col width="*">
+ <tr> <td> <b>hostname</b></td>
+ <td> <input name="hostname" type="text" ></td></tr>
+ <tr> <td> <b>whatami</b></td>
+ <td> <input name="whatami" type="text" ></td></tr>
+ <td> </td></tr>
+ <tr> <td> <b>netgroup</b></td>
+ <td> <input name="netgroup" type="text" ></td></tr>
+ <tr> <td> <b>class</b></td>
+ <td> <input name="security_class" type="text" ></td></tr>
+ <tr> <td> <b>support</b></td>
+ <td> <input name="support" type="text" ></td></tr>
+ <tr> <td> <b>csi</b></td>
+ <td> <input name="csi" type="text" ></td></tr>
+ <tr> <td> <b>printq</b></td>
+ <td> <input name="printq" type="text" ></td></tr>
+ <tr> <td> <b>dhcp</b></td>
+ <td>
+ #for $choice in $yesno
+ <input type="radio" name="dhcp" value="$choice[0]" >$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>outbound_smtp</b></td>
+ <td>
+ #for $choice in $yesno
+ <input type="radio" name="outbound_smtp" value="$choice[0]" >$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>primary_user</b></td>
+ <td> <input name="primary_user" type="text" size="32" ></td></tr>
+ <tr> <td> <b>administrator</b></td>
+ <td> <input name="administrator" type="text" size="32" ></td></tr>
+ <tr> <td> <b>location</b></td>
+ <td> <input name="location" type="text" ></td></tr>
+ <tr> <td> <b>expiration_date</b></td>
+ <td> <input name="expiration_date" type="text" size="10" >YYYY-MM-DD</td></tr>
+ <tr> <td><br><b>Interface</b></td><td><br>
+ #for $choice in $TYPE_CHOICES
+ <input type="radio" name="hdwr_type" value="$choice[0]" >$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>mac_addr</b></td>
+ <td> <input name="mac_addr" type="text"></td></tr>
+ <tr> <td> <b>ip_addr</b></td>
+ <td> <input name="ip_addr" type="text"></td></tr>
+ <tr> <td> <b>name</b></td>
+ <td> <input name="name" type="text"></td></tr>
+ <tr> <td><b>dns_view</b></td><td>
+ #for $choice in $DNS_CHOICES
+ <input type="radio" name="dns_view" value="$choice[0]" >$choice[1]
+ #end for
+ </td></tr>
+ <tr> <td> <b>cname</b></td>
+ <td> <input name="cname" type="text"></td></tr>
+ <tr> <td> <b>mx</b></td>
+ <td> <input name="mx" type="text"></td></tr>
+</table>
+<p>
+<input type="submit" value="Search">
+</form>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr valign="top">
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" align="left"><hr size="1"></td>
+ </tr>
+ <tr valign="top">
+ <td colspan="2" align="center"><table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="http://www.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe.gif" alt="U.S. Department of Energy" width="153" height="35" border="0"></a></td>
+ <td><a href="http://www.uchicago.edu/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_uofc.gif" alt="The University of Chicago" width="125" height="34" border="0"></a></td>
+
+ <td><!-- InstanceBeginEditable name="sponsorLogos" --><!-- #BeginLibraryItem "/Library/logoOfficeOfScience.lbi" --><a href="http://www.sc.doe.gov/"><img src="http://www-unix.mcs.anl.gov/hostbaseweb/anl_templates/images/logos/footer_doe_science.gif" alt="Office of Science - Department of Energy" width="143" height="31" border="0"></a><!-- #EndLibraryItem --><!-- InstanceEndEditable --></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center"> <table cellspacing="0" cellpadding="2" border="0">
+ <tr>
+ <td class="footerText"><a href="http://www.anl.gov/notice.html">Privacy &amp; Security Notice</a>&nbsp;|&nbsp;<a href="http://www.anl.gov/Administration/contactus.html">Contact Us</a></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>