Merge lp:~stylesen/lava-scheduler/multinode into lp:lava-scheduler/multinode

Proposed by Senthil Kumaran S
Status: Merged
Approved by: Neil Williams
Approved revision: no longer in the source branch.
Merged at revision: 250
Proposed branch: lp:~stylesen/lava-scheduler/multinode
Merge into: lp:lava-scheduler/multinode
Diff against target: 531 lines (+173/-324)
4 files modified
lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id.py (+0/-160)
lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id__add_field_testjob_target_group.py (+169/-0)
lava_scheduler_app/migrations/0031_auto__add_field_testjob_target_group.py (+0/-161)
lava_scheduler_app/models.py (+4/-3)
To merge this branch: bzr merge lp:~stylesen/lava-scheduler/multinode
Reviewer Review Type Date Requested Status
Neil Williams Approve
Review via email: mp+171290@code.launchpad.net

Description of the change

Fix database migration scripts.

To post a comment you must log in.
Revision history for this message
Neil Williams (codehelp) wrote :

Approved

review: Approve
250. By Neil Williams

Apply the cleanup branch merge.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== removed file 'lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id.py'
--- lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id.py 2013-06-20 11:45:50 +0000
+++ lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id.py 1970-01-01 00:00:00 +0000
@@ -1,160 +0,0 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding field 'TestJob.sub_id'
12 db.add_column('lava_scheduler_app_testjob', 'sub_id',
13 self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True),
14 keep_default=False)
15
16
17 def backwards(self, orm):
18 # Deleting field 'TestJob.sub_id'
19 db.delete_column('lava_scheduler_app_testjob', 'sub_id')
20
21
22 models = {
23 'auth.group': {
24 'Meta': {'object_name': 'Group'},
25 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
26 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
27 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
28 },
29 'auth.permission': {
30 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
31 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
32 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
33 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
34 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
35 },
36 'auth.user': {
37 'Meta': {'object_name': 'User'},
38 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
39 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
40 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
41 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
42 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
43 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
44 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
45 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
46 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
47 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
48 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
49 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
50 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
51 },
52 'contenttypes.contenttype': {
53 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
54 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
55 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
56 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
57 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
58 },
59 'dashboard_app.bundle': {
60 'Meta': {'ordering': "['-uploaded_on']", 'object_name': 'Bundle'},
61 '_gz_content': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'db_column': "'gz_content'"}),
62 '_raw_content': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'db_column': "'content'"}),
63 'bundle_stream': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bundles'", 'to': "orm['dashboard_app.BundleStream']"}),
64 'content_filename': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
65 'content_sha1': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'null': 'True'}),
66 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
67 'is_deserialized': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
68 'uploaded_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'uploaded_bundles'", 'null': 'True', 'to': "orm['auth.User']"}),
69 'uploaded_on': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.utcnow'})
70 },
71 'dashboard_app.bundlestream': {
72 'Meta': {'object_name': 'BundleStream'},
73 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
74 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
75 'is_anonymous': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
76 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
77 'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
78 'pathname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
79 'slug': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
80 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
81 },
82 'lava_scheduler_app.device': {
83 'Meta': {'object_name': 'Device'},
84 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['lava_scheduler_app.TestJob']", 'blank': 'True', 'unique': 'True'}),
85 'device_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['lava_scheduler_app.DeviceType']"}),
86 'device_version': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
87 'health_status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
88 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '200', 'primary_key': 'True'}),
89 'last_health_report_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['lava_scheduler_app.TestJob']", 'blank': 'True', 'unique': 'True'}),
90 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
91 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['lava_scheduler_app.Tag']", 'symmetrical': 'False', 'blank': 'True'})
92 },
93 'lava_scheduler_app.devicestatetransition': {
94 'Meta': {'object_name': 'DeviceStateTransition'},
95 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
96 'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
97 'device': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'transitions'", 'to': "orm['lava_scheduler_app.Device']"}),
98 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
99 'job': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['lava_scheduler_app.TestJob']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
100 'message': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
101 'new_state': ('django.db.models.fields.IntegerField', [], {}),
102 'old_state': ('django.db.models.fields.IntegerField', [], {})
103 },
104 'lava_scheduler_app.devicetype': {
105 'Meta': {'object_name': 'DeviceType'},
106 'display': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
107 'health_check_job': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
108 'name': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'primary_key': 'True'})
109 },
110 'lava_scheduler_app.jobfailuretag': {
111 'Meta': {'object_name': 'JobFailureTag'},
112 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
113 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
114 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
115 },
116 'lava_scheduler_app.tag': {
117 'Meta': {'object_name': 'Tag'},
118 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
119 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
120 'name': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
121 },
122 'lava_scheduler_app.testjob': {
123 'Meta': {'object_name': 'TestJob'},
124 '_results_bundle': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'db_column': "'results_bundle_id'", 'on_delete': 'models.SET_NULL', 'to': "orm['dashboard_app.Bundle']", 'blank': 'True', 'unique': 'True'}),
125 '_results_link': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '400', 'null': 'True', 'db_column': "'results_link'", 'blank': 'True'}),
126 'actual_device': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.Device']"}),
127 'definition': ('django.db.models.fields.TextField', [], {}),
128 'description': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
129 'end_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
130 'failure_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
131 'failure_tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'failure_tags'", 'blank': 'True', 'to': "orm['lava_scheduler_app.JobFailureTag']"}),
132 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
133 'health_check': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
134 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
135 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
136 'log_file': ('django.db.models.fields.files.FileField', [], {'default': 'None', 'max_length': '100', 'null': 'True', 'blank': 'True'}),
137 'priority': ('django.db.models.fields.IntegerField', [], {'default': '50'}),
138 'requested_device': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.Device']"}),
139 'requested_device_type': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.DeviceType']"}),
140 'start_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
141 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
142 'sub_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
143 'submit_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
144 'submit_token': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['linaro_django_xmlrpc.AuthToken']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
145 'submitter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}),
146 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['lava_scheduler_app.Tag']", 'symmetrical': 'False', 'blank': 'True'}),
147 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
148 },
149 'linaro_django_xmlrpc.authtoken': {
150 'Meta': {'object_name': 'AuthToken'},
151 'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
152 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
153 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
154 'last_used_on': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
155 'secret': ('django.db.models.fields.CharField', [], {'default': "'ynu6yihw337isktsrzd0ocr83r0huox1b5y4qs1c0ktat7s3089d2xgiz3ll0n68fr6q026mep0t5xwg1coxnl2aoknolgowx2779uluan8quez0row0jnk5j2qsxlle'", 'unique': 'True', 'max_length': '128'}),
156 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': "orm['auth.User']"})
157 }
158 }
159
160 complete_apps = ['lava_scheduler_app']
161\ No newline at end of file0\ No newline at end of file
1621
=== added file 'lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id__add_field_testjob_target_group.py'
--- lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id__add_field_testjob_target_group.py 1970-01-01 00:00:00 +0000
+++ lava_scheduler_app/migrations/0030_auto__add_field_testjob_sub_id__add_field_testjob_target_group.py 2013-06-25 12:38:27 +0000
@@ -0,0 +1,169 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding field 'TestJob.sub_id'
12 db.add_column('lava_scheduler_app_testjob', 'sub_id',
13 self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True),
14 keep_default=False)
15
16 # Adding field 'TestJob.target_group'
17 db.add_column('lava_scheduler_app_testjob', 'target_group',
18 self.gf('django.db.models.fields.CharField')(default=None, max_length=64, null=True, blank=True),
19 keep_default=False)
20
21
22 def backwards(self, orm):
23 # Deleting field 'TestJob.sub_id'
24 db.delete_column('lava_scheduler_app_testjob', 'sub_id')
25
26 # Deleting field 'TestJob.target_group'
27 db.delete_column('lava_scheduler_app_testjob', 'target_group')
28
29
30 models = {
31 'auth.group': {
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'})
36 },
37 'auth.permission': {
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'})
43 },
44 'auth.user': {
45 'Meta': {'object_name': 'User'},
46 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
47 'email': ('django.db.models.fields.EmailField', [], {'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'})
59 },
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'})
66 },
67 'dashboard_app.bundle': {
68 'Meta': {'ordering': "['-uploaded_on']", 'object_name': 'Bundle'},
69 '_gz_content': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'db_column': "'gz_content'"}),
70 '_raw_content': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'db_column': "'content'"}),
71 'bundle_stream': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bundles'", 'to': "orm['dashboard_app.BundleStream']"}),
72 'content_filename': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
73 'content_sha1': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'null': 'True'}),
74 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
75 'is_deserialized': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
76 'uploaded_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'uploaded_bundles'", 'null': 'True', 'to': "orm['auth.User']"}),
77 'uploaded_on': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.utcnow'})
78 },
79 'dashboard_app.bundlestream': {
80 'Meta': {'object_name': 'BundleStream'},
81 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
82 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
83 'is_anonymous': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
84 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
85 'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
86 'pathname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
87 'slug': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
88 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
89 },
90 'lava_scheduler_app.device': {
91 'Meta': {'object_name': 'Device'},
92 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['lava_scheduler_app.TestJob']", 'blank': 'True', 'unique': 'True'}),
93 'device_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['lava_scheduler_app.DeviceType']"}),
94 'device_version': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
95 'health_status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
96 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '200', 'primary_key': 'True'}),
97 'last_health_report_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['lava_scheduler_app.TestJob']", 'blank': 'True', 'unique': 'True'}),
98 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
99 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['lava_scheduler_app.Tag']", 'symmetrical': 'False', 'blank': 'True'})
100 },
101 'lava_scheduler_app.devicestatetransition': {
102 'Meta': {'object_name': 'DeviceStateTransition'},
103 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
104 'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
105 'device': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'transitions'", 'to': "orm['lava_scheduler_app.Device']"}),
106 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
107 'job': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['lava_scheduler_app.TestJob']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
108 'message': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
109 'new_state': ('django.db.models.fields.IntegerField', [], {}),
110 'old_state': ('django.db.models.fields.IntegerField', [], {})
111 },
112 'lava_scheduler_app.devicetype': {
113 'Meta': {'object_name': 'DeviceType'},
114 'display': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
115 'health_check_job': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
116 'name': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'primary_key': 'True'})
117 },
118 'lava_scheduler_app.jobfailuretag': {
119 'Meta': {'object_name': 'JobFailureTag'},
120 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
121 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
122 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
123 },
124 'lava_scheduler_app.tag': {
125 'Meta': {'object_name': 'Tag'},
126 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
127 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
128 'name': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
129 },
130 'lava_scheduler_app.testjob': {
131 'Meta': {'object_name': 'TestJob'},
132 '_results_bundle': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'db_column': "'results_bundle_id'", 'on_delete': 'models.SET_NULL', 'to': "orm['dashboard_app.Bundle']", 'blank': 'True', 'unique': 'True'}),
133 '_results_link': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '400', 'null': 'True', 'db_column': "'results_link'", 'blank': 'True'}),
134 'actual_device': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.Device']"}),
135 'definition': ('django.db.models.fields.TextField', [], {}),
136 'description': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
137 'end_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
138 'failure_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
139 'failure_tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'failure_tags'", 'blank': 'True', 'to': "orm['lava_scheduler_app.JobFailureTag']"}),
140 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
141 'health_check': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
142 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
143 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
144 'log_file': ('django.db.models.fields.files.FileField', [], {'default': 'None', 'max_length': '100', 'null': 'True', 'blank': 'True'}),
145 'priority': ('django.db.models.fields.IntegerField', [], {'default': '50'}),
146 'requested_device': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.Device']"}),
147 'requested_device_type': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.DeviceType']"}),
148 'start_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
149 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
150 'sub_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
151 'submit_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
152 'submit_token': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['linaro_django_xmlrpc.AuthToken']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
153 'submitter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}),
154 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['lava_scheduler_app.Tag']", 'symmetrical': 'False', 'blank': 'True'}),
155 'target_group': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}),
156 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
157 },
158 'linaro_django_xmlrpc.authtoken': {
159 'Meta': {'object_name': 'AuthToken'},
160 'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
161 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
162 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
163 'last_used_on': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
164 'secret': ('django.db.models.fields.CharField', [], {'default': "'7rf4239t35kqjrcixn4srgw00r61ncuq51jna0d6xbwpg2ur2annw5y1gkr9yt6ys9gh06b3wtcum4j0f2pdn5crul72mu1e1tw4at9jfgwk18asogkgoqcbc20ftylx'", 'unique': 'True', 'max_length': '128'}),
165 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': "orm['auth.User']"})
166 }
167 }
168
169 complete_apps = ['lava_scheduler_app']
0\ No newline at end of file170\ No newline at end of file
1171
=== removed file 'lava_scheduler_app/migrations/0031_auto__add_field_testjob_target_group.py'
--- lava_scheduler_app/migrations/0031_auto__add_field_testjob_target_group.py 2013-06-25 06:11:41 +0000
+++ lava_scheduler_app/migrations/0031_auto__add_field_testjob_target_group.py 1970-01-01 00:00:00 +0000
@@ -1,161 +0,0 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding field 'TestJob.target_group'
12 db.add_column('lava_scheduler_app_testjob', 'target_group',
13 self.gf('django.db.models.fields.CharField')(default='', max_length=64, blank=True),
14 keep_default=False)
15
16
17 def backwards(self, orm):
18 # Deleting field 'TestJob.target_group'
19 db.delete_column('lava_scheduler_app_testjob', 'target_group')
20
21
22 models = {
23 'auth.group': {
24 'Meta': {'object_name': 'Group'},
25 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
26 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
27 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
28 },
29 'auth.permission': {
30 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
31 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
32 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
33 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
34 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
35 },
36 'auth.user': {
37 'Meta': {'object_name': 'User'},
38 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
39 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
40 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
41 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
42 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
43 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
44 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
45 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
46 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
47 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
48 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
49 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
50 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
51 },
52 'contenttypes.contenttype': {
53 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
54 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
55 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
56 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
57 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
58 },
59 'dashboard_app.bundle': {
60 'Meta': {'ordering': "['-uploaded_on']", 'object_name': 'Bundle'},
61 '_gz_content': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'db_column': "'gz_content'"}),
62 '_raw_content': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'db_column': "'content'"}),
63 'bundle_stream': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bundles'", 'to': "orm['dashboard_app.BundleStream']"}),
64 'content_filename': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
65 'content_sha1': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'null': 'True'}),
66 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
67 'is_deserialized': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
68 'uploaded_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'uploaded_bundles'", 'null': 'True', 'to': "orm['auth.User']"}),
69 'uploaded_on': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.utcnow'})
70 },
71 'dashboard_app.bundlestream': {
72 'Meta': {'object_name': 'BundleStream'},
73 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
74 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
75 'is_anonymous': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
76 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
77 'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
78 'pathname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
79 'slug': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
80 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
81 },
82 'lava_scheduler_app.device': {
83 'Meta': {'object_name': 'Device'},
84 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['lava_scheduler_app.TestJob']", 'blank': 'True', 'unique': 'True'}),
85 'device_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['lava_scheduler_app.DeviceType']"}),
86 'device_version': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
87 'health_status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
88 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '200', 'primary_key': 'True'}),
89 'last_health_report_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['lava_scheduler_app.TestJob']", 'blank': 'True', 'unique': 'True'}),
90 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
91 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['lava_scheduler_app.Tag']", 'symmetrical': 'False', 'blank': 'True'})
92 },
93 'lava_scheduler_app.devicestatetransition': {
94 'Meta': {'object_name': 'DeviceStateTransition'},
95 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
96 'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
97 'device': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'transitions'", 'to': "orm['lava_scheduler_app.Device']"}),
98 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
99 'job': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['lava_scheduler_app.TestJob']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
100 'message': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
101 'new_state': ('django.db.models.fields.IntegerField', [], {}),
102 'old_state': ('django.db.models.fields.IntegerField', [], {})
103 },
104 'lava_scheduler_app.devicetype': {
105 'Meta': {'object_name': 'DeviceType'},
106 'display': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
107 'health_check_job': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
108 'name': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'primary_key': 'True'})
109 },
110 'lava_scheduler_app.jobfailuretag': {
111 'Meta': {'object_name': 'JobFailureTag'},
112 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
113 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
114 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
115 },
116 'lava_scheduler_app.tag': {
117 'Meta': {'object_name': 'Tag'},
118 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
119 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
120 'name': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
121 },
122 'lava_scheduler_app.testjob': {
123 'Meta': {'object_name': 'TestJob'},
124 '_results_bundle': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'db_column': "'results_bundle_id'", 'on_delete': 'models.SET_NULL', 'to': "orm['dashboard_app.Bundle']", 'blank': 'True', 'unique': 'True'}),
125 '_results_link': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '400', 'null': 'True', 'db_column': "'results_link'", 'blank': 'True'}),
126 'actual_device': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.Device']"}),
127 'definition': ('django.db.models.fields.TextField', [], {}),
128 'description': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'null': 'True', 'blank': 'True'}),
129 'end_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
130 'failure_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
131 'failure_tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'failure_tags'", 'blank': 'True', 'to': "orm['lava_scheduler_app.JobFailureTag']"}),
132 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
133 'health_check': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
134 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
135 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
136 'log_file': ('django.db.models.fields.files.FileField', [], {'default': 'None', 'max_length': '100', 'null': 'True', 'blank': 'True'}),
137 'priority': ('django.db.models.fields.IntegerField', [], {'default': '50'}),
138 'requested_device': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.Device']"}),
139 'requested_device_type': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['lava_scheduler_app.DeviceType']"}),
140 'start_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
141 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
142 'sub_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
143 'submit_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
144 'submit_token': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['linaro_django_xmlrpc.AuthToken']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
145 'submitter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['auth.User']"}),
146 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['lava_scheduler_app.Tag']", 'symmetrical': 'False', 'blank': 'True'}),
147 'target_group': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
148 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
149 },
150 'linaro_django_xmlrpc.authtoken': {
151 'Meta': {'object_name': 'AuthToken'},
152 'created_on': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
153 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
154 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
155 'last_used_on': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
156 'secret': ('django.db.models.fields.CharField', [], {'default': "'1n07jwp73fldk40sk0hshidru6nh5rqlrn40oq4hs5f9wx99o0wemwme43raxx008kyfsbahl56x8wyndgyclbapc43maycile201e1snt6p8a02n4hgyc506fda8umq'", 'unique': 'True', 'max_length': '128'}),
157 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': "orm['auth.User']"})
158 }
159 }
160
161 complete_apps = ['lava_scheduler_app']
162\ No newline at end of file0\ No newline at end of file
1631
=== modified file 'lava_scheduler_app/models.py'
--- lava_scheduler_app/models.py 2013-06-25 06:11:41 +0000
+++ lava_scheduler_app/models.py 2013-06-25 12:38:27 +0000
@@ -262,7 +262,9 @@
262 target_group = models.CharField(262 target_group = models.CharField(
263 verbose_name = _(u"Target Group"),263 verbose_name = _(u"Target Group"),
264 blank = True,264 blank = True,
265 max_length = 64265 max_length = 64,
266 null = True,
267 default = None
266 )268 )
267269
268 submitter = models.ForeignKey(270 submitter = models.ForeignKey(
@@ -523,8 +525,7 @@
523 definition=json_data, submitter=submitter,525 definition=json_data, submitter=submitter,
524 requested_device=target, requested_device_type=device_type,526 requested_device=target, requested_device_type=device_type,
525 description=job_name, health_check=health_check, user=user,527 description=job_name, health_check=health_check, user=user,
526 group=group, is_public=is_public, priority=priority,528 group=group, is_public=is_public, priority=priority)
527 target_group=None)
528 job.save()529 job.save()
529 return job.id530 return job.id
530531

Subscribers

People subscribed via source and target branches

to status/vote changes: