From fbc21fa3a2a5683c51a1e12decdb9aadeb86cdf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Martin=20Sl=C3=A5en?= Date: Wed, 30 Mar 2011 01:05:18 +0200 Subject: [PATCH] added os-type to host --- mdb/admin.py | 11 +++++++---- mdb/models.py | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/mdb/admin.py b/mdb/admin.py index 4948c68..02bab3e 100644 --- a/mdb/admin.py +++ b/mdb/admin.py @@ -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) diff --git a/mdb/models.py b/mdb/models.py index 1b2f8bb..8fc0c2e 100644 --- a/mdb/models.py +++ b/mdb/models.py @@ -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