Files
awx/ansibleworks/main/migrations/0002_v12b2_changes.py
Chris Church cba55a061a Numerous model-related updates and supporing changes, including:
- Add variables field on Host/Group models and remove separate VariableData model.
- Add data migrations for existing variable data.
- Update views, serializers and tests to keep roughly the same API interface for variable data.
- Add has_active_failures properties on Group/Host models to provide indication of last job status.
- Add job_tags field on JobTemplate/Job models to specify tags to ansible-playbook.
- Add host_config_key field to JobTemplate model for use by empheral hosts.
- Add job_args, job_cwd and job_env fields to Job model to capture more info from running the job.
- Add failed flag on JobHostSummary model.
- Add play/task fields on JobEvent model to capture new context variables from callback.
- Add parent field on JobEvent model to capture hierarchy of job events.
- Add hosts field on JobEvent model to capture all hosts associated with the event (especially useful for parent events in the hierarchy).
- Removed existing Tag model, replace with django-taggit instead.
- Removed existing AuditLog model, replacement TBD.
2013-06-10 17:34:37 -04:00

664 lines
45 KiB
Python

# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
'''
Schema migration for AnsibleWorks 1.2-b2 release.
- Adds variables field on Host and Group models.
- Adds job_tags and host_config_key fields on JobTemplate.
- Adds job_tags, job_args, job_cwd, job_env fields on Job.
- Adds failed field on JobHostSummary.
- Adds play, task, parent and hosts fields on JobEvent.
NOTE: This migration has been manually edited!
'''
def forwards(self, orm):
# Adding field 'Host.variables'
db.add_column(u'main_host', 'variables',
self.gf('django.db.models.fields.TextField')(default='', blank=True, null=True),
keep_default=False)
# Adding field 'Group.variables'
db.add_column(u'main_group', 'variables',
self.gf('django.db.models.fields.TextField')(default='', blank=True, null=True),
keep_default=False)
# Adding field 'JobTemplate.job_tags'
db.add_column(u'main_jobtemplate', 'job_tags',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, null=True, blank=True),
keep_default=False)
# Adding field 'JobTemplate.host_config_key'
db.add_column(u'main_jobtemplate', 'host_config_key',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, blank=True, null=True),
keep_default=False)
# Adding field 'Job.job_tags'
db.add_column(u'main_job', 'job_tags',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, null=True, blank=True),
keep_default=False)
# Adding field 'Job.job_args'
db.add_column(u'main_job', 'job_args',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, null=True, blank=True),
keep_default=False)
# Adding field 'Job.job_cwd'
db.add_column(u'main_job', 'job_cwd',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, null=True, blank=True),
keep_default=False)
# Adding field 'Job.job_env'
db.add_column(u'main_job', 'job_env',
self.gf('jsonfield.fields.JSONField')(default={}, null=True, blank=True),
keep_default=False)
# Adding field 'JobHostSummary.failed'
db.add_column(u'main_jobhostsummary', 'failed',
self.gf('django.db.models.fields.BooleanField')(default=False),
keep_default=False)
# Adding field 'JobEvent.play'
db.add_column(u'main_jobevent', 'play',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, blank=True, null=True),
keep_default=False)
# Adding field 'JobEvent.task'
db.add_column(u'main_jobevent', 'task',
self.gf('django.db.models.fields.CharField')(default='', max_length=1024, blank=True, null=True),
keep_default=False)
# Adding field 'JobEvent.parent'
db.add_column(u'main_jobevent', 'parent',
self.gf('django.db.models.fields.related.ForeignKey')(related_name='children', on_delete=models.SET_NULL, default=None, to=orm['main.JobEvent'], blank=True, null=True),
keep_default=False)
# Adding M2M table for field hosts on 'JobEvent'
m2m_table_name = db.shorten_name(u'main_jobevent_hosts')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('jobevent', models.ForeignKey(orm['main.jobevent'], null=False)),
('host', models.ForeignKey(orm['main.host'], null=False))
))
db.create_unique(m2m_table_name, ['jobevent_id', 'host_id'])
# Removing M2M table for field tags on 'Job'
db.delete_table(db.shorten_name(u'main_job_tags'))
# Removing M2M table for field audit_trail on 'Job'
db.delete_table(db.shorten_name(u'main_job_audit_trail'))
# Removing M2M table for field tags on 'Inventory'
db.delete_table(db.shorten_name(u'main_inventory_tags'))
# Removing M2M table for field audit_trail on 'Inventory'
db.delete_table(db.shorten_name(u'main_inventory_audit_trail'))
# Removing M2M table for field tags on 'Host'
db.delete_table(db.shorten_name(u'main_host_tags'))
# Removing M2M table for field audit_trail on 'Host'
db.delete_table(db.shorten_name(u'main_host_audit_trail'))
# Removing M2M table for field tags on 'Group'
db.delete_table(db.shorten_name(u'main_group_tags'))
# Removing M2M table for field audit_trail on 'Group'
db.delete_table(db.shorten_name(u'main_group_audit_trail'))
# Removing M2M table for field audit_trail on 'Credential'
db.delete_table(db.shorten_name(u'main_credential_audit_trail'))
# Removing M2M table for field tags on 'Credential'
db.delete_table(db.shorten_name(u'main_credential_tags'))
# Removing M2M table for field tags on 'JobTemplate'
db.delete_table(db.shorten_name(u'main_jobtemplate_tags'))
# Removing M2M table for field audit_trail on 'JobTemplate'
db.delete_table(db.shorten_name(u'main_jobtemplate_audit_trail'))
# Removing M2M table for field tags on 'Team'
db.delete_table(db.shorten_name(u'main_team_tags'))
# Removing M2M table for field audit_trail on 'Team'
db.delete_table(db.shorten_name(u'main_team_audit_trail'))
# Removing M2M table for field tags on 'Project'
db.delete_table(db.shorten_name(u'main_project_tags'))
# Removing M2M table for field audit_trail on 'Project'
db.delete_table(db.shorten_name(u'main_project_audit_trail'))
# Removing M2M table for field tags on 'Permission'
db.delete_table(db.shorten_name(u'main_permission_tags'))
# Removing M2M table for field audit_trail on 'Permission'
db.delete_table(db.shorten_name(u'main_permission_audit_trail'))
# Removing M2M table for field tags on 'VariableData'
db.delete_table(db.shorten_name(u'main_variabledata_tags'))
# Removing M2M table for field audit_trail on 'VariableData'
db.delete_table(db.shorten_name(u'main_variabledata_audit_trail'))
# Removing M2M table for field tags on 'Organization'
db.delete_table(db.shorten_name(u'main_organization_tags'))
# Removing M2M table for field audit_trail on 'Organization'
db.delete_table(db.shorten_name(u'main_organization_audit_trail'))
# Deleting model 'Tag'
db.delete_table(u'main_tag')
# Deleting model 'AuditTrail'
db.delete_table(u'main_audittrail')
def backwards(self, orm):
# Deleting field 'Host.variables'
db.delete_column(u'main_host', 'variables')
# Deleting field 'Group.variables'
db.delete_column(u'main_group', 'variables')
# Deleting field 'JobTemplate.job_tags'
db.delete_column(u'main_jobtemplate', 'job_tags')
# Deleting field 'JobTemplate.host_config_key'
db.delete_column(u'main_jobtemplate', 'host_config_key')
# Deleting field 'Job.job_tags'
db.delete_column(u'main_job', 'job_tags')
# Deleting field 'Job.job_args'
db.delete_column(u'main_job', 'job_args')
# Deleting field 'Job.job_cwd'
db.delete_column(u'main_job', 'job_cwd')
# Deleting field 'Job.job_env'
db.delete_column(u'main_job', 'job_env')
# Deleting field 'JobHostSummary.failed'
db.delete_column(u'main_jobhostsummary', 'failed')
# Deleting field 'JobEvent.play'
db.delete_column(u'main_jobevent', 'play')
# Deleting field 'JobEvent.task'
db.delete_column(u'main_jobevent', 'task')
# Deleting field 'JobEvent.parent'
db.delete_column(u'main_jobevent', 'parent_id')
# Removing M2M table for field hosts on 'JobEvent'
db.delete_table(db.shorten_name(u'main_jobevent_hosts'))
# Adding model 'AuditTrail'
db.create_table(u'main_audittrail', (
('comment', self.gf('django.db.models.fields.TextField')()),
('modified_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.SET_NULL, blank=True)),
('delta', self.gf('django.db.models.fields.TextField')()),
('tag', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Tag'], null=True, on_delete=models.SET_NULL, blank=True)),
('detail', self.gf('django.db.models.fields.TextField')()),
('resource_type', self.gf('django.db.models.fields.CharField')(max_length=64)),
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
))
db.send_create_signal('main', ['AuditTrail'])
# Adding model 'Tag'
db.create_table(u'main_tag', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=512)),
))
db.send_create_signal('main', ['Tag'])
# Adding M2M table for field tags on 'Job'
m2m_table_name = db.shorten_name(u'main_job_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('job', models.ForeignKey(orm['main.job'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['job_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Job'
m2m_table_name = db.shorten_name(u'main_job_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('job', models.ForeignKey(orm['main.job'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['job_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Inventory'
m2m_table_name = db.shorten_name(u'main_inventory_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('inventory', models.ForeignKey(orm['main.inventory'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['inventory_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Inventory'
m2m_table_name = db.shorten_name(u'main_inventory_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('inventory', models.ForeignKey(orm['main.inventory'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['inventory_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Host'
m2m_table_name = db.shorten_name(u'main_host_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('host', models.ForeignKey(orm['main.host'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['host_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Host'
m2m_table_name = db.shorten_name(u'main_host_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('host', models.ForeignKey(orm['main.host'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['host_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Group'
m2m_table_name = db.shorten_name(u'main_group_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('group', models.ForeignKey(orm['main.group'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['group_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Group'
m2m_table_name = db.shorten_name(u'main_group_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('group', models.ForeignKey(orm['main.group'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['group_id', 'audittrail_id'])
# Adding M2M table for field audit_trail on 'Credential'
m2m_table_name = db.shorten_name(u'main_credential_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('credential', models.ForeignKey(orm['main.credential'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['credential_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Credential'
m2m_table_name = db.shorten_name(u'main_credential_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('credential', models.ForeignKey(orm['main.credential'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['credential_id', 'tag_id'])
# Adding M2M table for field tags on 'JobTemplate'
m2m_table_name = db.shorten_name(u'main_jobtemplate_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('jobtemplate', models.ForeignKey(orm['main.jobtemplate'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['jobtemplate_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'JobTemplate'
m2m_table_name = db.shorten_name(u'main_jobtemplate_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('jobtemplate', models.ForeignKey(orm['main.jobtemplate'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['jobtemplate_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Team'
m2m_table_name = db.shorten_name(u'main_team_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('team', models.ForeignKey(orm['main.team'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['team_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Team'
m2m_table_name = db.shorten_name(u'main_team_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('team', models.ForeignKey(orm['main.team'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['team_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Project'
m2m_table_name = db.shorten_name(u'main_project_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('project', models.ForeignKey(orm[u'main.project'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['project_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Project'
m2m_table_name = db.shorten_name(u'main_project_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('project', models.ForeignKey(orm[u'main.project'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['project_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Permission'
m2m_table_name = db.shorten_name(u'main_permission_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('permission', models.ForeignKey(orm['main.permission'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['permission_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Permission'
m2m_table_name = db.shorten_name(u'main_permission_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('permission', models.ForeignKey(orm['main.permission'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['permission_id', 'audittrail_id'])
# Adding M2M table for field tags on 'VariableData'
m2m_table_name = db.shorten_name(u'main_variabledata_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('variabledata', models.ForeignKey(orm['main.variabledata'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['variabledata_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'VariableData'
m2m_table_name = db.shorten_name(u'main_variabledata_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('variabledata', models.ForeignKey(orm['main.variabledata'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['variabledata_id', 'audittrail_id'])
# Adding M2M table for field tags on 'Organization'
m2m_table_name = db.shorten_name(u'main_organization_tags')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('organization', models.ForeignKey(orm['main.organization'], null=False)),
('tag', models.ForeignKey(orm['main.tag'], null=False))
))
db.create_unique(m2m_table_name, ['organization_id', 'tag_id'])
# Adding M2M table for field audit_trail on 'Organization'
m2m_table_name = db.shorten_name(u'main_organization_audit_trail')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
('organization', models.ForeignKey(orm['main.organization'], null=False)),
('audittrail', models.ForeignKey(orm['main.audittrail'], null=False))
))
db.create_unique(m2m_table_name, ['organization_id', 'audittrail_id'])
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.credential': {
'Meta': {'object_name': 'Credential'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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', [], {'max_length': '512'}),
'ssh_key_data': ('django.db.models.fields.TextField', [], {'default': "''", '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'}),
'ssh_username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}),
'sudo_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}),
'sudo_username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}),
'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': {'unique_together': "(('name', 'inventory'),)", 'object_name': 'Group'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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'", 'to': "orm['main.Inventory']"}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
'parents': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'children'", 'blank': 'True', 'to': "orm['main.Group']"}),
'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True', 'null': 'True'}),
'variable_data': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'group'", 'unique': 'True', 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.VariableData']", 'blank': 'True', 'null': 'True'})
},
'main.host': {
'Meta': {'unique_together': "(('name', 'inventory'),)", 'object_name': 'Host'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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'", 'to': "orm['main.Inventory']"}),
'last_job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts_as_last_job+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Job']", 'blank': 'True', 'null': 'True'}),
'last_job_host_summary': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts_as_last_job_summary+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': u"orm['main.JobHostSummary']", 'blank': 'True', 'null': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True', 'null': 'True'}),
'variable_data': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'host'", 'unique': 'True', 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.VariableData']", 'blank': 'True', 'null': 'True'})
},
'main.inventory': {
'Meta': {'unique_together': "(('name', 'organization'),)", 'object_name': 'Inventory'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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'", 'to': "orm['main.Organization']"})
},
'main.job': {
'Meta': {'object_name': 'Job'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'cancel_flag': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'celery_task_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'job\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Credential']"}),
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}),
'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'jobs'", 'blank': 'True', 'through': u"orm['main.JobHostSummary']", 'to': "orm['main.Host']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}),
'job_args': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'null': 'True', 'blank': 'True'}),
'job_cwd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'null': 'True', 'blank': 'True'}),
'job_env': ('jsonfield.fields.JSONField', [], {'default': '{}', 'null': 'True', 'blank': 'True'}),
'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'null': 'True', 'blank': 'True'}),
'job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobTemplate']", 'blank': 'True', 'null': 'True'}),
'job_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
'playbook': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['main.Project']"}),
'result_stdout': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
'result_traceback': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
'status': ('django.db.models.fields.CharField', [], {'default': "'new'", 'max_length': '20'}),
'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'})
},
'main.jobevent': {
'Meta': {'ordering': "('pk',)", 'object_name': 'JobEvent'},
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}),
'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'host': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_events'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Host']", 'blank': 'True', 'null': 'True'}),
'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'job_events'", 'blank': 'True', 'to': "orm['main.Host']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_events'", 'to': "orm['main.Job']"}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobEvent']", 'blank': 'True', 'null': 'True'}),
'play': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True', 'null': 'True'}),
'task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True', 'null': 'True'})
},
u'main.jobhostsummary': {
'Meta': {'ordering': "('-pk',)", 'unique_together': "[('job', 'host')]", 'object_name': 'JobHostSummary'},
'changed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'dark': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'host': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_host_summaries'", 'to': "orm['main.Host']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_host_summaries'", 'to': "orm['main.Job']"}),
'ok': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'processed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
'skipped': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
},
'main.jobtemplate': {
'Meta': {'object_name': 'JobTemplate'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'jobtemplate\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_templates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}),
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}),
'host_config_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True', 'null': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_templates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}),
'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'null': 'True', 'blank': 'True'}),
'job_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}),
'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_templates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['main.Project']"}),
'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'})
},
'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']"}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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']"}),
'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'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
'permission_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['main.Project']"}),
'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'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'project\', \'app_label\': u\'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'})
},
'main.team': {
'Meta': {'object_name': 'Team'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'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': "'teams'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}),
'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['main.Project']"}),
'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'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': '"{\'class\': \'variabledata\', \'app_label\': \'main\'}(class)s_created"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}),
'data': ('django.db.models.fields.TextField', [], {'default': "''"}),
'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', [], {'max_length': '512'})
},
u'taggit.tag': {
'Meta': {'object_name': 'Tag'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'})
},
u'taggit.taggeditem': {
'Meta': {'object_name': 'TaggedItem'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_tagged_items'", 'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}),
'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_items'", 'to': u"orm['taggit.Tag']"})
}
}
complete_apps = ['main']