source: trunk/sara_cmt/sara_cmt/cluster/migrations/0023_auto__del_unique_interface_hwaddress__add_unique_interface_hwaddress_n.py @ 14194

Last change on this file since 14194 was 14194, checked in by sil, 12 years ago

Merged branch 1.0 (until tag 1.0.0) back to trunk

File size: 19.8 KB
Line 
1# encoding: utf-8
2
3#    This file is part of CMT, a Cluster Management Tool made at SARA.
4#    Copyright (C) 2012  Sil Westerveld
5#
6#    This program is free software; you can redistribute it and/or modify
7#    it under the terms of the GNU General Public License as published by
8#    the Free Software Foundation; either version 2 of the License, or
9#    (at your option) any later version.
10#
11#    This program is distributed in the hope that it will be useful,
12#    but WITHOUT ANY WARRANTY; without even the implied warranty of
13#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14#    GNU General Public License for more details.
15#
16#    You should have received a copy of the GNU General Public License
17#    along with this program; if not, write to the Free Software
18#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
20import datetime
21from south.db import db
22from south.v2 import SchemaMigration
23from django.db import models
24
25class Migration(SchemaMigration):
26
27    def forwards(self, orm):
28       
29        # Removing unique constraint on 'Interface', fields ['hwaddress']
30        db.delete_unique('cluster_interface', ['hwaddress'])
31
32        # Adding unique constraint on 'Interface', fields ['hwaddress', 'network']
33        db.create_unique('cluster_interface', ['hwaddress', 'network_id'])
34
35
36    def backwards(self, orm):
37       
38        # Adding unique constraint on 'Interface', fields ['hwaddress']
39        db.create_unique('cluster_interface', ['hwaddress'])
40
41        # Removing unique constraint on 'Interface', fields ['hwaddress', 'network']
42        db.delete_unique('cluster_interface', ['hwaddress', 'network_id'])
43
44
45    models = {
46        'cluster.address': {
47            'Meta': {'unique_together': "(('address', 'city'),)", 'object_name': 'Address'},
48            'address': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
49            'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
50            'country': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'addresses'", 'null': 'True', 'to': "orm['cluster.Country']"}),
51            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
52            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
53            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
54            'postalcode': ('django.db.models.fields.CharField', [], {'max_length': '9', 'blank': 'True'}),
55            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
56            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
57        },
58        'cluster.cluster': {
59            'Meta': {'object_name': 'Cluster'},
60            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
61            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
62            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
63            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
64            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
65            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
66        },
67        'cluster.company': {
68            'Meta': {'object_name': 'Company'},
69            'addresses': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'_companies'", 'symmetrical': 'False', 'to': "orm['cluster.Address']"}),
70            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
71            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
72            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
73            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
74            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
75            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
76            'website': ('django.db.models.fields.URLField', [], {'max_length': '200'})
77        },
78        'cluster.connection': {
79            'Meta': {'unique_together': "(('company', 'name'),)", 'object_name': 'Connection'},
80            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
81            'address': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'connections'", 'null': 'True', 'to': "orm['cluster.Address']"}),
82            'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'companies'", 'to': "orm['cluster.Company']"}),
83            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
84            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
85            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
86            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
87            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
88            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
89            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
90        },
91        'cluster.country': {
92            'Meta': {'object_name': 'Country'},
93            'country_code': ('django.db.models.fields.PositiveIntegerField', [], {'unique': 'True'}),
94            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
95            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
96            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
97            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
98            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
99            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
100        },
101        'cluster.hardwaremodel': {
102            'Meta': {'object_name': 'HardwareModel'},
103            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
104            'expansions': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
105            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
106            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
107            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
108            'rackspace': ('django.db.models.fields.PositiveIntegerField', [], {}),
109            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
110            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
111            'vendor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'model specifications'", 'to': "orm['cluster.Company']"}),
112            'vendorcode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'})
113        },
114        'cluster.hardwareunit': {
115            'Meta': {'unique_together': "(('rack', 'first_slot'),)", 'object_name': 'HardwareUnit'},
116            'cluster': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hardware'", 'to': "orm['cluster.Cluster']"}),
117            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
118            'first_slot': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
119            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
120            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
121            'network': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hardware'", 'symmetrical': 'False', 'through': "orm['cluster.Interface']", 'to': "orm['cluster.Network']"}),
122            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
123            'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owns'", 'null': 'True', 'to': "orm['cluster.Connection']"}),
124            'rack': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'contents'", 'to': "orm['cluster.Rack']"}),
125            'role': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hardware'", 'symmetrical': 'False', 'to': "orm['cluster.Role']"}),
126            'seller': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'sold'", 'null': 'True', 'to': "orm['cluster.Connection']"}),
127            'serial_number': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
128            'specifications': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'hardware'", 'null': 'True', 'to': "orm['cluster.HardwareModel']"}),
129            'state': ('django.db.models.fields.CharField', [], {'default': "'unknown'", 'max_length': '3', 'null': 'True', 'blank': 'True'}),
130            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
131            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
132            'warranty': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'hardware'", 'null': 'True', 'to': "orm['cluster.WarrantyContract']"}),
133            'warranty_tag': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'})
134        },
135        'cluster.interface': {
136            'Meta': {'unique_together': "(('network', 'ip'), ('network', 'hwaddress'))", 'object_name': 'Interface'},
137            'aliases': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
138            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
139            'host': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interfaces'", 'to': "orm['cluster.HardwareUnit']"}),
140            'hwaddress': ('django.db.models.fields.CharField', [], {'max_length': '17', 'null': 'True', 'blank': 'True'}),
141            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
142            'iftype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interfaces'", 'to': "orm['cluster.InterfaceType']"}),
143            'ip': ('django.db.models.fields.IPAddressField', [], {'max_length': '15', 'blank': 'True'}),
144            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
145            'network': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interfaces'", 'to': "orm['cluster.Network']"}),
146            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
147            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
148            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
149        },
150        'cluster.interfacetype': {
151            'Meta': {'object_name': 'InterfaceType'},
152            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
153            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
154            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
155            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
156            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
157            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
158            'vendor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'interfaces'", 'null': 'True', 'to': "orm['cluster.Company']"})
159        },
160        'cluster.network': {
161            'Meta': {'object_name': 'Network'},
162            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
163            'domain': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
164            'gateway': ('django.db.models.fields.IPAddressField', [], {'max_length': '15', 'blank': 'True'}),
165            'hostnames': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
166            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
167            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
168            'netaddress': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
169            'netmask': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
170            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
171            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
172            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
173            'vlan': ('django.db.models.fields.PositiveIntegerField', [], {'max_length': '3', 'null': 'True', 'blank': 'True'})
174        },
175        'cluster.rack': {
176            'Meta': {'unique_together': "(('room', 'label'),)", 'object_name': 'Rack'},
177            'capacity': ('django.db.models.fields.PositiveIntegerField', [], {}),
178            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
179            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
180            'label': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
181            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
182            'room': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'racks'", 'to': "orm['cluster.Room']"}),
183            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
184            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
185        },
186        'cluster.role': {
187            'Meta': {'object_name': 'Role'},
188            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
189            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
190            'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
191            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
192            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
193            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
194        },
195        'cluster.room': {
196            'Meta': {'unique_together': "(('address', 'floor', 'label'),)", 'object_name': 'Room'},
197            'address': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rooms'", 'to': "orm['cluster.Address']"}),
198            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
199            'floor': ('django.db.models.fields.IntegerField', [], {'max_length': '2'}),
200            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
201            'label': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
202            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
203            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
204            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
205        },
206        'cluster.telephonenumber': {
207            'Meta': {'object_name': 'Telephonenumber'},
208            'areacode': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
209            'connection': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'telephone_numbers'", 'to': "orm['cluster.Connection']"}),
210            'country': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'telephone_numbers'", 'to': "orm['cluster.Country']"}),
211            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
212            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
213            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
214            'number_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
215            'subscriber_number': ('django.db.models.fields.IntegerField', [], {'max_length': '15'}),
216            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
217            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
218        },
219        'cluster.warrantycontract': {
220            'Meta': {'object_name': 'WarrantyContract'},
221            'annual_cost': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '8', 'decimal_places': '2', 'blank': 'True'}),
222            'contract_number': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
223            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
224            'date_from': ('django.db.models.fields.DateField', [], {}),
225            'date_to': ('django.db.models.fields.DateField', [], {}),
226            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
227            'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
228            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
229            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
230            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
231            'warranty_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'contracts'", 'null': 'True', 'to': "orm['cluster.WarrantyType']"})
232        },
233        'cluster.warrantytype': {
234            'Meta': {'object_name': 'WarrantyType'},
235            'contact': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'warranty types'", 'to': "orm['cluster.Connection']"}),
236            'created_on': ('django_extensions.db.fields.CreationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
237            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
238            'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
239            'note': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
240            'tags': ('tagging.fields.TagField', [], {'default': "''"}),
241            'updated_on': ('django_extensions.db.fields.ModificationDateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'})
242        }
243    }
244
245    complete_apps = ['cluster']
Note: See TracBrowser for help on using the repository browser.