Merge lp:~julian-edwards/maas/rename-ipaddress into lp:~maas-committers/maas/trunk

Proposed by Julian Edwards
Status: Merged
Approved by: Julian Edwards
Approved revision: no longer in the source branch.
Merged at revision: 2391
Proposed branch: lp:~julian-edwards/maas/rename-ipaddress
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 782 lines (+16/-342)
5 files modified
src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py (+0/-326)
src/maasserver/models/__init__.py (+5/-5)
src/maasserver/models/ipaddress.py (+6/-6)
src/maasserver/models/macaddress.py (+2/-2)
src/maasserver/models/macipaddresslink.py (+3/-3)
To merge this branch: bzr merge lp:~julian-edwards/maas/rename-ipaddress
Reviewer Review Type Date Requested Status
Julian Edwards (community) Approve
Review via email: mp+221676@code.launchpad.net

Commit message

Rename IPAddress model to StaticIPAddress, and MACIPAddressLink to MACStaticIPAddressLink. This is so IPAddress doesn't clash with the one in netaddr. Also the type column is renamed to alloc_type to avoid the Python keyword clash.

To post a comment you must log in.
Revision history for this message
Julian Edwards (julian-edwards) wrote :

Trivial rename agreed on IRC, selfing.

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :
Download full text (16.2 KiB)

The attempt to merge lp:~julian-edwards/maas/rename-ipaddress into lp:maas failed. Below is the output from the failed tests.

Ign http://security.ubuntu.com trusty-security InRelease
Hit http://security.ubuntu.com trusty-security Release.gpg
Hit http://security.ubuntu.com trusty-security Release
Ign http://nova.clouds.archive.ubuntu.com trusty InRelease
Ign http://nova.clouds.archive.ubuntu.com trusty-updates InRelease
Hit http://nova.clouds.archive.ubuntu.com trusty Release.gpg
Get:1 http://nova.clouds.archive.ubuntu.com trusty-updates Release.gpg [933 B]
Hit http://nova.clouds.archive.ubuntu.com trusty Release
Get:2 http://nova.clouds.archive.ubuntu.com trusty-updates Release [58.5 kB]
Hit http://security.ubuntu.com trusty-security/main Sources
Hit http://security.ubuntu.com trusty-security/universe Sources
Hit http://security.ubuntu.com trusty-security/main amd64 Packages
Hit http://security.ubuntu.com trusty-security/universe amd64 Packages
Hit http://security.ubuntu.com trusty-security/main Translation-en
Hit http://security.ubuntu.com trusty-security/universe Translation-en
Hit http://nova.clouds.archive.ubuntu.com trusty/main Sources
Hit http://nova.clouds.archive.ubuntu.com trusty/universe Sources
Hit http://nova.clouds.archive.ubuntu.com trusty/main amd64 Packages
Hit http://nova.clouds.archive.ubuntu.com trusty/universe amd64 Packages
Ign http://security.ubuntu.com trusty-security/main Translation-en_US
Hit http://nova.clouds.archive.ubuntu.com trusty/main Translation-en
Ign http://security.ubuntu.com trusty-security/universe Translation-en_US
Hit http://nova.clouds.archive.ubuntu.com trusty/universe Translation-en
Ign http://nova.clouds.archive.ubuntu.com trusty/main Translation-en_US
Ign http://nova.clouds.archive.ubuntu.com trusty/universe Translation-en_US
Get:3 http://nova.clouds.archive.ubuntu.com trusty-updates/main Sources [47.1 kB]
Get:4 http://nova.clouds.archive.ubuntu.com trusty-updates/universe Sources [28.6 kB]
Get:5 http://nova.clouds.archive.ubuntu.com trusty-updates/main amd64 Packages [116 kB]
Get:6 http://nova.clouds.archive.ubuntu.com trusty-updates/universe amd64 Packages [77.2 kB]
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/main Translation-en
Hit http://nova.clouds.archive.ubuntu.com trusty-updates/universe Translation-en
Ign http://nova.clouds.archive.ubuntu.com trusty-updates/main Translation-en_US
Ign http://nova.clouds.archive.ubuntu.com trusty-updates/universe Translation-en_US
Fetched 328 kB in 0s (890 kB/s)
Reading package lists...
sudo DEBIAN_FRONTEND=noninteractive apt-get -y \
     --no-install-recommends install apache2 bind9 bind9utils build-essential bzr-builddeb curl daemontools debhelper dh-apport distro-info dnsutils firefox freeipmi-tools ipython isc-dhcp-common libjs-raphael libjs-yui3-full libjs-yui3-min libpq-dev make postgresql python-amqplib python-bzrlib python-celery python-convoy python-crochet python-cssselect python-curtin python-dev python-distro-info python-django python-django-piston python-django-south python-djorm-ext-pgarray python-docutils python-formencode python-httplib2 python-jinja2 python-jsonschema python-lockfile python-lxml python-netaddr python-netifaces...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py'
2--- src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 1970-01-01 00:00:00 +0000
3+++ src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 2014-06-02 08:01:44 +0000
4@@ -0,0 +1,326 @@
5+from django.db import models
6+from south.db import db
7+# -*- coding: utf-8 -*-
8+from south.utils import datetime_utils as datetime
9+from south.v2 import SchemaMigration
10+
11+
12+class Migration(SchemaMigration):
13+
14+ def forwards(self, orm):
15+ # Adding model 'MACStaticIPAddressLink'
16+ db.create_table(u'maasserver_macstaticipaddresslink', (
17+ (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
18+ ('created', self.gf('django.db.models.fields.DateTimeField')()),
19+ ('updated', self.gf('django.db.models.fields.DateTimeField')()),
20+ ('mac_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.MACAddress'])),
21+ ('ip_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.StaticIPAddress'], unique=True)),
22+ ('nic_alias', self.gf('django.db.models.fields.IntegerField')(default=None, null=True, blank=True)),
23+ ))
24+ db.send_create_signal(u'maasserver', ['MACStaticIPAddressLink'])
25+
26+ # Adding unique constraint on 'MACStaticIPAddressLink', fields ['ip_address', 'mac_address']
27+ db.create_unique(u'maasserver_macstaticipaddresslink', ['ip_address_id', 'mac_address_id'])
28+
29+ # Adding model 'StaticIPAddress'
30+ db.create_table(u'maasserver_staticipaddress', (
31+ (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
32+ ('created', self.gf('django.db.models.fields.DateTimeField')()),
33+ ('updated', self.gf('django.db.models.fields.DateTimeField')()),
34+ ('ip', self.gf('django.db.models.fields.GenericIPAddressField')(unique=True, max_length=39)),
35+ ('alloc_type', self.gf('django.db.models.fields.IntegerField')(default=0)),
36+ ))
37+ db.send_create_signal(u'maasserver', ['StaticIPAddress'])
38+
39+ # Adding field 'NodeGroupInterface.static_ip_range_low'
40+ db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_low',
41+ self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
42+ keep_default=False)
43+
44+ # Adding field 'NodeGroupInterface.static_ip_range_high'
45+ db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_high',
46+ self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
47+ keep_default=False)
48+
49+
50+ def backwards(self, orm):
51+ # Removing unique constraint on 'MACStaticIPAddressLink', fields ['ip_address', 'mac_address']
52+ db.delete_unique(u'maasserver_macstaticipaddresslink', ['ip_address_id', 'mac_address_id'])
53+
54+ # Deleting model 'MACStaticIPAddressLink'
55+ db.delete_table(u'maasserver_macstaticipaddresslink')
56+
57+ # Deleting model 'StaticIPAddress'
58+ db.delete_table(u'maasserver_staticipaddress')
59+
60+ # Deleting field 'NodeGroupInterface.static_ip_range_low'
61+ db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_low')
62+
63+ # Deleting field 'NodeGroupInterface.static_ip_range_high'
64+ db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_high')
65+
66+
67+ models = {
68+ u'auth.group': {
69+ 'Meta': {'object_name': 'Group'},
70+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
71+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
72+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
73+ },
74+ u'auth.permission': {
75+ 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
76+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
77+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
78+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
79+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
80+ },
81+ u'auth.user': {
82+ 'Meta': {'object_name': 'User'},
83+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
84+ 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}),
85+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
86+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
87+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
88+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
89+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
90+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
91+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
92+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
93+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
94+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
95+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
96+ },
97+ u'contenttypes.contenttype': {
98+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
99+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
100+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
101+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
102+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
103+ },
104+ u'maasserver.bootimage': {
105+ 'Meta': {'unique_together': "((u'nodegroup', u'osystem', u'architecture', u'subarchitecture', u'release', u'purpose', u'label'),)", 'object_name': 'BootImage'},
106+ 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
107+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
108+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
109+ 'label': ('django.db.models.fields.CharField', [], {'default': "u'release'", 'max_length': '255'}),
110+ 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
111+ 'osystem': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
112+ 'purpose': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
113+ 'release': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
114+ 'subarchitecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
115+ 'supported_subarches': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
116+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
117+ },
118+ u'maasserver.bootsource': {
119+ 'Meta': {'object_name': 'BootSource'},
120+ 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
121+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
122+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
123+ 'keyring_data': ('maasserver.fields.EditableBinaryField', [], {'blank': 'True'}),
124+ 'keyring_filename': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
125+ 'updated': ('django.db.models.fields.DateTimeField', [], {}),
126+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
127+ },
128+ u'maasserver.bootsourceselection': {
129+ 'Meta': {'object_name': 'BootSourceSelection'},
130+ 'arches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
131+ 'boot_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.BootSource']"}),
132+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
133+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
134+ 'labels': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
135+ 'release': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
136+ 'subarches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
137+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
138+ },
139+ u'maasserver.componenterror': {
140+ 'Meta': {'object_name': 'ComponentError'},
141+ 'component': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
142+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
143+ 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
144+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
145+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
146+ },
147+ u'maasserver.config': {
148+ 'Meta': {'object_name': 'Config'},
149+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
150+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
151+ 'value': ('maasserver.fields.JSONObjectField', [], {'null': 'True'})
152+ },
153+ u'maasserver.dhcplease': {
154+ 'Meta': {'object_name': 'DHCPLease'},
155+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
156+ 'ip': ('django.db.models.fields.IPAddressField', [], {'unique': 'True', 'max_length': '15'}),
157+ 'mac': ('maasserver.fields.MACAddressField', [], {}),
158+ 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"})
159+ },
160+ u'maasserver.downloadprogress': {
161+ 'Meta': {'object_name': 'DownloadProgress'},
162+ 'bytes_downloaded': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
163+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
164+ 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}),
165+ 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
166+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
167+ 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
168+ 'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
169+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
170+ },
171+ u'maasserver.filestorage': {
172+ 'Meta': {'unique_together': "((u'filename', u'owner'),)", 'object_name': 'FileStorage'},
173+ 'content': ('metadataserver.fields.BinaryField', [], {'blank': 'True'}),
174+ 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
175+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
176+ 'key': ('django.db.models.fields.CharField', [], {'default': "u'b46fe122-ea2b-11e3-b565-002215205ce8'", 'unique': 'True', 'max_length': '36'}),
177+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'})
178+ },
179+ u'maasserver.macaddress': {
180+ 'Meta': {'object_name': 'MACAddress'},
181+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
182+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
183+ 'ip_addresses': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.StaticIPAddress']", 'symmetrical': 'False', 'through': u"orm['maasserver.MACStaticIPAddressLink']", 'blank': 'True'}),
184+ 'mac_address': ('maasserver.fields.MACAddressField', [], {'unique': 'True'}),
185+ 'networks': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Network']", 'symmetrical': 'False', 'blank': 'True'}),
186+ 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']"}),
187+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
188+ },
189+ u'maasserver.macstaticipaddresslink': {
190+ 'Meta': {'unique_together': "((u'ip_address', u'mac_address'),)", 'object_name': 'MACStaticIPAddressLink'},
191+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
192+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
193+ 'ip_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.StaticIPAddress']", 'unique': 'True'}),
194+ 'mac_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.MACAddress']"}),
195+ 'nic_alias': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
196+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
197+ },
198+ u'maasserver.network': {
199+ 'Meta': {'object_name': 'Network'},
200+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
201+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
202+ 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
203+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
204+ 'netmask': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
205+ 'vlan_tag': ('django.db.models.fields.PositiveSmallIntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'})
206+ },
207+ u'maasserver.node': {
208+ 'Meta': {'object_name': 'Node'},
209+ 'agent_name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'null': 'True', 'blank': 'True'}),
210+ 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '31'}),
211+ 'cpu_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
212+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
213+ 'distro_series': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
214+ 'error': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
215+ 'hostname': ('django.db.models.fields.CharField', [], {'default': "u''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}),
216+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
217+ 'memory': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
218+ 'netboot': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
219+ 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
220+ 'osystem': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
221+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'}),
222+ 'power_parameters': ('maasserver.fields.JSONObjectField', [], {'default': "u''", 'blank': 'True'}),
223+ 'power_type': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '10', 'blank': 'True'}),
224+ 'routers': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'macaddr'", 'null': 'True', 'blank': 'True'}),
225+ 'status': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '10'}),
226+ 'storage': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
227+ 'system_id': ('django.db.models.fields.CharField', [], {'default': "u'node-b46a9b7c-ea2b-11e3-b565-002215205ce8'", 'unique': 'True', 'max_length': '41'}),
228+ 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Tag']", 'symmetrical': 'False'}),
229+ 'token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'null': 'True'}),
230+ 'updated': ('django.db.models.fields.DateTimeField', [], {}),
231+ 'zone': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Zone']", 'on_delete': 'models.SET_DEFAULT'})
232+ },
233+ u'maasserver.nodegroup': {
234+ 'Meta': {'object_name': 'NodeGroup'},
235+ 'api_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '18'}),
236+ 'api_token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'unique': 'True'}),
237+ 'cluster_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100', 'blank': 'True'}),
238+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
239+ 'dhcp_key': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
240+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
241+ 'maas_url': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
242+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
243+ 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
244+ 'updated': ('django.db.models.fields.DateTimeField', [], {}),
245+ 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'})
246+ },
247+ u'maasserver.nodegroupinterface': {
248+ 'Meta': {'unique_together': "((u'nodegroup', u'interface'),)", 'object_name': 'NodeGroupInterface'},
249+ 'broadcast_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
250+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
251+ 'foreign_dhcp_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
252+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
253+ 'interface': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
254+ 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
255+ 'ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
256+ 'ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
257+ 'management': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
258+ 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
259+ 'router_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
260+ 'static_ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
261+ 'static_ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
262+ 'subnet_mask': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
263+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
264+ },
265+ u'maasserver.sshkey': {
266+ 'Meta': {'unique_together': "((u'user', u'key'),)", 'object_name': 'SSHKey'},
267+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
268+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
269+ 'key': ('django.db.models.fields.TextField', [], {}),
270+ 'updated': ('django.db.models.fields.DateTimeField', [], {}),
271+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"})
272+ },
273+ u'maasserver.staticipaddress': {
274+ 'Meta': {'object_name': 'StaticIPAddress'},
275+ 'alloc_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
276+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
277+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
278+ 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
279+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
280+ },
281+ u'maasserver.tag': {
282+ 'Meta': {'object_name': 'Tag'},
283+ 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
284+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
285+ 'definition': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
286+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
287+ 'kernel_opts': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
288+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
289+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
290+ },
291+ u'maasserver.userprofile': {
292+ 'Meta': {'object_name': 'UserProfile'},
293+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
294+ 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['auth.User']", 'unique': 'True'})
295+ },
296+ u'maasserver.zone': {
297+ 'Meta': {'ordering': "[u'name']", 'object_name': 'Zone'},
298+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
299+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
300+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
301+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
302+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
303+ },
304+ u'piston.consumer': {
305+ 'Meta': {'object_name': 'Consumer'},
306+ 'description': ('django.db.models.fields.TextField', [], {}),
307+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
308+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
309+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
310+ 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
311+ 'status': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '16'}),
312+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'consumers'", 'null': 'True', 'to': u"orm['auth.User']"})
313+ },
314+ u'piston.token': {
315+ 'Meta': {'object_name': 'Token'},
316+ 'callback': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
317+ 'callback_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
318+ 'consumer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Consumer']"}),
319+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
320+ 'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
321+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
322+ 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
323+ 'timestamp': ('django.db.models.fields.IntegerField', [], {'default': '1401695917L'}),
324+ 'token_type': ('django.db.models.fields.IntegerField', [], {}),
325+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tokens'", 'null': 'True', 'to': u"orm['auth.User']"}),
326+ 'verifier': ('django.db.models.fields.CharField', [], {'max_length': '10'})
327+ }
328+ }
329+
330+ complete_apps = ['maasserver']
331\ No newline at end of file
332
333=== removed file 'src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py'
334--- src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 2014-06-02 02:55:00 +0000
335+++ src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 1970-01-01 00:00:00 +0000
336@@ -1,326 +0,0 @@
337-from django.db import models
338-from south.db import db
339-# -*- coding: utf-8 -*-
340-from south.utils import datetime_utils as datetime
341-from south.v2 import SchemaMigration
342-
343-
344-class Migration(SchemaMigration):
345-
346- def forwards(self, orm):
347- # Adding model 'IPAddress'
348- db.create_table(u'maasserver_ipaddress', (
349- (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
350- ('created', self.gf('django.db.models.fields.DateTimeField')()),
351- ('updated', self.gf('django.db.models.fields.DateTimeField')()),
352- ('ip', self.gf('django.db.models.fields.GenericIPAddressField')(unique=True, max_length=39)),
353- ('type', self.gf('django.db.models.fields.IntegerField')(default=0)),
354- ))
355- db.send_create_signal(u'maasserver', ['IPAddress'])
356-
357- # Adding model 'MACIPAddressLink'
358- db.create_table(u'maasserver_macipaddresslink', (
359- (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
360- ('created', self.gf('django.db.models.fields.DateTimeField')()),
361- ('updated', self.gf('django.db.models.fields.DateTimeField')()),
362- ('mac_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.MACAddress'])),
363- ('ip_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.IPAddress'], unique=True)),
364- ('nic_alias', self.gf('django.db.models.fields.IntegerField')(default=None, null=True, blank=True)),
365- ))
366- db.send_create_signal(u'maasserver', ['MACIPAddressLink'])
367-
368- # Adding unique constraint on 'MACIPAddressLink', fields ['ip_address', 'mac_address']
369- db.create_unique(u'maasserver_macipaddresslink', ['ip_address_id', 'mac_address_id'])
370-
371- # Adding field 'NodeGroupInterface.static_ip_range_low'
372- db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_low',
373- self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
374- keep_default=False)
375-
376- # Adding field 'NodeGroupInterface.static_ip_range_high'
377- db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_high',
378- self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
379- keep_default=False)
380-
381-
382- def backwards(self, orm):
383- # Removing unique constraint on 'MACIPAddressLink', fields ['ip_address', 'mac_address']
384- db.delete_unique(u'maasserver_macipaddresslink', ['ip_address_id', 'mac_address_id'])
385-
386- # Deleting model 'IPAddress'
387- db.delete_table(u'maasserver_ipaddress')
388-
389- # Deleting model 'MACIPAddressLink'
390- db.delete_table(u'maasserver_macipaddresslink')
391-
392- # Deleting field 'NodeGroupInterface.static_ip_range_low'
393- db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_low')
394-
395- # Deleting field 'NodeGroupInterface.static_ip_range_high'
396- db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_high')
397-
398-
399- models = {
400- u'auth.group': {
401- 'Meta': {'object_name': 'Group'},
402- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
403- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
404- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
405- },
406- u'auth.permission': {
407- 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
408- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
409- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
410- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
411- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
412- },
413- u'auth.user': {
414- 'Meta': {'object_name': 'User'},
415- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
416- 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}),
417- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
418- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
419- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
420- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
421- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
422- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
423- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
424- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
425- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
426- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
427- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
428- },
429- u'contenttypes.contenttype': {
430- 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
431- 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
432- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
433- 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
434- 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
435- },
436- u'maasserver.bootimage': {
437- 'Meta': {'unique_together': "((u'nodegroup', u'osystem', u'architecture', u'subarchitecture', u'release', u'purpose', u'label'),)", 'object_name': 'BootImage'},
438- 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
439- 'created': ('django.db.models.fields.DateTimeField', [], {}),
440- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
441- 'label': ('django.db.models.fields.CharField', [], {'default': "u'release'", 'max_length': '255'}),
442- 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
443- 'osystem': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
444- 'purpose': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
445- 'release': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
446- 'subarchitecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
447- 'supported_subarches': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
448- 'updated': ('django.db.models.fields.DateTimeField', [], {})
449- },
450- u'maasserver.bootsource': {
451- 'Meta': {'object_name': 'BootSource'},
452- 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
453- 'created': ('django.db.models.fields.DateTimeField', [], {}),
454- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
455- 'keyring_data': ('maasserver.fields.EditableBinaryField', [], {'blank': 'True'}),
456- 'keyring_filename': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
457- 'updated': ('django.db.models.fields.DateTimeField', [], {}),
458- 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
459- },
460- u'maasserver.bootsourceselection': {
461- 'Meta': {'object_name': 'BootSourceSelection'},
462- 'arches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
463- 'boot_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.BootSource']"}),
464- 'created': ('django.db.models.fields.DateTimeField', [], {}),
465- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
466- 'labels': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
467- 'release': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
468- 'subarches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
469- 'updated': ('django.db.models.fields.DateTimeField', [], {})
470- },
471- u'maasserver.componenterror': {
472- 'Meta': {'object_name': 'ComponentError'},
473- 'component': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
474- 'created': ('django.db.models.fields.DateTimeField', [], {}),
475- 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
476- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
477- 'updated': ('django.db.models.fields.DateTimeField', [], {})
478- },
479- u'maasserver.config': {
480- 'Meta': {'object_name': 'Config'},
481- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
482- 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
483- 'value': ('maasserver.fields.JSONObjectField', [], {'null': 'True'})
484- },
485- u'maasserver.dhcplease': {
486- 'Meta': {'object_name': 'DHCPLease'},
487- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
488- 'ip': ('django.db.models.fields.IPAddressField', [], {'unique': 'True', 'max_length': '15'}),
489- 'mac': ('maasserver.fields.MACAddressField', [], {}),
490- 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"})
491- },
492- u'maasserver.downloadprogress': {
493- 'Meta': {'object_name': 'DownloadProgress'},
494- 'bytes_downloaded': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
495- 'created': ('django.db.models.fields.DateTimeField', [], {}),
496- 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}),
497- 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
498- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
499- 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
500- 'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
501- 'updated': ('django.db.models.fields.DateTimeField', [], {})
502- },
503- u'maasserver.filestorage': {
504- 'Meta': {'unique_together': "((u'filename', u'owner'),)", 'object_name': 'FileStorage'},
505- 'content': ('metadataserver.fields.BinaryField', [], {'blank': 'True'}),
506- 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
507- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
508- 'key': ('django.db.models.fields.CharField', [], {'default': "u'23d4ee34-ea01-11e3-8dfe-002215205ce8'", 'unique': 'True', 'max_length': '36'}),
509- 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'})
510- },
511- u'maasserver.ipaddress': {
512- 'Meta': {'object_name': 'IPAddress'},
513- 'created': ('django.db.models.fields.DateTimeField', [], {}),
514- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
515- 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
516- 'type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
517- 'updated': ('django.db.models.fields.DateTimeField', [], {})
518- },
519- u'maasserver.macaddress': {
520- 'Meta': {'object_name': 'MACAddress'},
521- 'created': ('django.db.models.fields.DateTimeField', [], {}),
522- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
523- 'ip_addresses': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.IPAddress']", 'through': u"orm['maasserver.MACIPAddressLink']", 'symmetrical': 'False'}),
524- 'mac_address': ('maasserver.fields.MACAddressField', [], {'unique': 'True'}),
525- 'networks': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Network']", 'symmetrical': 'False', 'blank': 'True'}),
526- 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']"}),
527- 'updated': ('django.db.models.fields.DateTimeField', [], {})
528- },
529- u'maasserver.macipaddresslink': {
530- 'Meta': {'unique_together': "((u'ip_address', u'mac_address'),)", 'object_name': 'MACIPAddressLink'},
531- 'created': ('django.db.models.fields.DateTimeField', [], {}),
532- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
533- 'ip_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.IPAddress']", 'unique': 'True'}),
534- 'mac_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.MACAddress']"}),
535- 'nic_alias': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
536- 'updated': ('django.db.models.fields.DateTimeField', [], {})
537- },
538- u'maasserver.network': {
539- 'Meta': {'object_name': 'Network'},
540- 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
541- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
542- 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
543- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
544- 'netmask': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
545- 'vlan_tag': ('django.db.models.fields.PositiveSmallIntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'})
546- },
547- u'maasserver.node': {
548- 'Meta': {'object_name': 'Node'},
549- 'agent_name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'null': 'True', 'blank': 'True'}),
550- 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '31'}),
551- 'cpu_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
552- 'created': ('django.db.models.fields.DateTimeField', [], {}),
553- 'distro_series': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
554- 'error': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
555- 'hostname': ('django.db.models.fields.CharField', [], {'default': "u''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}),
556- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
557- 'memory': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
558- 'netboot': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
559- 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
560- 'osystem': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
561- 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'}),
562- 'power_parameters': ('maasserver.fields.JSONObjectField', [], {'default': "u''", 'blank': 'True'}),
563- 'power_type': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '10', 'blank': 'True'}),
564- 'routers': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'macaddr'", 'null': 'True', 'blank': 'True'}),
565- 'status': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '10'}),
566- 'storage': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
567- 'system_id': ('django.db.models.fields.CharField', [], {'default': "u'node-23d247e2-ea01-11e3-8dfe-002215205ce8'", 'unique': 'True', 'max_length': '41'}),
568- 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Tag']", 'symmetrical': 'False'}),
569- 'token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'null': 'True'}),
570- 'updated': ('django.db.models.fields.DateTimeField', [], {}),
571- 'zone': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Zone']", 'on_delete': 'models.SET_DEFAULT'})
572- },
573- u'maasserver.nodegroup': {
574- 'Meta': {'object_name': 'NodeGroup'},
575- 'api_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '18'}),
576- 'api_token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'unique': 'True'}),
577- 'cluster_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100', 'blank': 'True'}),
578- 'created': ('django.db.models.fields.DateTimeField', [], {}),
579- 'dhcp_key': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
580- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
581- 'maas_url': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
582- 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
583- 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
584- 'updated': ('django.db.models.fields.DateTimeField', [], {}),
585- 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'})
586- },
587- u'maasserver.nodegroupinterface': {
588- 'Meta': {'unique_together': "((u'nodegroup', u'interface'),)", 'object_name': 'NodeGroupInterface'},
589- 'broadcast_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
590- 'created': ('django.db.models.fields.DateTimeField', [], {}),
591- 'foreign_dhcp_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
592- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
593- 'interface': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
594- 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
595- 'ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
596- 'ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
597- 'management': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
598- 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
599- 'router_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
600- 'static_ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
601- 'static_ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
602- 'subnet_mask': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
603- 'updated': ('django.db.models.fields.DateTimeField', [], {})
604- },
605- u'maasserver.sshkey': {
606- 'Meta': {'unique_together': "((u'user', u'key'),)", 'object_name': 'SSHKey'},
607- 'created': ('django.db.models.fields.DateTimeField', [], {}),
608- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
609- 'key': ('django.db.models.fields.TextField', [], {}),
610- 'updated': ('django.db.models.fields.DateTimeField', [], {}),
611- 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"})
612- },
613- u'maasserver.tag': {
614- 'Meta': {'object_name': 'Tag'},
615- 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
616- 'created': ('django.db.models.fields.DateTimeField', [], {}),
617- 'definition': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
618- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
619- 'kernel_opts': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
620- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
621- 'updated': ('django.db.models.fields.DateTimeField', [], {})
622- },
623- u'maasserver.userprofile': {
624- 'Meta': {'object_name': 'UserProfile'},
625- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
626- 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['auth.User']", 'unique': 'True'})
627- },
628- u'maasserver.zone': {
629- 'Meta': {'ordering': "[u'name']", 'object_name': 'Zone'},
630- 'created': ('django.db.models.fields.DateTimeField', [], {}),
631- 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
632- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
633- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
634- 'updated': ('django.db.models.fields.DateTimeField', [], {})
635- },
636- u'piston.consumer': {
637- 'Meta': {'object_name': 'Consumer'},
638- 'description': ('django.db.models.fields.TextField', [], {}),
639- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
640- 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
641- 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
642- 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
643- 'status': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '16'}),
644- 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'consumers'", 'null': 'True', 'to': u"orm['auth.User']"})
645- },
646- u'piston.token': {
647- 'Meta': {'object_name': 'Token'},
648- 'callback': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
649- 'callback_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
650- 'consumer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Consumer']"}),
651- u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
652- 'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
653- 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
654- 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
655- 'timestamp': ('django.db.models.fields.IntegerField', [], {'default': '1401677636L'}),
656- 'token_type': ('django.db.models.fields.IntegerField', [], {}),
657- 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tokens'", 'null': 'True', 'to': u"orm['auth.User']"}),
658- 'verifier': ('django.db.models.fields.CharField', [], {'max_length': '10'})
659- }
660- }
661-
662- complete_apps = ['maasserver']
663\ No newline at end of file
664
665=== modified file 'src/maasserver/models/__init__.py'
666--- src/maasserver/models/__init__.py 2014-06-02 02:51:12 +0000
667+++ src/maasserver/models/__init__.py 2014-06-02 08:01:44 +0000
668@@ -51,9 +51,9 @@
669 from maasserver.models.dhcplease import DHCPLease
670 from maasserver.models.downloadprogress import DownloadProgress
671 from maasserver.models.filestorage import FileStorage
672-from maasserver.models.ipaddress import IPAddress
673+from maasserver.models.ipaddress import StaticIPAddress
674 from maasserver.models.macaddress import MACAddress
675-from maasserver.models.macipaddresslink import MACIPAddressLink
676+from maasserver.models.macipaddresslink import MACStaticIPAddressLink
677 from maasserver.models.network import Network
678 from maasserver.models.node import Node
679 from maasserver.models.nodegroup import NodeGroup
680@@ -70,9 +70,9 @@
681 # export in __all__.
682 ignore_unused(
683 BootImage, ComponentError, Config, DHCPLease, DownloadProgress,
684- FileStorage, IPAddress, MACAddress, MACIPAddressLink, Network,
685- NodeGroup, SSHKey, Tag, UserProfile, NodeGroupInterface, Zone,
686- logger)
687+ FileStorage, StaticIPAddress, MACAddress, MACStaticIPAddressLink,
688+ Network, NodeGroup, SSHKey, Tag, UserProfile, NodeGroupInterface,
689+ Zone, logger)
690
691
692 # Connect the 'create_user' method to the post save signal of User.
693
694=== modified file 'src/maasserver/models/ipaddress.py'
695--- src/maasserver/models/ipaddress.py 2014-06-02 02:53:30 +0000
696+++ src/maasserver/models/ipaddress.py 2014-06-02 08:01:44 +0000
697@@ -1,7 +1,7 @@
698 # Copyright 2014 Canonical Ltd. This software is licensed under the
699 # GNU Affero General Public License version 3 (see the file LICENSE).
700
701-"""Model definition for IPAddress.
702+"""Model definition for StaticIPAddress.
703
704 Contains all the in-use static IP addresses that are allocated by MAAS.
705 Generally speaking, these are written out to the DHCP server as "host"
706@@ -20,7 +20,7 @@
707
708 __metaclass__ = type
709 __all__ = [
710- 'IPAddress',
711+ 'StaticIPAddress',
712 ]
713
714
715@@ -34,11 +34,11 @@
716 from maasserver.models.timestampedmodel import TimestampedModel
717
718
719-class IPAddress(CleanSave, TimestampedModel):
720+class StaticIPAddress(CleanSave, TimestampedModel):
721
722 class Meta(DefaultMeta):
723- verbose_name = "IP Address"
724- verbose_name_plural = "IP Addresses"
725+ verbose_name = "Static IP Address"
726+ verbose_name_plural = "Static IP Addresses"
727
728 ip = GenericIPAddressField(
729 unique=True, null=False, editable=False, blank=False)
730@@ -46,7 +46,7 @@
731 # The MACIPAddressLink table is used to link IPAddress to
732 # MACAddress. See MACAddress.ip_addresses.
733
734- type = IntegerField(
735+ alloc_type = IntegerField(
736 editable=False, null=False, blank=False, default=IPADDRESS_TYPE.AUTO)
737
738 def __unicode__(self):
739
740=== modified file 'src/maasserver/models/macaddress.py'
741--- src/maasserver/models/macaddress.py 2014-06-02 05:20:58 +0000
742+++ src/maasserver/models/macaddress.py 2014-06-02 08:01:44 +0000
743@@ -51,8 +51,8 @@
744 networks = ManyToManyField('maasserver.Network', blank=True)
745
746 ip_addresses = ManyToManyField(
747- 'maasserver.IPAddress', through='maasserver.MACIPAddressLink',
748- blank=True)
749+ 'maasserver.StaticIPAddress',
750+ through='maasserver.MACStaticIPAddressLink', blank=True)
751
752 # future columns: tags, nic_name, metadata, bonding info
753
754
755=== modified file 'src/maasserver/models/macipaddresslink.py'
756--- src/maasserver/models/macipaddresslink.py 2014-06-02 02:51:12 +0000
757+++ src/maasserver/models/macipaddresslink.py 2014-06-02 08:01:44 +0000
758@@ -18,7 +18,7 @@
759
760 __metaclass__ = type
761 __all__ = [
762- 'MACIPAddressLink',
763+ 'MACStaticIPAddressLink',
764 ]
765
766
767@@ -31,13 +31,13 @@
768 from maasserver.models.timestampedmodel import TimestampedModel
769
770
771-class MACIPAddressLink(CleanSave, TimestampedModel):
772+class MACStaticIPAddressLink(CleanSave, TimestampedModel):
773
774 class Meta(DefaultMeta):
775 unique_together = ('ip_address', 'mac_address')
776
777 mac_address = ForeignKey('maasserver.MACAddress')
778- ip_address = ForeignKey('maasserver.IPAddress', unique=True)
779+ ip_address = ForeignKey('maasserver.StaticIPAddress', unique=True)
780
781 # Optional NIC alias for multi-homed NICs (e.g. 'eth0:1')
782 nic_alias = IntegerField(