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
=== added file 'src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py'
--- src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 1970-01-01 00:00:00 +0000
+++ src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 2014-06-02 08:01:44 +0000
@@ -0,0 +1,326 @@
1from django.db import models
2from south.db import db
3# -*- coding: utf-8 -*-
4from south.utils import datetime_utils as datetime
5from south.v2 import SchemaMigration
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding model 'MACStaticIPAddressLink'
12 db.create_table(u'maasserver_macstaticipaddresslink', (
13 (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14 ('created', self.gf('django.db.models.fields.DateTimeField')()),
15 ('updated', self.gf('django.db.models.fields.DateTimeField')()),
16 ('mac_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.MACAddress'])),
17 ('ip_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.StaticIPAddress'], unique=True)),
18 ('nic_alias', self.gf('django.db.models.fields.IntegerField')(default=None, null=True, blank=True)),
19 ))
20 db.send_create_signal(u'maasserver', ['MACStaticIPAddressLink'])
21
22 # Adding unique constraint on 'MACStaticIPAddressLink', fields ['ip_address', 'mac_address']
23 db.create_unique(u'maasserver_macstaticipaddresslink', ['ip_address_id', 'mac_address_id'])
24
25 # Adding model 'StaticIPAddress'
26 db.create_table(u'maasserver_staticipaddress', (
27 (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
28 ('created', self.gf('django.db.models.fields.DateTimeField')()),
29 ('updated', self.gf('django.db.models.fields.DateTimeField')()),
30 ('ip', self.gf('django.db.models.fields.GenericIPAddressField')(unique=True, max_length=39)),
31 ('alloc_type', self.gf('django.db.models.fields.IntegerField')(default=0)),
32 ))
33 db.send_create_signal(u'maasserver', ['StaticIPAddress'])
34
35 # Adding field 'NodeGroupInterface.static_ip_range_low'
36 db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_low',
37 self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
38 keep_default=False)
39
40 # Adding field 'NodeGroupInterface.static_ip_range_high'
41 db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_high',
42 self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
43 keep_default=False)
44
45
46 def backwards(self, orm):
47 # Removing unique constraint on 'MACStaticIPAddressLink', fields ['ip_address', 'mac_address']
48 db.delete_unique(u'maasserver_macstaticipaddresslink', ['ip_address_id', 'mac_address_id'])
49
50 # Deleting model 'MACStaticIPAddressLink'
51 db.delete_table(u'maasserver_macstaticipaddresslink')
52
53 # Deleting model 'StaticIPAddress'
54 db.delete_table(u'maasserver_staticipaddress')
55
56 # Deleting field 'NodeGroupInterface.static_ip_range_low'
57 db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_low')
58
59 # Deleting field 'NodeGroupInterface.static_ip_range_high'
60 db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_high')
61
62
63 models = {
64 u'auth.group': {
65 'Meta': {'object_name': 'Group'},
66 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
67 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
68 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
69 },
70 u'auth.permission': {
71 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
72 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
73 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
74 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
75 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
76 },
77 u'auth.user': {
78 'Meta': {'object_name': 'User'},
79 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
80 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}),
81 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
82 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
83 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
84 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
85 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
86 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
87 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
88 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
89 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
90 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
91 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
92 },
93 u'contenttypes.contenttype': {
94 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
95 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
96 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
97 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
98 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
99 },
100 u'maasserver.bootimage': {
101 'Meta': {'unique_together': "((u'nodegroup', u'osystem', u'architecture', u'subarchitecture', u'release', u'purpose', u'label'),)", 'object_name': 'BootImage'},
102 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
103 'created': ('django.db.models.fields.DateTimeField', [], {}),
104 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
105 'label': ('django.db.models.fields.CharField', [], {'default': "u'release'", 'max_length': '255'}),
106 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
107 'osystem': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
108 'purpose': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
109 'release': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
110 'subarchitecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
111 'supported_subarches': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
112 'updated': ('django.db.models.fields.DateTimeField', [], {})
113 },
114 u'maasserver.bootsource': {
115 'Meta': {'object_name': 'BootSource'},
116 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
117 'created': ('django.db.models.fields.DateTimeField', [], {}),
118 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
119 'keyring_data': ('maasserver.fields.EditableBinaryField', [], {'blank': 'True'}),
120 'keyring_filename': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
121 'updated': ('django.db.models.fields.DateTimeField', [], {}),
122 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
123 },
124 u'maasserver.bootsourceselection': {
125 'Meta': {'object_name': 'BootSourceSelection'},
126 'arches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
127 'boot_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.BootSource']"}),
128 'created': ('django.db.models.fields.DateTimeField', [], {}),
129 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
130 'labels': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
131 'release': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
132 'subarches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
133 'updated': ('django.db.models.fields.DateTimeField', [], {})
134 },
135 u'maasserver.componenterror': {
136 'Meta': {'object_name': 'ComponentError'},
137 'component': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
138 'created': ('django.db.models.fields.DateTimeField', [], {}),
139 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
140 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
141 'updated': ('django.db.models.fields.DateTimeField', [], {})
142 },
143 u'maasserver.config': {
144 'Meta': {'object_name': 'Config'},
145 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
146 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
147 'value': ('maasserver.fields.JSONObjectField', [], {'null': 'True'})
148 },
149 u'maasserver.dhcplease': {
150 'Meta': {'object_name': 'DHCPLease'},
151 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
152 'ip': ('django.db.models.fields.IPAddressField', [], {'unique': 'True', 'max_length': '15'}),
153 'mac': ('maasserver.fields.MACAddressField', [], {}),
154 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"})
155 },
156 u'maasserver.downloadprogress': {
157 'Meta': {'object_name': 'DownloadProgress'},
158 'bytes_downloaded': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
159 'created': ('django.db.models.fields.DateTimeField', [], {}),
160 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}),
161 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
162 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
163 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
164 'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
165 'updated': ('django.db.models.fields.DateTimeField', [], {})
166 },
167 u'maasserver.filestorage': {
168 'Meta': {'unique_together': "((u'filename', u'owner'),)", 'object_name': 'FileStorage'},
169 'content': ('metadataserver.fields.BinaryField', [], {'blank': 'True'}),
170 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
171 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
172 'key': ('django.db.models.fields.CharField', [], {'default': "u'b46fe122-ea2b-11e3-b565-002215205ce8'", 'unique': 'True', 'max_length': '36'}),
173 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'})
174 },
175 u'maasserver.macaddress': {
176 'Meta': {'object_name': 'MACAddress'},
177 'created': ('django.db.models.fields.DateTimeField', [], {}),
178 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
179 'ip_addresses': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.StaticIPAddress']", 'symmetrical': 'False', 'through': u"orm['maasserver.MACStaticIPAddressLink']", 'blank': 'True'}),
180 'mac_address': ('maasserver.fields.MACAddressField', [], {'unique': 'True'}),
181 'networks': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Network']", 'symmetrical': 'False', 'blank': 'True'}),
182 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']"}),
183 'updated': ('django.db.models.fields.DateTimeField', [], {})
184 },
185 u'maasserver.macstaticipaddresslink': {
186 'Meta': {'unique_together': "((u'ip_address', u'mac_address'),)", 'object_name': 'MACStaticIPAddressLink'},
187 'created': ('django.db.models.fields.DateTimeField', [], {}),
188 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
189 'ip_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.StaticIPAddress']", 'unique': 'True'}),
190 'mac_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.MACAddress']"}),
191 'nic_alias': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
192 'updated': ('django.db.models.fields.DateTimeField', [], {})
193 },
194 u'maasserver.network': {
195 'Meta': {'object_name': 'Network'},
196 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
197 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
198 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
199 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
200 'netmask': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
201 'vlan_tag': ('django.db.models.fields.PositiveSmallIntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'})
202 },
203 u'maasserver.node': {
204 'Meta': {'object_name': 'Node'},
205 'agent_name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'null': 'True', 'blank': 'True'}),
206 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '31'}),
207 'cpu_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
208 'created': ('django.db.models.fields.DateTimeField', [], {}),
209 'distro_series': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
210 'error': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
211 'hostname': ('django.db.models.fields.CharField', [], {'default': "u''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}),
212 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
213 'memory': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
214 'netboot': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
215 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
216 'osystem': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
217 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'}),
218 'power_parameters': ('maasserver.fields.JSONObjectField', [], {'default': "u''", 'blank': 'True'}),
219 'power_type': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '10', 'blank': 'True'}),
220 'routers': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'macaddr'", 'null': 'True', 'blank': 'True'}),
221 'status': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '10'}),
222 'storage': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
223 'system_id': ('django.db.models.fields.CharField', [], {'default': "u'node-b46a9b7c-ea2b-11e3-b565-002215205ce8'", 'unique': 'True', 'max_length': '41'}),
224 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Tag']", 'symmetrical': 'False'}),
225 'token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'null': 'True'}),
226 'updated': ('django.db.models.fields.DateTimeField', [], {}),
227 'zone': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Zone']", 'on_delete': 'models.SET_DEFAULT'})
228 },
229 u'maasserver.nodegroup': {
230 'Meta': {'object_name': 'NodeGroup'},
231 'api_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '18'}),
232 'api_token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'unique': 'True'}),
233 'cluster_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100', 'blank': 'True'}),
234 'created': ('django.db.models.fields.DateTimeField', [], {}),
235 'dhcp_key': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
236 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
237 'maas_url': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
238 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
239 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
240 'updated': ('django.db.models.fields.DateTimeField', [], {}),
241 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'})
242 },
243 u'maasserver.nodegroupinterface': {
244 'Meta': {'unique_together': "((u'nodegroup', u'interface'),)", 'object_name': 'NodeGroupInterface'},
245 'broadcast_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
246 'created': ('django.db.models.fields.DateTimeField', [], {}),
247 'foreign_dhcp_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
248 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
249 'interface': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
250 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
251 'ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
252 'ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
253 'management': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
254 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
255 'router_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
256 'static_ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
257 'static_ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
258 'subnet_mask': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
259 'updated': ('django.db.models.fields.DateTimeField', [], {})
260 },
261 u'maasserver.sshkey': {
262 'Meta': {'unique_together': "((u'user', u'key'),)", 'object_name': 'SSHKey'},
263 'created': ('django.db.models.fields.DateTimeField', [], {}),
264 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
265 'key': ('django.db.models.fields.TextField', [], {}),
266 'updated': ('django.db.models.fields.DateTimeField', [], {}),
267 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"})
268 },
269 u'maasserver.staticipaddress': {
270 'Meta': {'object_name': 'StaticIPAddress'},
271 'alloc_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
272 'created': ('django.db.models.fields.DateTimeField', [], {}),
273 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
274 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
275 'updated': ('django.db.models.fields.DateTimeField', [], {})
276 },
277 u'maasserver.tag': {
278 'Meta': {'object_name': 'Tag'},
279 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
280 'created': ('django.db.models.fields.DateTimeField', [], {}),
281 'definition': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
282 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
283 'kernel_opts': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
284 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
285 'updated': ('django.db.models.fields.DateTimeField', [], {})
286 },
287 u'maasserver.userprofile': {
288 'Meta': {'object_name': 'UserProfile'},
289 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
290 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['auth.User']", 'unique': 'True'})
291 },
292 u'maasserver.zone': {
293 'Meta': {'ordering': "[u'name']", 'object_name': 'Zone'},
294 'created': ('django.db.models.fields.DateTimeField', [], {}),
295 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
296 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
297 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
298 'updated': ('django.db.models.fields.DateTimeField', [], {})
299 },
300 u'piston.consumer': {
301 'Meta': {'object_name': 'Consumer'},
302 'description': ('django.db.models.fields.TextField', [], {}),
303 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
304 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
305 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
306 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
307 'status': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '16'}),
308 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'consumers'", 'null': 'True', 'to': u"orm['auth.User']"})
309 },
310 u'piston.token': {
311 'Meta': {'object_name': 'Token'},
312 'callback': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
313 'callback_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
314 'consumer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Consumer']"}),
315 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
316 'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
317 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
318 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
319 'timestamp': ('django.db.models.fields.IntegerField', [], {'default': '1401695917L'}),
320 'token_type': ('django.db.models.fields.IntegerField', [], {}),
321 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tokens'", 'null': 'True', 'to': u"orm['auth.User']"}),
322 'verifier': ('django.db.models.fields.CharField', [], {'max_length': '10'})
323 }
324 }
325
326 complete_apps = ['maasserver']
0\ No newline at end of file327\ No newline at end of file
1328
=== removed file 'src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py'
--- src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 2014-06-02 02:55:00 +0000
+++ src/maasserver/migrations/0081_ipaddress_table_and_static_dhcp_ranges.py 1970-01-01 00:00:00 +0000
@@ -1,326 +0,0 @@
1from django.db import models
2from south.db import db
3# -*- coding: utf-8 -*-
4from south.utils import datetime_utils as datetime
5from south.v2 import SchemaMigration
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding model 'IPAddress'
12 db.create_table(u'maasserver_ipaddress', (
13 (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14 ('created', self.gf('django.db.models.fields.DateTimeField')()),
15 ('updated', self.gf('django.db.models.fields.DateTimeField')()),
16 ('ip', self.gf('django.db.models.fields.GenericIPAddressField')(unique=True, max_length=39)),
17 ('type', self.gf('django.db.models.fields.IntegerField')(default=0)),
18 ))
19 db.send_create_signal(u'maasserver', ['IPAddress'])
20
21 # Adding model 'MACIPAddressLink'
22 db.create_table(u'maasserver_macipaddresslink', (
23 (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
24 ('created', self.gf('django.db.models.fields.DateTimeField')()),
25 ('updated', self.gf('django.db.models.fields.DateTimeField')()),
26 ('mac_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.MACAddress'])),
27 ('ip_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['maasserver.IPAddress'], unique=True)),
28 ('nic_alias', self.gf('django.db.models.fields.IntegerField')(default=None, null=True, blank=True)),
29 ))
30 db.send_create_signal(u'maasserver', ['MACIPAddressLink'])
31
32 # Adding unique constraint on 'MACIPAddressLink', fields ['ip_address', 'mac_address']
33 db.create_unique(u'maasserver_macipaddresslink', ['ip_address_id', 'mac_address_id'])
34
35 # Adding field 'NodeGroupInterface.static_ip_range_low'
36 db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_low',
37 self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
38 keep_default=False)
39
40 # Adding field 'NodeGroupInterface.static_ip_range_high'
41 db.add_column(u'maasserver_nodegroupinterface', 'static_ip_range_high',
42 self.gf('django.db.models.fields.GenericIPAddressField')(default=None, max_length=39, null=True, blank=True),
43 keep_default=False)
44
45
46 def backwards(self, orm):
47 # Removing unique constraint on 'MACIPAddressLink', fields ['ip_address', 'mac_address']
48 db.delete_unique(u'maasserver_macipaddresslink', ['ip_address_id', 'mac_address_id'])
49
50 # Deleting model 'IPAddress'
51 db.delete_table(u'maasserver_ipaddress')
52
53 # Deleting model 'MACIPAddressLink'
54 db.delete_table(u'maasserver_macipaddresslink')
55
56 # Deleting field 'NodeGroupInterface.static_ip_range_low'
57 db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_low')
58
59 # Deleting field 'NodeGroupInterface.static_ip_range_high'
60 db.delete_column(u'maasserver_nodegroupinterface', 'static_ip_range_high')
61
62
63 models = {
64 u'auth.group': {
65 'Meta': {'object_name': 'Group'},
66 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
67 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
68 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
69 },
70 u'auth.permission': {
71 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
72 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
73 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
74 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
75 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
76 },
77 u'auth.user': {
78 'Meta': {'object_name': 'User'},
79 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
80 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}),
81 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
82 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
83 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
84 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
85 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
86 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
87 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
88 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
89 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
90 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
91 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
92 },
93 u'contenttypes.contenttype': {
94 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
95 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
96 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
97 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
98 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
99 },
100 u'maasserver.bootimage': {
101 'Meta': {'unique_together': "((u'nodegroup', u'osystem', u'architecture', u'subarchitecture', u'release', u'purpose', u'label'),)", 'object_name': 'BootImage'},
102 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
103 'created': ('django.db.models.fields.DateTimeField', [], {}),
104 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
105 'label': ('django.db.models.fields.CharField', [], {'default': "u'release'", 'max_length': '255'}),
106 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
107 'osystem': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
108 'purpose': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
109 'release': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
110 'subarchitecture': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
111 'supported_subarches': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
112 'updated': ('django.db.models.fields.DateTimeField', [], {})
113 },
114 u'maasserver.bootsource': {
115 'Meta': {'object_name': 'BootSource'},
116 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
117 'created': ('django.db.models.fields.DateTimeField', [], {}),
118 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
119 'keyring_data': ('maasserver.fields.EditableBinaryField', [], {'blank': 'True'}),
120 'keyring_filename': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
121 'updated': ('django.db.models.fields.DateTimeField', [], {}),
122 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
123 },
124 u'maasserver.bootsourceselection': {
125 'Meta': {'object_name': 'BootSourceSelection'},
126 'arches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
127 'boot_source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.BootSource']"}),
128 'created': ('django.db.models.fields.DateTimeField', [], {}),
129 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
130 'labels': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
131 'release': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
132 'subarches': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'text'", 'null': 'True', 'blank': 'True'}),
133 'updated': ('django.db.models.fields.DateTimeField', [], {})
134 },
135 u'maasserver.componenterror': {
136 'Meta': {'object_name': 'ComponentError'},
137 'component': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
138 'created': ('django.db.models.fields.DateTimeField', [], {}),
139 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
140 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
141 'updated': ('django.db.models.fields.DateTimeField', [], {})
142 },
143 u'maasserver.config': {
144 'Meta': {'object_name': 'Config'},
145 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
146 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
147 'value': ('maasserver.fields.JSONObjectField', [], {'null': 'True'})
148 },
149 u'maasserver.dhcplease': {
150 'Meta': {'object_name': 'DHCPLease'},
151 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
152 'ip': ('django.db.models.fields.IPAddressField', [], {'unique': 'True', 'max_length': '15'}),
153 'mac': ('maasserver.fields.MACAddressField', [], {}),
154 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"})
155 },
156 u'maasserver.downloadprogress': {
157 'Meta': {'object_name': 'DownloadProgress'},
158 'bytes_downloaded': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
159 'created': ('django.db.models.fields.DateTimeField', [], {}),
160 'error': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}),
161 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
162 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
163 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
164 'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
165 'updated': ('django.db.models.fields.DateTimeField', [], {})
166 },
167 u'maasserver.filestorage': {
168 'Meta': {'unique_together': "((u'filename', u'owner'),)", 'object_name': 'FileStorage'},
169 'content': ('metadataserver.fields.BinaryField', [], {'blank': 'True'}),
170 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
171 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
172 'key': ('django.db.models.fields.CharField', [], {'default': "u'23d4ee34-ea01-11e3-8dfe-002215205ce8'", 'unique': 'True', 'max_length': '36'}),
173 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'})
174 },
175 u'maasserver.ipaddress': {
176 'Meta': {'object_name': 'IPAddress'},
177 'created': ('django.db.models.fields.DateTimeField', [], {}),
178 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
179 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
180 'type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
181 'updated': ('django.db.models.fields.DateTimeField', [], {})
182 },
183 u'maasserver.macaddress': {
184 'Meta': {'object_name': 'MACAddress'},
185 'created': ('django.db.models.fields.DateTimeField', [], {}),
186 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
187 'ip_addresses': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.IPAddress']", 'through': u"orm['maasserver.MACIPAddressLink']", 'symmetrical': 'False'}),
188 'mac_address': ('maasserver.fields.MACAddressField', [], {'unique': 'True'}),
189 'networks': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Network']", 'symmetrical': 'False', 'blank': 'True'}),
190 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']"}),
191 'updated': ('django.db.models.fields.DateTimeField', [], {})
192 },
193 u'maasserver.macipaddresslink': {
194 'Meta': {'unique_together': "((u'ip_address', u'mac_address'),)", 'object_name': 'MACIPAddressLink'},
195 'created': ('django.db.models.fields.DateTimeField', [], {}),
196 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
197 'ip_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.IPAddress']", 'unique': 'True'}),
198 'mac_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.MACAddress']"}),
199 'nic_alias': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
200 'updated': ('django.db.models.fields.DateTimeField', [], {})
201 },
202 u'maasserver.network': {
203 'Meta': {'object_name': 'Network'},
204 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
205 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
206 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}),
207 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
208 'netmask': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
209 'vlan_tag': ('django.db.models.fields.PositiveSmallIntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'})
210 },
211 u'maasserver.node': {
212 'Meta': {'object_name': 'Node'},
213 'agent_name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'null': 'True', 'blank': 'True'}),
214 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '31'}),
215 'cpu_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
216 'created': ('django.db.models.fields.DateTimeField', [], {}),
217 'distro_series': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
218 'error': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
219 'hostname': ('django.db.models.fields.CharField', [], {'default': "u''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}),
220 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
221 'memory': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
222 'netboot': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
223 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
224 'osystem': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '20', 'blank': 'True'}),
225 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'}),
226 'power_parameters': ('maasserver.fields.JSONObjectField', [], {'default': "u''", 'blank': 'True'}),
227 'power_type': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '10', 'blank': 'True'}),
228 'routers': ('djorm_pgarray.fields.ArrayField', [], {'default': 'None', 'dbtype': "u'macaddr'", 'null': 'True', 'blank': 'True'}),
229 'status': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '10'}),
230 'storage': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
231 'system_id': ('django.db.models.fields.CharField', [], {'default': "u'node-23d247e2-ea01-11e3-8dfe-002215205ce8'", 'unique': 'True', 'max_length': '41'}),
232 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Tag']", 'symmetrical': 'False'}),
233 'token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'null': 'True'}),
234 'updated': ('django.db.models.fields.DateTimeField', [], {}),
235 'zone': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Zone']", 'on_delete': 'models.SET_DEFAULT'})
236 },
237 u'maasserver.nodegroup': {
238 'Meta': {'object_name': 'NodeGroup'},
239 'api_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '18'}),
240 'api_token': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Token']", 'unique': 'True'}),
241 'cluster_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100', 'blank': 'True'}),
242 'created': ('django.db.models.fields.DateTimeField', [], {}),
243 'dhcp_key': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
244 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
245 'maas_url': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
246 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
247 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
248 'updated': ('django.db.models.fields.DateTimeField', [], {}),
249 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'})
250 },
251 u'maasserver.nodegroupinterface': {
252 'Meta': {'unique_together': "((u'nodegroup', u'interface'),)", 'object_name': 'NodeGroupInterface'},
253 'broadcast_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
254 'created': ('django.db.models.fields.DateTimeField', [], {}),
255 'foreign_dhcp_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
256 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
257 'interface': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
258 'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
259 'ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
260 'ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
261 'management': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
262 'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']"}),
263 'router_ip': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
264 'static_ip_range_high': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
265 'static_ip_range_low': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
266 'subnet_mask': ('django.db.models.fields.GenericIPAddressField', [], {'default': 'None', 'max_length': '39', 'null': 'True', 'blank': 'True'}),
267 'updated': ('django.db.models.fields.DateTimeField', [], {})
268 },
269 u'maasserver.sshkey': {
270 'Meta': {'unique_together': "((u'user', u'key'),)", 'object_name': 'SSHKey'},
271 'created': ('django.db.models.fields.DateTimeField', [], {}),
272 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
273 'key': ('django.db.models.fields.TextField', [], {}),
274 'updated': ('django.db.models.fields.DateTimeField', [], {}),
275 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"})
276 },
277 u'maasserver.tag': {
278 'Meta': {'object_name': 'Tag'},
279 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
280 'created': ('django.db.models.fields.DateTimeField', [], {}),
281 'definition': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
282 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
283 'kernel_opts': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
284 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
285 'updated': ('django.db.models.fields.DateTimeField', [], {})
286 },
287 u'maasserver.userprofile': {
288 'Meta': {'object_name': 'UserProfile'},
289 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
290 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['auth.User']", 'unique': 'True'})
291 },
292 u'maasserver.zone': {
293 'Meta': {'ordering': "[u'name']", 'object_name': 'Zone'},
294 'created': ('django.db.models.fields.DateTimeField', [], {}),
295 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
296 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
297 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
298 'updated': ('django.db.models.fields.DateTimeField', [], {})
299 },
300 u'piston.consumer': {
301 'Meta': {'object_name': 'Consumer'},
302 'description': ('django.db.models.fields.TextField', [], {}),
303 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
304 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
305 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
306 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
307 'status': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '16'}),
308 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'consumers'", 'null': 'True', 'to': u"orm['auth.User']"})
309 },
310 u'piston.token': {
311 'Meta': {'object_name': 'Token'},
312 'callback': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
313 'callback_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
314 'consumer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['piston.Consumer']"}),
315 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
316 'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
317 'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
318 'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
319 'timestamp': ('django.db.models.fields.IntegerField', [], {'default': '1401677636L'}),
320 'token_type': ('django.db.models.fields.IntegerField', [], {}),
321 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tokens'", 'null': 'True', 'to': u"orm['auth.User']"}),
322 'verifier': ('django.db.models.fields.CharField', [], {'max_length': '10'})
323 }
324 }
325
326 complete_apps = ['maasserver']
327\ No newline at end of file0\ No newline at end of file
3281
=== modified file 'src/maasserver/models/__init__.py'
--- src/maasserver/models/__init__.py 2014-06-02 02:51:12 +0000
+++ src/maasserver/models/__init__.py 2014-06-02 08:01:44 +0000
@@ -51,9 +51,9 @@
51from maasserver.models.dhcplease import DHCPLease51from maasserver.models.dhcplease import DHCPLease
52from maasserver.models.downloadprogress import DownloadProgress52from maasserver.models.downloadprogress import DownloadProgress
53from maasserver.models.filestorage import FileStorage53from maasserver.models.filestorage import FileStorage
54from maasserver.models.ipaddress import IPAddress54from maasserver.models.ipaddress import StaticIPAddress
55from maasserver.models.macaddress import MACAddress55from maasserver.models.macaddress import MACAddress
56from maasserver.models.macipaddresslink import MACIPAddressLink56from maasserver.models.macipaddresslink import MACStaticIPAddressLink
57from maasserver.models.network import Network57from maasserver.models.network import Network
58from maasserver.models.node import Node58from maasserver.models.node import Node
59from maasserver.models.nodegroup import NodeGroup59from maasserver.models.nodegroup import NodeGroup
@@ -70,9 +70,9 @@
70# export in __all__.70# export in __all__.
71ignore_unused(71ignore_unused(
72 BootImage, ComponentError, Config, DHCPLease, DownloadProgress,72 BootImage, ComponentError, Config, DHCPLease, DownloadProgress,
73 FileStorage, IPAddress, MACAddress, MACIPAddressLink, Network,73 FileStorage, StaticIPAddress, MACAddress, MACStaticIPAddressLink,
74 NodeGroup, SSHKey, Tag, UserProfile, NodeGroupInterface, Zone,74 Network, NodeGroup, SSHKey, Tag, UserProfile, NodeGroupInterface,
75 logger)75 Zone, logger)
7676
7777
78# Connect the 'create_user' method to the post save signal of User.78# Connect the 'create_user' method to the post save signal of User.
7979
=== modified file 'src/maasserver/models/ipaddress.py'
--- src/maasserver/models/ipaddress.py 2014-06-02 02:53:30 +0000
+++ src/maasserver/models/ipaddress.py 2014-06-02 08:01:44 +0000
@@ -1,7 +1,7 @@
1# Copyright 2014 Canonical Ltd. This software is licensed under the1# Copyright 2014 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Model definition for IPAddress.4"""Model definition for StaticIPAddress.
55
6Contains all the in-use static IP addresses that are allocated by MAAS.6Contains all the in-use static IP addresses that are allocated by MAAS.
7Generally speaking, these are written out to the DHCP server as "host"7Generally speaking, these are written out to the DHCP server as "host"
@@ -20,7 +20,7 @@
2020
21__metaclass__ = type21__metaclass__ = type
22__all__ = [22__all__ = [
23 'IPAddress',23 'StaticIPAddress',
24 ]24 ]
2525
2626
@@ -34,11 +34,11 @@
34from maasserver.models.timestampedmodel import TimestampedModel34from maasserver.models.timestampedmodel import TimestampedModel
3535
3636
37class IPAddress(CleanSave, TimestampedModel):37class StaticIPAddress(CleanSave, TimestampedModel):
3838
39 class Meta(DefaultMeta):39 class Meta(DefaultMeta):
40 verbose_name = "IP Address"40 verbose_name = "Static IP Address"
41 verbose_name_plural = "IP Addresses"41 verbose_name_plural = "Static IP Addresses"
4242
43 ip = GenericIPAddressField(43 ip = GenericIPAddressField(
44 unique=True, null=False, editable=False, blank=False)44 unique=True, null=False, editable=False, blank=False)
@@ -46,7 +46,7 @@
46 # The MACIPAddressLink table is used to link IPAddress to46 # The MACIPAddressLink table is used to link IPAddress to
47 # MACAddress. See MACAddress.ip_addresses.47 # MACAddress. See MACAddress.ip_addresses.
4848
49 type = IntegerField(49 alloc_type = IntegerField(
50 editable=False, null=False, blank=False, default=IPADDRESS_TYPE.AUTO)50 editable=False, null=False, blank=False, default=IPADDRESS_TYPE.AUTO)
5151
52 def __unicode__(self):52 def __unicode__(self):
5353
=== modified file 'src/maasserver/models/macaddress.py'
--- src/maasserver/models/macaddress.py 2014-06-02 05:20:58 +0000
+++ src/maasserver/models/macaddress.py 2014-06-02 08:01:44 +0000
@@ -51,8 +51,8 @@
51 networks = ManyToManyField('maasserver.Network', blank=True)51 networks = ManyToManyField('maasserver.Network', blank=True)
5252
53 ip_addresses = ManyToManyField(53 ip_addresses = ManyToManyField(
54 'maasserver.IPAddress', through='maasserver.MACIPAddressLink',54 'maasserver.StaticIPAddress',
55 blank=True)55 through='maasserver.MACStaticIPAddressLink', blank=True)
5656
57 # future columns: tags, nic_name, metadata, bonding info57 # future columns: tags, nic_name, metadata, bonding info
5858
5959
=== modified file 'src/maasserver/models/macipaddresslink.py'
--- src/maasserver/models/macipaddresslink.py 2014-06-02 02:51:12 +0000
+++ src/maasserver/models/macipaddresslink.py 2014-06-02 08:01:44 +0000
@@ -18,7 +18,7 @@
1818
19__metaclass__ = type19__metaclass__ = type
20__all__ = [20__all__ = [
21 'MACIPAddressLink',21 'MACStaticIPAddressLink',
22 ]22 ]
2323
2424
@@ -31,13 +31,13 @@
31from maasserver.models.timestampedmodel import TimestampedModel31from maasserver.models.timestampedmodel import TimestampedModel
3232
3333
34class MACIPAddressLink(CleanSave, TimestampedModel):34class MACStaticIPAddressLink(CleanSave, TimestampedModel):
3535
36 class Meta(DefaultMeta):36 class Meta(DefaultMeta):
37 unique_together = ('ip_address', 'mac_address')37 unique_together = ('ip_address', 'mac_address')
3838
39 mac_address = ForeignKey('maasserver.MACAddress')39 mac_address = ForeignKey('maasserver.MACAddress')
40 ip_address = ForeignKey('maasserver.IPAddress', unique=True)40 ip_address = ForeignKey('maasserver.StaticIPAddress', unique=True)
4141
42 # Optional NIC alias for multi-homed NICs (e.g. 'eth0:1')42 # Optional NIC alias for multi-homed NICs (e.g. 'eth0:1')
43 nic_alias = IntegerField(43 nic_alias = IntegerField(