Fix error when sorting Job list by object.
[ganeti_webmgr.git] / ganeti_web / migrations / 0001_version_0_7.py
blob42a60a0c2d690e803ad279216c018cd49fbebb36
1 # encoding: utf-8
2 import datetime
3 from south.db import db
4 from south.v2 import SchemaMigration
5 from django.db import models
7 class Migration(SchemaMigration):
9 def forwards(self, orm):
11 # Adding model 'Job'
12 db.create_table('ganeti_web_job', (
13 ('status', self.gf('django.db.models.fields.CharField')(max_length=10)),
14 ('job_id', self.gf('django.db.models.fields.IntegerField')()),
15 ('cluster_hash', self.gf('django.db.models.fields.CharField')(max_length=40)),
16 ('cached', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
17 ('object_id', self.gf('django.db.models.fields.IntegerField')()),
18 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(related_name='jobs', to=orm['ganeti_web.Cluster'])),
19 ('finished', self.gf('django.db.models.fields.DateTimeField')(null=True)),
20 ('ignore_cache', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
21 ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
22 ('mtime', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
23 ('serialized_info', self.gf('django.db.models.fields.TextField')(default=None, null=True)),
24 ('cleared', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
25 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
27 db.send_create_signal('ganeti_web', ['Job'])
29 # Adding model 'VirtualMachine'
30 db.create_table('ganeti_web_virtualmachine', (
31 ('status', self.gf('django.db.models.fields.CharField')(max_length=14)),
32 ('ram', self.gf('django.db.models.fields.IntegerField')(default=-1)),
33 ('disk_size', self.gf('django.db.models.fields.IntegerField')(default=-1)),
34 ('cluster_hash', self.gf('django.db.models.fields.CharField')(max_length=40)),
35 ('cached', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
36 ('hostname', self.gf('django.db.models.fields.CharField')(max_length=128, db_index=True)),
37 ('secondary_node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='secondary_vms', null=True, to=orm['ganeti_web.Node'])),
38 ('primary_node', self.gf('django.db.models.fields.related.ForeignKey')(related_name='primary_vms', null=True, to=orm['ganeti_web.Node'])),
39 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(default=0, related_name='virtual_machines', to=orm['ganeti_web.Cluster'])),
40 ('operating_system', self.gf('django.db.models.fields.CharField')(max_length=128)),
41 ('last_job', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ganeti_web.Job'], null=True)),
42 ('ignore_cache', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
43 ('template', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ganeti_web.VirtualMachineTemplate'], null=True)),
44 ('mtime', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
45 ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='virtual_machines', null=True, to=orm['ganeti_web.ClusterUser'])),
46 ('virtual_cpus', self.gf('django.db.models.fields.IntegerField')(default=-1)),
47 ('serialized_info', self.gf('django.db.models.fields.TextField')(default=None, null=True)),
48 ('pending_delete', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
49 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
51 db.send_create_signal('ganeti_web', ['VirtualMachine'])
53 # Adding unique constraint on 'VirtualMachine', fields ['cluster', 'hostname']
54 db.create_unique('ganeti_web_virtualmachine', ['cluster_id', 'hostname'])
56 # Adding model 'Node'
57 db.create_table('ganeti_web_node', (
58 ('cluster_hash', self.gf('django.db.models.fields.CharField')(max_length=40)),
59 ('cached', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
60 ('hostname', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)),
61 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(related_name='nodes', to=orm['ganeti_web.Cluster'])),
62 ('disk_total', self.gf('django.db.models.fields.IntegerField')(default=-1)),
63 ('disk_free', self.gf('django.db.models.fields.IntegerField')(default=-1)),
64 ('role', self.gf('django.db.models.fields.CharField')(max_length=1)),
65 ('ignore_cache', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
66 ('ram_total', self.gf('django.db.models.fields.IntegerField')(default=-1)),
67 ('ram_free', self.gf('django.db.models.fields.IntegerField')(default=-1)),
68 ('mtime', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
69 ('offline', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
70 ('serialized_info', self.gf('django.db.models.fields.TextField')(default=None, null=True)),
71 ('last_job', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ganeti_web.Job'], null=True)),
72 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
74 db.send_create_signal('ganeti_web', ['Node'])
76 # Adding model 'Cluster'
77 db.create_table('ganeti_web_cluster', (
78 ('username', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)),
79 ('disk', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
80 ('hash', self.gf('django.db.models.fields.CharField')(max_length=40)),
81 ('description', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)),
82 ('cached', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
83 ('hostname', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)),
84 ('ram', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
85 ('slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=50, db_index=True)),
86 ('port', self.gf('django.db.models.fields.PositiveIntegerField')(default=5080)),
87 ('last_job', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='cluster_last_job', null=True, to=orm['ganeti_web.Job'])),
88 ('ignore_cache', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
89 ('mtime', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
90 ('virtual_cpus', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
91 ('serialized_info', self.gf('django.db.models.fields.TextField')(default=None, null=True)),
92 ('password', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)),
93 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
95 db.send_create_signal('ganeti_web', ['Cluster'])
97 # Adding model 'VirtualMachineTemplate'
98 db.create_table('ganeti_web_virtualmachinetemplate', (
99 ('nic_type', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
100 ('template_name', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
101 ('nic_mode', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
102 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ganeti_web.Cluster'], null=True)),
103 ('disk_template', self.gf('django.db.models.fields.CharField')(max_length=16)),
104 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
105 ('pnode', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
106 ('cdrom_image_path', self.gf('django.db.models.fields.CharField')(max_length=512, null=True, blank=True)),
107 ('name_check', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
108 ('start', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
109 ('memory', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
110 ('kernel_path', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
111 ('boot_order', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
112 ('serial_console', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
113 ('snode', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
114 ('disk_type', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
115 ('iallocator_hostname', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
116 ('disk_size', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
117 ('nic_link', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
118 ('root_path', self.gf('django.db.models.fields.CharField')(default='/', max_length=255, null=True, blank=True)),
119 ('vcpus', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
120 ('iallocator', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
121 ('os', self.gf('django.db.models.fields.CharField')(max_length=255)),
123 db.send_create_signal('ganeti_web', ['VirtualMachineTemplate'])
125 # Adding model 'TestModel'
126 db.create_table('ganeti_web_testmodel', (
127 ('cached', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
128 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ganeti_web.Cluster'])),
129 ('ignore_cache', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
130 ('mtime', self.gf('ganeti_web.fields.PreciseDateTimeField')(null=True, max_digits=18, decimal_places=6)),
131 ('serialized_info', self.gf('django.db.models.fields.TextField')(default=None, null=True)),
132 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
134 db.send_create_signal('ganeti_web', ['TestModel'])
136 # Adding model 'GanetiError'
137 db.create_table('ganeti_web_ganetierror', (
138 ('obj_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='ganeti_errors', to=orm['contenttypes.ContentType'])),
139 ('code', self.gf('django.db.models.fields.PositiveSmallIntegerField')(null=True, blank=True)),
140 ('obj_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
141 ('timestamp', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
142 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ganeti_web.Cluster'])),
143 ('msg', self.gf('django.db.models.fields.TextField')()),
144 ('cleared', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
145 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
147 db.send_create_signal('ganeti_web', ['GanetiError'])
149 # Adding model 'ClusterUser'
150 db.create_table('ganeti_web_clusteruser', (
151 ('real_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'], null=True)),
152 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
153 ('name', self.gf('django.db.models.fields.CharField')(max_length=128)),
155 db.send_create_signal('ganeti_web', ['ClusterUser'])
157 # Adding model 'Profile'
158 db.create_table('ganeti_web_profile', (
159 ('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
160 ('clusteruser_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['ganeti_web.ClusterUser'], unique=True, primary_key=True)),
162 db.send_create_signal('ganeti_web', ['Profile'])
164 # Adding model 'Organization'
165 db.create_table('ganeti_web_organization', (
166 ('group', self.gf('django.db.models.fields.related.OneToOneField')(related_name='organization', unique=True, to=orm['auth.Group'])),
167 ('clusteruser_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['ganeti_web.ClusterUser'], unique=True, primary_key=True)),
169 db.send_create_signal('ganeti_web', ['Organization'])
171 # Adding model 'Quota'
172 db.create_table('ganeti_web_quota', (
173 ('ram', self.gf('django.db.models.fields.IntegerField')(default=0, null=True)),
174 ('cluster', self.gf('django.db.models.fields.related.ForeignKey')(related_name='quotas', to=orm['ganeti_web.Cluster'])),
175 ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='quotas', to=orm['ganeti_web.ClusterUser'])),
176 ('virtual_cpus', self.gf('django.db.models.fields.IntegerField')(default=0, null=True)),
177 ('disk', self.gf('django.db.models.fields.IntegerField')(default=0, null=True)),
178 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
180 db.send_create_signal('ganeti_web', ['Quota'])
182 # Adding model 'SSHKey'
183 db.create_table('ganeti_web_sshkey', (
184 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
185 ('key', self.gf('django.db.models.fields.TextField')()),
186 ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='ssh_keys', to=orm['auth.User'])),
188 db.send_create_signal('ganeti_web', ['SSHKey'])
190 # Adding model 'Cluster_Perms'
191 db.create_table('ganeti_web_cluster_perms', (
192 ('obj', self.gf('django.db.models.fields.related.ForeignKey')(related_name='operms', to=orm['ganeti_web.Cluster'])),
193 ('tags', self.gf('django.db.models.fields.IntegerField')(default=False)),
194 ('admin', self.gf('django.db.models.fields.IntegerField')(default=False)),
195 ('replace_disks', self.gf('django.db.models.fields.IntegerField')(default=False)),
196 ('create_vm', self.gf('django.db.models.fields.IntegerField')(default=False)),
197 ('migrate', self.gf('django.db.models.fields.IntegerField')(default=False)),
198 ('export', self.gf('django.db.models.fields.IntegerField')(default=False)),
199 ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='Cluster_uperms', null=True, to=orm['auth.User'])),
200 ('group', self.gf('django.db.models.fields.related.ForeignKey')(related_name='Cluster_gperms', null=True, to=orm['auth.Group'])),
201 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
203 db.send_create_signal('ganeti_web', ['Cluster_Perms'])
205 # Adding model 'VirtualMachine_Perms'
206 db.create_table('ganeti_web_virtualmachine_perms', (
207 ('obj', self.gf('django.db.models.fields.related.ForeignKey')(related_name='operms', to=orm['ganeti_web.VirtualMachine'])),
208 ('power', self.gf('django.db.models.fields.IntegerField')(default=False)),
209 ('tags', self.gf('django.db.models.fields.IntegerField')(default=False)),
210 ('admin', self.gf('django.db.models.fields.IntegerField')(default=False)),
211 ('modify', self.gf('django.db.models.fields.IntegerField')(default=False)),
212 ('remove', self.gf('django.db.models.fields.IntegerField')(default=False)),
213 ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='VirtualMachine_uperms', null=True, to=orm['auth.User'])),
214 ('group', self.gf('django.db.models.fields.related.ForeignKey')(related_name='VirtualMachine_gperms', null=True, to=orm['auth.Group'])),
215 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
217 db.send_create_signal('ganeti_web', ['VirtualMachine_Perms'])
220 def backwards(self, orm):
222 # Deleting model 'Job'
223 db.delete_table('ganeti_web_job')
225 # Deleting model 'VirtualMachine'
226 db.delete_table('ganeti_web_virtualmachine')
228 # Removing unique constraint on 'VirtualMachine', fields ['cluster', 'hostname']
229 db.delete_unique('ganeti_web_virtualmachine', ['cluster_id', 'hostname'])
231 # Deleting model 'Node'
232 db.delete_table('ganeti_web_node')
234 # Deleting model 'Cluster'
235 db.delete_table('ganeti_web_cluster')
237 # Deleting model 'VirtualMachineTemplate'
238 db.delete_table('ganeti_web_virtualmachinetemplate')
240 # Deleting model 'TestModel'
241 db.delete_table('ganeti_web_testmodel')
243 # Deleting model 'GanetiError'
244 db.delete_table('ganeti_web_ganetierror')
246 # Deleting model 'ClusterUser'
247 db.delete_table('ganeti_web_clusteruser')
249 # Deleting model 'Profile'
250 db.delete_table('ganeti_web_profile')
252 # Deleting model 'Organization'
253 db.delete_table('ganeti_web_organization')
255 # Deleting model 'Quota'
256 db.delete_table('ganeti_web_quota')
258 # Deleting model 'SSHKey'
259 db.delete_table('ganeti_web_sshkey')
261 # Deleting model 'Cluster_Perms'
262 db.delete_table('ganeti_web_cluster_perms')
264 # Deleting model 'VirtualMachine_Perms'
265 db.delete_table('ganeti_web_virtualmachine_perms')
268 models = {
269 'auth.group': {
270 'Meta': {'object_name': 'Group'},
271 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
272 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
273 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
275 'auth.permission': {
276 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
277 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
278 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
279 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
280 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
282 'auth.user': {
283 'Meta': {'object_name': 'User'},
284 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
285 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
286 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
287 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
288 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
289 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
290 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
291 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
292 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
293 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
294 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
295 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
296 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
298 'contenttypes.contenttype': {
299 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
300 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
301 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
302 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
303 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
305 'ganeti_web.cluster': {
306 'Meta': {'object_name': 'Cluster'},
307 'cached': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
308 'description': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
309 'disk': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
310 'hash': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
311 'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
312 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
313 'ignore_cache': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
314 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cluster_last_job'", 'null': 'True', 'to': "orm['ganeti_web.Job']"}),
315 'mtime': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
316 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
317 'port': ('django.db.models.fields.PositiveIntegerField', [], {'default': '5080'}),
318 'ram': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
319 'serialized_info': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
320 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
321 'username': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
322 'virtual_cpus': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
324 'ganeti_web.cluster_perms': {
325 'Meta': {'object_name': 'Cluster_Perms'},
326 'admin': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
327 'create_vm': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
328 'export': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
329 'group': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'Cluster_gperms'", 'null': 'True', 'to': "orm['auth.Group']"}),
330 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
331 'migrate': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
332 'obj': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'operms'", 'to': "orm['ganeti_web.Cluster']"}),
333 'replace_disks': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
334 'tags': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
335 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'Cluster_uperms'", 'null': 'True', 'to': "orm['auth.User']"})
337 'ganeti_web.clusteruser': {
338 'Meta': {'object_name': 'ClusterUser'},
339 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
340 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
341 'real_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True'})
343 'ganeti_web.ganetierror': {
344 'Meta': {'object_name': 'GanetiError'},
345 'cleared': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
346 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ganeti_web.Cluster']"}),
347 'code': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
348 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
349 'msg': ('django.db.models.fields.TextField', [], {}),
350 'obj_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
351 'obj_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ganeti_errors'", 'to': "orm['contenttypes.ContentType']"}),
352 'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'})
354 'ganeti_web.job': {
355 'Meta': {'object_name': 'Job'},
356 'cached': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
357 'cleared': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
358 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'to': "orm['ganeti_web.Cluster']"}),
359 'cluster_hash': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
360 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
361 'finished': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
362 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
363 'ignore_cache': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
364 'job_id': ('django.db.models.fields.IntegerField', [], {}),
365 'mtime': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
366 'object_id': ('django.db.models.fields.IntegerField', [], {}),
367 'serialized_info': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
368 'status': ('django.db.models.fields.CharField', [], {'max_length': '10'})
370 'ganeti_web.node': {
371 'Meta': {'object_name': 'Node'},
372 'cached': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
373 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['ganeti_web.Cluster']"}),
374 'cluster_hash': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
375 'disk_total': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
376 'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
377 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
378 'ignore_cache': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
379 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ganeti_web.Job']", 'null': 'True'}),
380 'mtime': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
381 'offline': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
382 'ram_total': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
383 'role': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
384 'serialized_info': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'})
386 'ganeti_web.organization': {
387 'Meta': {'object_name': 'Organization', '_ormbases': ['ganeti_web.ClusterUser']},
388 'clusteruser_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['ganeti_web.ClusterUser']", 'unique': 'True', 'primary_key': 'True'}),
389 'group': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'organization'", 'unique': 'True', 'to': "orm['auth.Group']"})
391 'ganeti_web.profile': {
392 'Meta': {'object_name': 'Profile', '_ormbases': ['ganeti_web.ClusterUser']},
393 'clusteruser_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['ganeti_web.ClusterUser']", 'unique': 'True', 'primary_key': 'True'}),
394 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
396 'ganeti_web.quota': {
397 'Meta': {'object_name': 'Quota'},
398 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'quotas'", 'to': "orm['ganeti_web.Cluster']"}),
399 'disk': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True'}),
400 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
401 'ram': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True'}),
402 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'quotas'", 'to': "orm['ganeti_web.ClusterUser']"}),
403 'virtual_cpus': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True'})
405 'ganeti_web.sshkey': {
406 'Meta': {'object_name': 'SSHKey'},
407 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
408 'key': ('django.db.models.fields.TextField', [], {}),
409 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ssh_keys'", 'to': "orm['auth.User']"})
411 'ganeti_web.testmodel': {
412 'Meta': {'object_name': 'TestModel'},
413 'cached': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
414 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ganeti_web.Cluster']"}),
415 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
416 'ignore_cache': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
417 'mtime': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
418 'serialized_info': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'})
420 'ganeti_web.virtualmachine': {
421 'Meta': {'unique_together': "(('cluster', 'hostname'),)", 'object_name': 'VirtualMachine'},
422 'cached': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
423 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'default': '0', 'related_name': "'virtual_machines'", 'to': "orm['ganeti_web.Cluster']"}),
424 'cluster_hash': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
425 'disk_size': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
426 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}),
427 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
428 'ignore_cache': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
429 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ganeti_web.Job']", 'null': 'True'}),
430 'mtime': ('ganeti_web.fields.PreciseDateTimeField', [], {'null': 'True', 'max_digits': '18', 'decimal_places': '6'}),
431 'operating_system': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
432 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'virtual_machines'", 'null': 'True', 'to': "orm['ganeti_web.ClusterUser']"}),
433 'pending_delete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
434 'primary_node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'primary_vms'", 'null': 'True', 'to': "orm['ganeti_web.Node']"}),
435 'ram': ('django.db.models.fields.IntegerField', [], {'default': '-1'}),
436 'secondary_node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'secondary_vms'", 'null': 'True', 'to': "orm['ganeti_web.Node']"}),
437 'serialized_info': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
438 'status': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
439 'template': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ganeti_web.VirtualMachineTemplate']", 'null': 'True'}),
440 'virtual_cpus': ('django.db.models.fields.IntegerField', [], {'default': '-1'})
442 'ganeti_web.virtualmachine_perms': {
443 'Meta': {'object_name': 'VirtualMachine_Perms'},
444 'admin': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
445 'group': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'VirtualMachine_gperms'", 'null': 'True', 'to': "orm['auth.Group']"}),
446 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
447 'modify': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
448 'obj': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'operms'", 'to': "orm['ganeti_web.VirtualMachine']"}),
449 'power': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
450 'remove': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
451 'tags': ('django.db.models.fields.IntegerField', [], {'default': 'False'}),
452 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'VirtualMachine_uperms'", 'null': 'True', 'to': "orm['auth.User']"})
454 'ganeti_web.virtualmachinetemplate': {
455 'Meta': {'object_name': 'VirtualMachineTemplate'},
456 'boot_order': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
457 'cdrom_image_path': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
458 'cluster': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ganeti_web.Cluster']", 'null': 'True'}),
459 'disk_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
460 'disk_template': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
461 'disk_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
462 'iallocator': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
463 'iallocator_hostname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
464 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
465 'kernel_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
466 'memory': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
467 'name_check': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
468 'nic_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
469 'nic_mode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
470 'nic_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
471 'os': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
472 'pnode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
473 'root_path': ('django.db.models.fields.CharField', [], {'default': "'/'", 'max_length': '255', 'null': 'True', 'blank': 'True'}),
474 'serial_console': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
475 'snode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
476 'start': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
477 'template_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
478 'vcpus': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
482 complete_apps = ['ganeti_web']