github.com/misfo/deis@v1.0.1-0.20141111224634-e0eee0392b8a/controller/api/south_migrations/0001_initial.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 SchemaMigration
     5  from django.db import models
     6  
     7  
     8  class Migration(SchemaMigration):
     9  
    10      def forwards(self, orm):
    11          # Adding model 'Key'
    12          db.create_table(u'api_key', (
    13              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
    14              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
    15              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
    16              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
    17              ('id', self.gf('django.db.models.fields.CharField')(max_length=128)),
    18              ('public', self.gf('django.db.models.fields.TextField')(unique=True)),
    19          ))
    20          db.send_create_signal(u'api', ['Key'])
    21  
    22          # Adding unique constraint on 'Key', fields ['owner', 'id']
    23          db.create_unique(u'api_key', ['owner_id', 'id'])
    24  
    25          # Adding model 'Provider'
    26          db.create_table(u'api_provider', (
    27              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
    28              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
    29              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
    30              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
    31              ('id', self.gf('django.db.models.fields.SlugField')(max_length=64)),
    32              ('type', self.gf('django.db.models.fields.SlugField')(max_length=16)),
    33              ('creds', self.gf('json_field.fields.JSONField')(default=u'null', blank=True)),
    34          ))
    35          db.send_create_signal(u'api', ['Provider'])
    36  
    37          # Adding unique constraint on 'Provider', fields ['owner', 'id']
    38          db.create_unique(u'api_provider', ['owner_id', 'id'])
    39  
    40          # Adding model 'Flavor'
    41          db.create_table(u'api_flavor', (
    42              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
    43              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
    44              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
    45              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
    46              ('id', self.gf('django.db.models.fields.SlugField')(max_length=64)),
    47              ('provider', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Provider'])),
    48              ('params', self.gf('json_field.fields.JSONField')(default=u'null', blank=True)),
    49          ))
    50          db.send_create_signal(u'api', ['Flavor'])
    51  
    52          # Adding unique constraint on 'Flavor', fields ['owner', 'id']
    53          db.create_unique(u'api_flavor', ['owner_id', 'id'])
    54  
    55          # Adding model 'Formation'
    56          db.create_table(u'api_formation', (
    57              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
    58              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
    59              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
    60              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
    61              ('id', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=64)),
    62              ('domain', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)),
    63              ('nodes', self.gf('json_field.fields.JSONField')(default=u'{}', blank=True)),
    64          ))
    65          db.send_create_signal(u'api', ['Formation'])
    66  
    67          # Adding unique constraint on 'Formation', fields ['owner', 'id']
    68          db.create_unique(u'api_formation', ['owner_id', 'id'])
    69  
    70          # Adding model 'Layer'
    71          db.create_table(u'api_layer', (
    72              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
    73              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
    74              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
    75              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
    76              ('id', self.gf('django.db.models.fields.SlugField')(max_length=64)),
    77              ('formation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Formation'])),
    78              ('flavor', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Flavor'])),
    79              ('proxy', self.gf('django.db.models.fields.BooleanField')(default=False)),
    80              ('runtime', self.gf('django.db.models.fields.BooleanField')(default=False)),
    81              ('ssh_username', self.gf('django.db.models.fields.CharField')(default=u'ubuntu', max_length=64)),
    82              ('ssh_private_key', self.gf('django.db.models.fields.TextField')()),
    83              ('ssh_public_key', self.gf('django.db.models.fields.TextField')()),
    84              ('ssh_port', self.gf('django.db.models.fields.SmallIntegerField')(default=22)),
    85              ('config', self.gf('json_field.fields.JSONField')(default=u'{}', blank=True)),
    86          ))
    87          db.send_create_signal(u'api', ['Layer'])
    88  
    89          # Adding unique constraint on 'Layer', fields ['formation', 'id']
    90          db.create_unique(u'api_layer', ['formation_id', 'id'])
    91  
    92          # Adding model 'Node'
    93          db.create_table(u'api_node', (
    94              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
    95              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
    96              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
    97              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
    98              ('id', self.gf('django.db.models.fields.CharField')(max_length=64)),
    99              ('formation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Formation'])),
   100              ('layer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Layer'])),
   101              ('num', self.gf('django.db.models.fields.PositiveIntegerField')()),
   102              ('provider_id', self.gf('django.db.models.fields.SlugField')(max_length=64, null=True, blank=True)),
   103              ('fqdn', self.gf('django.db.models.fields.CharField')(max_length=256, null=True, blank=True)),
   104              ('status', self.gf('json_field.fields.JSONField')(default=u'null', null=True, blank=True)),
   105          ))
   106          db.send_create_signal(u'api', ['Node'])
   107  
   108          # Adding unique constraint on 'Node', fields ['formation', 'id']
   109          db.create_unique(u'api_node', ['formation_id', 'id'])
   110  
   111          # Adding model 'App'
   112          db.create_table(u'api_app', (
   113              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
   114              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
   115              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
   116              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
   117              ('id', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=64)),
   118              ('formation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Formation'])),
   119              ('containers', self.gf('json_field.fields.JSONField')(default=u'{}', blank=True)),
   120          ))
   121          db.send_create_signal(u'api', ['App'])
   122  
   123          # Adding model 'Container'
   124          db.create_table(u'api_container', (
   125              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
   126              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
   127              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
   128              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
   129              ('formation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Formation'])),
   130              ('node', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Node'])),
   131              ('app', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.App'])),
   132              ('type', self.gf('django.db.models.fields.CharField')(max_length=128)),
   133              ('num', self.gf('django.db.models.fields.PositiveIntegerField')()),
   134              ('port', self.gf('django.db.models.fields.PositiveIntegerField')()),
   135              ('status', self.gf('django.db.models.fields.CharField')(default=u'up', max_length=64)),
   136          ))
   137          db.send_create_signal(u'api', ['Container'])
   138  
   139          # Adding unique constraint on 'Container', fields ['app', 'type', 'num']
   140          db.create_unique(u'api_container', ['app_id', 'type', 'num'])
   141  
   142          # Adding unique constraint on 'Container', fields ['formation', 'port']
   143          db.create_unique(u'api_container', ['formation_id', 'port'])
   144  
   145          # Adding model 'Config'
   146          db.create_table(u'api_config', (
   147              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
   148              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
   149              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
   150              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
   151              ('app', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.App'])),
   152              ('version', self.gf('django.db.models.fields.PositiveIntegerField')()),
   153              ('values', self.gf('json_field.fields.JSONField')(default=u'{}', blank=True)),
   154          ))
   155          db.send_create_signal(u'api', ['Config'])
   156  
   157          # Adding unique constraint on 'Config', fields ['app', 'version']
   158          db.create_unique(u'api_config', ['app_id', 'version'])
   159  
   160          # Adding model 'Build'
   161          db.create_table(u'api_build', (
   162              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
   163              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
   164              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
   165              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
   166              ('app', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.App'])),
   167              ('sha', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
   168              ('output', self.gf('django.db.models.fields.TextField')(blank=True)),
   169              ('image', self.gf('django.db.models.fields.CharField')(default=u'deis/buildstep', max_length=256)),
   170              ('procfile', self.gf('json_field.fields.JSONField')(default=u'null', blank=True)),
   171              ('dockerfile', self.gf('django.db.models.fields.TextField')(blank=True)),
   172              ('config', self.gf('json_field.fields.JSONField')(default=u'null', blank=True)),
   173              ('url', self.gf('django.db.models.fields.URLField')(max_length=200)),
   174              ('size', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
   175              ('checksum', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
   176          ))
   177          db.send_create_signal(u'api', ['Build'])
   178  
   179          # Adding unique constraint on 'Build', fields ['app', 'uuid']
   180          db.create_unique(u'api_build', ['app_id', 'uuid'])
   181  
   182          # Adding model 'Release'
   183          db.create_table(u'api_release', (
   184              ('uuid', self.gf('api.fields.UuidField')(unique=True, max_length=32, primary_key=True)),
   185              ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
   186              ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
   187              ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
   188              ('app', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.App'])),
   189              ('version', self.gf('django.db.models.fields.PositiveIntegerField')()),
   190              ('config', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Config'])),
   191              ('build', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['api.Build'], null=True, blank=True)),
   192          ))
   193          db.send_create_signal(u'api', ['Release'])
   194  
   195          # Adding unique constraint on 'Release', fields ['app', 'version']
   196          db.create_unique(u'api_release', ['app_id', 'version'])
   197  
   198  
   199      def backwards(self, orm):
   200          # Removing unique constraint on 'Release', fields ['app', 'version']
   201          db.delete_unique(u'api_release', ['app_id', 'version'])
   202  
   203          # Removing unique constraint on 'Build', fields ['app', 'uuid']
   204          db.delete_unique(u'api_build', ['app_id', 'uuid'])
   205  
   206          # Removing unique constraint on 'Config', fields ['app', 'version']
   207          db.delete_unique(u'api_config', ['app_id', 'version'])
   208  
   209          # Removing unique constraint on 'Container', fields ['formation', 'port']
   210          db.delete_unique(u'api_container', ['formation_id', 'port'])
   211  
   212          # Removing unique constraint on 'Container', fields ['app', 'type', 'num']
   213          db.delete_unique(u'api_container', ['app_id', 'type', 'num'])
   214  
   215          # Removing unique constraint on 'Node', fields ['formation', 'id']
   216          db.delete_unique(u'api_node', ['formation_id', 'id'])
   217  
   218          # Removing unique constraint on 'Layer', fields ['formation', 'id']
   219          db.delete_unique(u'api_layer', ['formation_id', 'id'])
   220  
   221          # Removing unique constraint on 'Formation', fields ['owner', 'id']
   222          db.delete_unique(u'api_formation', ['owner_id', 'id'])
   223  
   224          # Removing unique constraint on 'Flavor', fields ['owner', 'id']
   225          db.delete_unique(u'api_flavor', ['owner_id', 'id'])
   226  
   227          # Removing unique constraint on 'Provider', fields ['owner', 'id']
   228          db.delete_unique(u'api_provider', ['owner_id', 'id'])
   229  
   230          # Removing unique constraint on 'Key', fields ['owner', 'id']
   231          db.delete_unique(u'api_key', ['owner_id', 'id'])
   232  
   233          # Deleting model 'Key'
   234          db.delete_table(u'api_key')
   235  
   236          # Deleting model 'Provider'
   237          db.delete_table(u'api_provider')
   238  
   239          # Deleting model 'Flavor'
   240          db.delete_table(u'api_flavor')
   241  
   242          # Deleting model 'Formation'
   243          db.delete_table(u'api_formation')
   244  
   245          # Deleting model 'Layer'
   246          db.delete_table(u'api_layer')
   247  
   248          # Deleting model 'Node'
   249          db.delete_table(u'api_node')
   250  
   251          # Deleting model 'App'
   252          db.delete_table(u'api_app')
   253  
   254          # Deleting model 'Container'
   255          db.delete_table(u'api_container')
   256  
   257          # Deleting model 'Config'
   258          db.delete_table(u'api_config')
   259  
   260          # Deleting model 'Build'
   261          db.delete_table(u'api_build')
   262  
   263          # Deleting model 'Release'
   264          db.delete_table(u'api_release')
   265  
   266  
   267      models = {
   268          u'api.app': {
   269              'Meta': {'object_name': 'App'},
   270              'containers': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}),
   271              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   272              'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}),
   273              'id': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '64'}),
   274              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   275              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   276              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   277          },
   278          u'api.build': {
   279              'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'uuid'),)", 'object_name': 'Build'},
   280              'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
   281              'checksum': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
   282              'config': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}),
   283              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   284              'dockerfile': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
   285              'image': ('django.db.models.fields.CharField', [], {'default': "u'deis/buildstep'", 'max_length': '256'}),
   286              'output': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
   287              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   288              'procfile': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}),
   289              'sha': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
   290              'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
   291              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   292              'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
   293              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   294          },
   295          u'api.config': {
   296              'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'version'),)", 'object_name': 'Config'},
   297              'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
   298              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   299              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   300              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   301              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}),
   302              'values': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}),
   303              'version': ('django.db.models.fields.PositiveIntegerField', [], {})
   304          },
   305          u'api.container': {
   306              'Meta': {'ordering': "[u'created']", 'unique_together': "((u'app', u'type', u'num'), (u'formation', u'port'))", 'object_name': 'Container'},
   307              'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
   308              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   309              'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}),
   310              'node': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Node']"}),
   311              'num': ('django.db.models.fields.PositiveIntegerField', [], {}),
   312              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   313              'port': ('django.db.models.fields.PositiveIntegerField', [], {}),
   314              'status': ('django.db.models.fields.CharField', [], {'default': "u'up'", 'max_length': '64'}),
   315              'type': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
   316              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   317              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   318          },
   319          u'api.flavor': {
   320              'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Flavor'},
   321              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   322              'id': ('django.db.models.fields.SlugField', [], {'max_length': '64'}),
   323              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   324              'params': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}),
   325              'provider': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Provider']"}),
   326              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   327              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   328          },
   329          u'api.formation': {
   330              'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Formation'},
   331              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   332              'domain': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
   333              'id': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '64'}),
   334              'nodes': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}),
   335              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   336              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   337              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   338          },
   339          u'api.key': {
   340              'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Key'},
   341              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   342              'id': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
   343              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   344              'public': ('django.db.models.fields.TextField', [], {'unique': 'True'}),
   345              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   346              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   347          },
   348          u'api.layer': {
   349              'Meta': {'unique_together': "((u'formation', u'id'),)", 'object_name': 'Layer'},
   350              'config': ('json_field.fields.JSONField', [], {'default': "u'{}'", 'blank': 'True'}),
   351              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   352              'flavor': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Flavor']"}),
   353              'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}),
   354              'id': ('django.db.models.fields.SlugField', [], {'max_length': '64'}),
   355              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   356              'proxy': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
   357              'runtime': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
   358              'ssh_port': ('django.db.models.fields.SmallIntegerField', [], {'default': '22'}),
   359              'ssh_private_key': ('django.db.models.fields.TextField', [], {}),
   360              'ssh_public_key': ('django.db.models.fields.TextField', [], {}),
   361              'ssh_username': ('django.db.models.fields.CharField', [], {'default': "u'ubuntu'", 'max_length': '64'}),
   362              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   363              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   364          },
   365          u'api.node': {
   366              'Meta': {'unique_together': "((u'formation', u'id'),)", 'object_name': 'Node'},
   367              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   368              'formation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Formation']"}),
   369              'fqdn': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}),
   370              'id': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
   371              'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Layer']"}),
   372              'num': ('django.db.models.fields.PositiveIntegerField', [], {}),
   373              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   374              'provider_id': ('django.db.models.fields.SlugField', [], {'max_length': '64', 'null': 'True', 'blank': 'True'}),
   375              'status': ('json_field.fields.JSONField', [], {'default': "u'null'", 'null': 'True', 'blank': 'True'}),
   376              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   377              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   378          },
   379          u'api.provider': {
   380              'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Provider'},
   381              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   382              'creds': ('json_field.fields.JSONField', [], {'default': "u'null'", 'blank': 'True'}),
   383              'id': ('django.db.models.fields.SlugField', [], {'max_length': '64'}),
   384              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   385              'type': ('django.db.models.fields.SlugField', [], {'max_length': '16'}),
   386              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   387              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
   388          },
   389          u'api.release': {
   390              'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'version'),)", 'object_name': 'Release'},
   391              'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
   392              'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Build']", 'null': 'True', 'blank': 'True'}),
   393              'config': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Config']"}),
   394              'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
   395              'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
   396              'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
   397              'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}),
   398              'version': ('django.db.models.fields.PositiveIntegerField', [], {})
   399          },
   400          u'auth.group': {
   401              'Meta': {'object_name': 'Group'},
   402              u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
   403              'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
   404              'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
   405          },
   406          u'auth.permission': {
   407              'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
   408              'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
   409              'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
   410              u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
   411              'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
   412          },
   413          u'auth.user': {
   414              'Meta': {'object_name': 'User'},
   415              'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
   416              'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
   417              'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
   418              'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
   419              u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
   420              'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
   421              'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
   422              'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
   423              'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
   424              'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
   425              'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
   426              'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
   427              'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
   428          },
   429          u'contenttypes.contenttype': {
   430              'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
   431              'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
   432              u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
   433              'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
   434              'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
   435          }
   436      }
   437  
   438      complete_apps = ['api']