added os-type to host

This commit is contained in:
Tor Martin Slåen committed 2011-03-30 01:05:18 +02:00
1 parent 583eafc9bf
commit fbc21fa3a2
2 files changed
+29 -4

No files matched your search

+7 -4
View File
@@ -14,8 +14,9 @@ class HostAdmin(admin.ModelAdmin):
('Owner Information', {
'fields' : ( 'owner', 'location', 'description' )
}),
('Hardware Information', {
'fields' : ( ('brand', 'model'), 'serial_number', ('hostname', 'host_type' ) )
('Hardware and Software Information', {
'fields' : ( ('brand', 'model'), 'serial_number', ('hostname', 'host_type' ),
'operating_system' )
}),
('Kerberos Information', {
'description' : 'If this host is a member of the LDAP domain, you need to tick the request kerberos principal checkbox. A principal will then be created for the host.',
@@ -23,8 +24,8 @@ class HostAdmin(admin.ModelAdmin):
'fields' : ( 'request_kerberos_principal', 'kerberos_principal_created',
('kerberos_principal_name', 'kerberos_principal_created_date'))
}),
# ('Domain Information', {
# 'fields' : ('host_domains' )
# ('Operating System and Architecture', {
# 'fields' : ('virtual' )
# })
)
@@ -62,4 +63,6 @@ admin.site.register(Host, HostAdmin)
admin.site.register(Ip4Subnet, SubnetAdmin)
admin.site.register(Nameserver)
admin.site.register(MailExchange)
admin.site.register(OperatingSystem)
admin.site.register(OsArchitecture)
admin.site.register(HostType, HostTypeAdmin)
+22
View File
@@ -31,6 +31,7 @@ class Domain(models.Model):
domain_minimum_ttl = models.IntegerField(default=86400)
domain_admin = models.EmailField()
domain_ipaddr = models.IPAddressField()
created_date = models.DateTimeField(auto_now_add=True)
domain_nameservers = models.ManyToManyField(Nameserver)
domain_mailexchanges = models.ManyToManyField(MailExchange)
@@ -56,6 +57,7 @@ class DomainSrvRecord(models.Model):
port = models.IntegerField()
target = models.CharField(max_length=256)
domain = models.ForeignKey(Domain)
created_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.srvce + "." + self.prot + "." + self.name + ". IN SRV " \
@@ -66,6 +68,7 @@ class DomainTxtRecord(models.Model):
name = models.CharField(max_length=256)
target = models.CharField(max_length=256)
domain = models.ForeignKey(Domain)
created_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.name + " TXT " + self.target
@@ -74,6 +77,7 @@ class DomainCnameRecord(models.Model):
name = models.CharField(max_length=256)
target = models.CharField(max_length=256)
domain = models.ForeignKey(Domain)
created_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.name + " IN CNAME " + self.target
@@ -82,6 +86,7 @@ class Ip4Subnet(models.Model):
name = models.CharField(max_length=256)
netmask = models.IPAddressField()
network = models.IPAddressField()
created_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.network + " (" + self.name + ")"
@@ -134,6 +139,20 @@ class HostType(models.Model):
def num_members(self):
return self.host_set.count()
class OsArchitecture(models.Model):
architecture = models.CharField(max_length=64)
def __unicode__(self):
return self.architecture
class OperatingSystem(models.Model):
name = models.CharField(max_length=256)
version = models.CharField(max_length=64)
architecture = models.ForeignKey(OsArchitecture)
def __unicode__(self):
return self.name + " " + self.version + " (" + unicode(self.architecture) + ")"
class Host(models.Model):
domain = models.ManyToManyField(Domain)
location = models.CharField(max_length=1024)
@@ -145,6 +164,8 @@ class Host(models.Model):
description = models.CharField(max_length=1024)
created_date = models.DateTimeField(auto_now_add=True)
host_type = models.ForeignKey(HostType)
virtual = models.BooleanField()
operating_system = models.ForeignKey(OperatingSystem)
request_kerberos_principal = models.BooleanField()
kerberos_principal_created = models.BooleanField()
@@ -171,6 +192,7 @@ class Interface(models.Model):
dhcp_client = models.BooleanField()
host = models.ForeignKey(Host)
ip4address = models.ForeignKey(Ip4Address, blank=True, null=True)
created_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.macaddr