1
# -*- coding: utf-8 -*-
4
from django.db import models
5
from south.db import db
6
from south.v2 import DataMigration
9
def rename_commissioning_results(orm, old_name, new_name):
10
"""Rename any `NodeCommissionResult` called `old_name` to `new_name`."""
11
ncrs = orm['metadataserver.NodeCommissionResult'].objects
12
ncrs.filter(name=old_name).update(name=new_name)
15
class Migration(DataMigration):
16
"""Rename lshw output in accordance with new naming convention.
18
The commissioning results for "lshw" were written as 01-lshw.out: the
19
output of 01-lshw. But our naming convention reserves such names for
20
user-provided commissioning scripts. MAAS-internal commissioning
21
scripts have names starting with 00-maas-*.
24
def forwards(self, orm):
25
rename_commissioning_results(orm, '01-lshw.out', '00-maas-01-lshw.out')
27
def backwards(self, orm):
28
rename_commissioning_results(orm, '00-maas-01-lshw.out', '01-lshw.out')
32
'Meta': {'object_name': 'Group'},
33
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
34
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
35
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
38
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
39
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
40
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
41
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
42
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
45
'Meta': {'object_name': 'User'},
46
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
47
'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}),
48
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
49
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
50
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
51
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
52
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
53
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
54
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
55
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
56
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
57
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
58
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
60
'contenttypes.contenttype': {
61
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
62
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
63
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
64
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
65
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
68
'Meta': {'object_name': 'Node'},
69
'after_commissioning_action': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
70
'architecture': ('django.db.models.fields.CharField', [], {'default': "u'i386/generic'", 'max_length': '31'}),
71
'cpu_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
72
'created': ('django.db.models.fields.DateTimeField', [], {}),
73
'distro_series': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '10', 'null': 'True', 'blank': 'True'}),
74
'error': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
75
'hardware_details': ('maasserver.fields.XMLField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
76
'hostname': ('django.db.models.fields.CharField', [], {'default': "u''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}),
77
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
78
'memory': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
79
'netboot': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
80
'nodegroup': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.NodeGroup']", 'null': 'True'}),
81
'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
82
'power_parameters': ('maasserver.fields.JSONObjectField', [], {'default': "u''", 'blank': 'True'}),
83
'power_type': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '10', 'blank': 'True'}),
84
'status': ('django.db.models.fields.IntegerField', [], {'default': '0', 'max_length': '10'}),
85
'system_id': ('django.db.models.fields.CharField', [], {'default': "u'node-5b8f2212-444f-11e2-a886-3c970e0e56dc'", 'unique': 'True', 'max_length': '41'}),
86
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['maasserver.Tag']", 'symmetrical': 'False'}),
87
'token': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['piston.Token']", 'null': 'True'}),
88
'updated': ('django.db.models.fields.DateTimeField', [], {})
90
u'maasserver.nodegroup': {
91
'Meta': {'object_name': 'NodeGroup'},
92
'api_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '18'}),
93
'api_token': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['piston.Token']", 'unique': 'True'}),
94
'cluster_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100', 'blank': 'True'}),
95
'created': ('django.db.models.fields.DateTimeField', [], {}),
96
'dhcp_key': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
97
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
98
'maas_url': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}),
99
'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
100
'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
101
'updated': ('django.db.models.fields.DateTimeField', [], {}),
102
'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'})
105
'Meta': {'object_name': 'Tag'},
106
'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
107
'created': ('django.db.models.fields.DateTimeField', [], {}),
108
'definition': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
109
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
110
'kernel_opts': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
111
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}),
112
'updated': ('django.db.models.fields.DateTimeField', [], {})
114
u'metadataserver.commissioningscript': {
115
'Meta': {'object_name': 'CommissioningScript'},
116
'content': ('metadataserver.fields.BinaryField', [], {}),
117
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
118
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
120
u'metadataserver.nodecommissionresult': {
121
'Meta': {'unique_together': "((u'node', u'name'),)", 'object_name': 'NodeCommissionResult'},
122
'created': ('django.db.models.fields.DateTimeField', [], {}),
123
'data': ('django.db.models.fields.CharField', [], {'max_length': '1048576'}),
124
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
125
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
126
'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']"}),
127
'status': ('django.db.models.fields.CharField', [], {'default': "u'OK'", 'max_length': '100'}),
128
'updated': ('django.db.models.fields.DateTimeField', [], {})
130
u'metadataserver.nodekey': {
131
'Meta': {'object_name': 'NodeKey'},
132
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
133
'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '18'}),
134
'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']", 'unique': 'True'}),
135
'token': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['piston.Token']", 'unique': 'True'})
137
u'metadataserver.nodeuserdata': {
138
'Meta': {'object_name': 'NodeUserData'},
139
'data': ('metadataserver.fields.BinaryField', [], {}),
140
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
141
'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['maasserver.Node']", 'unique': 'True'})
144
'Meta': {'object_name': 'Consumer'},
145
'description': ('django.db.models.fields.TextField', [], {}),
146
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
147
'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
148
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
149
'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
150
'status': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '16'}),
151
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'consumers'", 'null': 'True', 'to': "orm['auth.User']"})
154
'Meta': {'object_name': 'Token'},
155
'callback': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
156
'callback_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
157
'consumer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['piston.Consumer']"}),
158
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
159
'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
160
'key': ('django.db.models.fields.CharField', [], {'max_length': '18'}),
161
'secret': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
162
'timestamp': ('django.db.models.fields.IntegerField', [], {'default': '1355311840L'}),
163
'token_type': ('django.db.models.fields.IntegerField', [], {}),
164
'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tokens'", 'null': 'True', 'to': "orm['auth.User']"}),
165
'verifier': ('django.db.models.fields.CharField', [], {'max_length': '10'})
169
complete_apps = ['metadataserver']