github.com/inflatablewoman/deis@v1.0.1-0.20141111034523-a4511c46a6ce/controller/api/south_migrations/0004_add_custom_perms.py (about) 1 # -*- coding: utf-8 -*- 2 from south.utils import datetime_utils as datetime 3 from south.db import db 4 from south.v2 import DataMigration 5 from django.conf import settings 6 from django.db import models 7 from django.contrib.auth.management import create_permissions 8 9 10 class Migration(DataMigration): 11 12 def forwards(self, orm): 13 "Create custom model permissions." 14 create_permissions(models.get_app('api'), models.get_models(), 2 if settings.DEBUG else 0) 15 16 def backwards(self, orm): 17 raise RuntimeError('Cannot reverse this migration') 18 19 20 models = { 21 u'api.app': { 22 'Meta': {'object_name': 'App'}, 23 'containers': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}), 24 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 25 'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}), 26 'id': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '64'}), 27 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 28 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 29 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 30 }, 31 u'api.build': { 32 'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'uuid'),)", 'object_name': 'Build'}, 33 'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}), 34 'checksum': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), 35 'config': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}), 36 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 37 'dockerfile': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 38 'image': ('django.db.models.fields.CharField', [], {'default': "u'deis/buildstep'", 'max_length': '256'}), 39 'output': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 40 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 41 'procfile': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}), 42 'sha': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), 43 'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 44 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 45 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}), 46 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 47 }, 48 u'api.config': { 49 'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'version'),)", 'object_name': 'Config'}, 50 'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}), 51 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 52 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 53 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 54 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}), 55 'values': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}), 56 'version': ('django.db.models.fields.PositiveIntegerField', [], {}) 57 }, 58 u'api.container': { 59 'Meta': {'ordering': "[u'created']", 'unique_together': "((u'app', u'type', u'num'), (u'formation', u'port'))", 'object_name': 'Container'}, 60 'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}), 61 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 62 'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}), 63 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Node']"}), 64 'num': ('django.db.models.fields.PositiveIntegerField', [], {}), 65 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 66 'port': ('django.db.models.fields.PositiveIntegerField', [], {}), 67 'status': ('django.db.models.fields.CharField', [], {'default': "u'up'", 'max_length': '64'}), 68 'type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 69 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 70 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 71 }, 72 u'api.flavor': { 73 'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Flavor'}, 74 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 75 'id': ('django.db.models.fields.SlugField', [], {'max_length': '64'}), 76 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 77 'params': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}), 78 'provider': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Provider']"}), 79 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 80 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 81 }, 82 u'api.formation': { 83 'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Formation'}, 84 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 85 'domain': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 86 'id': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '64'}), 87 'nodes': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}), 88 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 89 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 90 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 91 }, 92 u'api.key': { 93 'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Key'}, 94 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 95 'id': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 96 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 97 'public': ('django.db.models.fields.TextField', [], {'unique': 'True'}), 98 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 99 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 100 }, 101 u'api.layer': { 102 'Meta': {'unique_together': "((u'formation', u'id'),)", 'object_name': 'Layer'}, 103 'config': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}), 104 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 105 'flavor': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Flavor']"}), 106 'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}), 107 'id': ('django.db.models.fields.SlugField', [], {'max_length': '64'}), 108 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 109 'proxy': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 110 'runtime': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 111 'ssh_port': ('django.db.models.fields.SmallIntegerField', [], {'default': '22'}), 112 'ssh_private_key': ('django.db.models.fields.TextField', [], {}), 113 'ssh_public_key': ('django.db.models.fields.TextField', [], {}), 114 'ssh_username': ('django.db.models.fields.CharField', [], {'default': "u'ubuntu'", 'max_length': '64'}), 115 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 116 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 117 }, 118 u'api.node': { 119 'Meta': {'unique_together': "((u'formation', u'id'),)", 'object_name': 'Node'}, 120 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 121 'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}), 122 'fqdn': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}), 123 'id': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 124 'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Layer']"}), 125 'num': ('django.db.models.fields.PositiveIntegerField', [], {}), 126 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 127 'provider_id': ('django.db.models.fields.SlugField', [], {'max_length': '64', 'null': 'True', 'blank': 'True'}), 128 'status': ('json_field.fields.JSONField', [], {'default': "u'null'", 'null': 'True', 'blank': 'True'}), 129 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 130 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 131 }, 132 u'api.provider': { 133 'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Provider'}, 134 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 135 'creds': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}), 136 'id': ('django.db.models.fields.SlugField', [], {'max_length': '64'}), 137 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 138 'type': ('django.db.models.fields.SlugField', [], {'max_length': '16'}), 139 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 140 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}) 141 }, 142 u'api.release': { 143 'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'version'),)", 'object_name': 'Release'}, 144 'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}), 145 'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Build']", 'null': 'True', 'blank': 'True'}), 146 'config': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Config']"}), 147 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 148 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}), 149 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 150 'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}), 151 'version': ('django.db.models.fields.PositiveIntegerField', [], {}) 152 }, 153 u'auth.group': { 154 'Meta': {'object_name': 'Group'}, 155 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 156 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 157 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 158 }, 159 u'auth.permission': { 160 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, 161 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 162 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), 163 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 164 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 165 }, 166 u'auth.user': { 167 'Meta': {'object_name': 'User'}, 168 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 169 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 170 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 171 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), 172 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 173 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 174 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 175 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 176 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 177 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 178 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 179 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), 180 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 181 }, 182 u'contenttypes.contenttype': { 183 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 184 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 185 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 186 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 187 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 188 } 189 } 190 191 complete_apps = ['contenttypes', 'auth', 'api'] 192 symmetrical = True