From 935463e3eced209113447dfbb6138d5afe2f5680 Mon Sep 17 00:00:00 2001 From: Chris Church Date: Fri, 22 Mar 2013 13:41:35 -0400 Subject: [PATCH] Updated description to be optional, added migration for description change and removal of application user model. --- lib/main/migrations/0005_changes.py | 426 ++++++++++++++++++++++++++++ lib/main/models/__init__.py | 11 +- 2 files changed, 434 insertions(+), 3 deletions(-) create mode 100644 lib/main/migrations/0005_changes.py diff --git a/lib/main/migrations/0005_changes.py b/lib/main/migrations/0005_changes.py new file mode 100644 index 0000000000..be46a3e608 --- /dev/null +++ b/lib/main/migrations/0005_changes.py @@ -0,0 +1,426 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Deleting model 'User' + db.delete_table(u'main_user') + + # Removing M2M table for field tags on 'User' + db.delete_table('main_user_tags') + + # Removing M2M table for field audit_trail on 'User' + db.delete_table('main_user_audit_trail') + + + # Changing field 'Inventory.creation_date' + db.alter_column(u'main_inventory', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'Inventory', fields ['name'] + db.create_unique(u'main_inventory', ['name']) + + + # Changing field 'Host.creation_date' + db.alter_column(u'main_host', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'Host', fields ['name'] + db.create_unique(u'main_host', ['name']) + + # Adding unique constraint on 'LaunchJob', fields ['name'] + db.create_unique(u'main_launchjob', ['name']) + + + # Changing field 'LaunchJob.creation_date' + db.alter_column(u'main_launchjob', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + + # Changing field 'LaunchJob.user' + db.alter_column(u'main_launchjob', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.SET_NULL, to=orm['auth.User'], null=True)) + + # Changing field 'Group.creation_date' + db.alter_column(u'main_group', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'Group', fields ['name'] + db.create_unique(u'main_group', ['name']) + + # Adding unique constraint on 'Credential', fields ['name'] + db.create_unique(u'main_credential', ['name']) + + + # Changing field 'Credential.creation_date' + db.alter_column(u'main_credential', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + + # Changing field 'Credential.user' + db.alter_column(u'main_credential', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.SET_NULL, to=orm['auth.User'], null=True)) + + # Changing field 'AuditTrail.modified_by' + db.alter_column(u'main_audittrail', 'modified_by_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.SET_NULL)) + + # Changing field 'AuditTrail.creation_date' + db.alter_column(u'main_audittrail', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'AuditTrail', fields ['name'] + db.create_unique(u'main_audittrail', ['name']) + + # Adding unique constraint on 'Team', fields ['name'] + db.create_unique(u'main_team', ['name']) + + + # Changing field 'Team.creation_date' + db.alter_column(u'main_team', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'Project', fields ['name'] + db.create_unique(u'main_project', ['name']) + + + # Changing field 'Project.creation_date' + db.alter_column(u'main_project', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + + # Changing field 'Permission.creation_date' + db.alter_column(u'main_permission', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + + # Changing field 'Permission.user' + db.alter_column(u'main_permission', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['auth.User'])) + # Adding unique constraint on 'Permission', fields ['name'] + db.create_unique(u'main_permission', ['name']) + + + # Changing field 'LaunchJobStatus.creation_date' + db.alter_column(u'main_launchjobstatus', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'LaunchJobStatus', fields ['name'] + db.create_unique(u'main_launchjobstatus', ['name']) + + + # Changing field 'VariableData.creation_date' + db.alter_column(u'main_variabledata', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + # Adding unique constraint on 'VariableData', fields ['name'] + db.create_unique(u'main_variabledata', ['name']) + + # Adding unique constraint on 'Organization', fields ['name'] + db.create_unique(u'main_organization', ['name']) + + + # Changing field 'Organization.creation_date' + db.alter_column(u'main_organization', 'creation_date', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) + + def backwards(self, orm): + # Removing unique constraint on 'Organization', fields ['name'] + db.delete_unique(u'main_organization', ['name']) + + # Removing unique constraint on 'VariableData', fields ['name'] + db.delete_unique(u'main_variabledata', ['name']) + + # Removing unique constraint on 'LaunchJobStatus', fields ['name'] + db.delete_unique(u'main_launchjobstatus', ['name']) + + # Removing unique constraint on 'Permission', fields ['name'] + db.delete_unique(u'main_permission', ['name']) + + # Removing unique constraint on 'Project', fields ['name'] + db.delete_unique(u'main_project', ['name']) + + # Removing unique constraint on 'Team', fields ['name'] + db.delete_unique(u'main_team', ['name']) + + # Removing unique constraint on 'AuditTrail', fields ['name'] + db.delete_unique(u'main_audittrail', ['name']) + + # Removing unique constraint on 'Credential', fields ['name'] + db.delete_unique(u'main_credential', ['name']) + + # Removing unique constraint on 'Group', fields ['name'] + db.delete_unique(u'main_group', ['name']) + + # Removing unique constraint on 'LaunchJob', fields ['name'] + db.delete_unique(u'main_launchjob', ['name']) + + # Removing unique constraint on 'Host', fields ['name'] + db.delete_unique(u'main_host', ['name']) + + # Removing unique constraint on 'Inventory', fields ['name'] + db.delete_unique(u'main_inventory', ['name']) + + # Adding model 'User' + db.create_table(u'main_user', ( + ('description', self.gf('django.db.models.fields.TextField')()), + ('name', self.gf('django.db.models.fields.CharField')(max_length=512)), + ('active', self.gf('django.db.models.fields.BooleanField')(default=True)), + ('auth_user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='application_user', unique=True, to=orm['auth.User'])), + ('creation_date', self.gf('django.db.models.fields.DateField')()), + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + )) + db.send_create_signal('main', ['User']) + + # Adding M2M table for field tags on 'User' + db.create_table(u'main_user_tags', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('user', models.ForeignKey(orm['main.user'], null=False)), + ('tag', models.ForeignKey(orm['main.tag'], null=False)) + )) + db.create_unique(u'main_user_tags', ['user_id', 'tag_id']) + + # Adding M2M table for field audit_trail on 'User' + db.create_table(u'main_user_audit_trail', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('user', models.ForeignKey(orm['main.user'], null=False)), + ('audittrail', models.ForeignKey(orm['main.audittrail'], null=False)) + )) + db.create_unique(u'main_user_audit_trail', ['user_id', 'audittrail_id']) + + + # Changing field 'Inventory.creation_date' + db.alter_column(u'main_inventory', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Host.creation_date' + db.alter_column(u'main_host', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'LaunchJob.creation_date' + db.alter_column(u'main_launchjob', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'LaunchJob.user' + db.alter_column(u'main_launchjob', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.SET_NULL, to=orm['main.User'], null=True)) + + # Changing field 'Group.creation_date' + db.alter_column(u'main_group', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Credential.creation_date' + db.alter_column(u'main_credential', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Credential.user' + db.alter_column(u'main_credential', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.SET_NULL, to=orm['main.User'], null=True)) + + # Changing field 'AuditTrail.modified_by' + db.alter_column(u'main_audittrail', 'modified_by_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.User'], null=True, on_delete=models.SET_NULL)) + + # Changing field 'AuditTrail.creation_date' + db.alter_column(u'main_audittrail', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Team.creation_date' + db.alter_column(u'main_team', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Project.creation_date' + db.alter_column(u'main_project', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Permission.creation_date' + db.alter_column(u'main_permission', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Permission.user' + db.alter_column(u'main_permission', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['main.User'], on_delete=models.SET_NULL)) + + # Changing field 'LaunchJobStatus.creation_date' + db.alter_column(u'main_launchjobstatus', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'VariableData.creation_date' + db.alter_column(u'main_variabledata', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + # Changing field 'Organization.creation_date' + db.alter_column(u'main_organization', 'creation_date', self.gf('django.db.models.fields.DateField')()) + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'main.audittrail': { + 'Meta': {'object_name': 'AuditTrail'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'audittrail_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'comment': ('django.db.models.fields.TextField', [], {}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'delta': ('django.db.models.fields.TextField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'detail': ('django.db.models.fields.TextField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'resource_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'tag': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Tag']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'audittrail_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + }, + 'main.credential': { + 'Meta': {'object_name': 'Credential'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'credential_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'credentials'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': u"orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'ssh_key_data': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'ssh_key_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '4096', 'blank': 'True'}), + 'ssh_key_unlock': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'ssh_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'sudo_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'credential_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'credentials'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Team']", 'blank': 'True', 'null': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'credentials'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': u"orm['auth.User']", 'blank': 'True', 'null': 'True'}) + }, + 'main.group': { + 'Meta': {'object_name': 'Group'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'group_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'groups'", 'blank': 'True', 'to': "orm['main.Host']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'parents': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'parents_rel_+'", 'blank': 'True', 'to': "orm['main.Group']"}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'group_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + }, + 'main.host': { + 'Meta': {'object_name': 'Host'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'host_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'host_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + }, + 'main.inventory': { + 'Meta': {'object_name': 'Inventory'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'inventory_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventories'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'inventory_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + }, + 'main.launchjob': { + 'Meta': {'object_name': 'LaunchJob'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'launchjob_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'launch_jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'launch_jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Inventory']", 'blank': 'True', 'null': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'launch_jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': u"orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'launchjob_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'launch_jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': u"orm['auth.User']", 'blank': 'True', 'null': 'True'}) + }, + 'main.launchjobstatus': { + 'Meta': {'object_name': 'LaunchJobStatus'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'launchjobstatus_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'launch_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'launch_job_statuses'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.LaunchJob']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'result_data': ('django.db.models.fields.TextField', [], {}), + 'status': ('django.db.models.fields.IntegerField', [], {}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'launchjobstatus_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + }, + 'main.organization': { + 'Meta': {'object_name': 'Organization'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'admins': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'admin_of_organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organization_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': u"orm['main.Project']"}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organization_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.permission': { + 'Meta': {'object_name': 'Permission'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'permission_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['main.Project']"}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'permission_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}) + }, + u'main.project': { + 'Meta': {'object_name': 'Project'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'project_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'default_playbook': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'projects'", 'blank': 'True', 'to': "orm['main.Inventory']"}), + 'local_repository': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'project_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + }, + 'main.tag': { + 'Meta': {'object_name': 'Tag'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}) + }, + 'main.team': { + 'Meta': {'object_name': 'Team'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'team_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'teams'", 'symmetrical': 'False', 'to': "orm['main.Organization']"}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['main.Project']"}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'team_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.variabledata': { + 'Meta': {'object_name': 'VariableData'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'audit_trail': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'variabledata_audit_trails'", 'blank': 'True', 'to': "orm['main.AuditTrail']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'data': ('django.db.models.fields.TextField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'group': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'variable_data'", 'null': 'True', 'blank': 'True', 'to': "orm['main.Group']"}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'variable_data'", 'null': 'True', 'blank': 'True', 'to': "orm['main.Host']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'variabledata_tags'", 'blank': 'True', 'to': "orm['main.Tag']"}) + } + } + + complete_apps = ['main'] \ No newline at end of file diff --git a/lib/main/models/__init__.py b/lib/main/models/__init__.py index 9b340ee7de..fd4e91d1c1 100644 --- a/lib/main/models/__init__.py +++ b/lib/main/models/__init__.py @@ -6,6 +6,11 @@ from django.core.urlresolvers import reverse # TODO: jobs and events model TBD # TODO: reporting model TBD +JOB_TYPE_CHOICES = [ + ('run', _('Run')), + ('check', _('Check')), +] + class CommonModel(models.Model): ''' common model for all object types that have these standard fields @@ -15,7 +20,7 @@ class CommonModel(models.Model): abstract = True name = models.CharField(max_length=512, unique=True) - description = models.TextField() + description = models.TextField(blank=True, default='') creation_date = models.DateField(auto_now_add=True) tags = models.ManyToManyField('Tag', related_name='%(class)s_tags', blank=True) audit_trail = models.ManyToManyField('AuditTrail', related_name='%(class)s_audit_trails', blank=True) @@ -178,7 +183,7 @@ class Permission(CommonModel): user = models.ForeignKey('auth.User', null=True, on_delete=SET_NULL, blank=True, related_name='permissions') project = models.ForeignKey('Project', null=True, on_delete=SET_NULL, blank=True, related_name='permissions') team = models.ForeignKey('Team', null=True, on_delete=SET_NULL, blank=True, related_name='permissions') - job_type = models.CharField(max_length=64) + job_type = models.CharField(max_length=64, choices=JOB_TYPE_CHOICES) # TODO: other job types (later) @@ -194,7 +199,7 @@ class LaunchJob(CommonModel): credential = models.ForeignKey('Credential', on_delete=SET_NULL, null=True, default=None, blank=True, related_name='launch_jobs') project = models.ForeignKey('Project', on_delete=SET_NULL, null=True, default=None, blank=True, related_name='launch_jobs') user = models.ForeignKey('auth.User', on_delete=SET_NULL, null=True, default=None, blank=True, related_name='launch_jobs') - job_type = models.CharField(max_length=64) + job_type = models.CharField(max_length=64, choices=JOB_TYPE_CHOICES) # project has one default playbook but really should have a list of playbooks and flags ...