From 783e86bd41e912ab43b3bf3e2170d17a6670a53f Mon Sep 17 00:00:00 2001 From: Wayne Witzel III Date: Mon, 12 Dec 2016 14:44:22 -0500 Subject: [PATCH] Consolidate 3.1.0 migrations --- .../migrations/0034_v310_add_workflows.py | 109 ---- awx/main/migrations/0034_v310_release.py | 611 ++++++++++++++++++ .../0035_v310_modify_ha_instance.py | 23 - .../migrations/0036_v310_jobevent_uuid.py | 19 - .../0037_v310_remove_tower_settings.py | 22 - .../0038_v310_job_allow_simultaneous.py | 19 - .../0039_v310_workflow_rbac_prompts.py | 82 --- awx/main/migrations/0040_v310_channelgroup.py | 22 - awx/main/migrations/0041_v310_artifacts.py | 25 - awx/main/migrations/0042_v310_job_timeout.py | 44 -- .../migrations/0043_v310_executionnode.py | 19 - awx/main/migrations/0044_v310_scm_revision.py | 30 - .../0045_v310_project_playbook_files.py | 20 - .../migrations/0046_v310_job_event_stdout.py | 96 --- awx/main/migrations/0047_v310_tower_state.py | 24 - .../migrations/0048_v310_instance_capacity.py | 19 - .../migrations/0049_v310_workflow_surveys.py | 30 - .../migrations/0050_v310_JSONField_changes.py | 90 --- .../0051_v310_job_project_update.py | 20 - .../0052_v310_inventory_name_non_unique.py | 19 - .../0053_v310_update_timeout_field_type.py | 44 -- .../migrations/0054_text_and_has_schedules.py | 133 ---- 22 files changed, 611 insertions(+), 909 deletions(-) delete mode 100644 awx/main/migrations/0034_v310_add_workflows.py create mode 100644 awx/main/migrations/0034_v310_release.py delete mode 100644 awx/main/migrations/0035_v310_modify_ha_instance.py delete mode 100644 awx/main/migrations/0036_v310_jobevent_uuid.py delete mode 100644 awx/main/migrations/0037_v310_remove_tower_settings.py delete mode 100644 awx/main/migrations/0038_v310_job_allow_simultaneous.py delete mode 100644 awx/main/migrations/0039_v310_workflow_rbac_prompts.py delete mode 100644 awx/main/migrations/0040_v310_channelgroup.py delete mode 100644 awx/main/migrations/0041_v310_artifacts.py delete mode 100644 awx/main/migrations/0042_v310_job_timeout.py delete mode 100644 awx/main/migrations/0043_v310_executionnode.py delete mode 100644 awx/main/migrations/0044_v310_scm_revision.py delete mode 100644 awx/main/migrations/0045_v310_project_playbook_files.py delete mode 100644 awx/main/migrations/0046_v310_job_event_stdout.py delete mode 100644 awx/main/migrations/0047_v310_tower_state.py delete mode 100644 awx/main/migrations/0048_v310_instance_capacity.py delete mode 100644 awx/main/migrations/0049_v310_workflow_surveys.py delete mode 100644 awx/main/migrations/0050_v310_JSONField_changes.py delete mode 100644 awx/main/migrations/0051_v310_job_project_update.py delete mode 100644 awx/main/migrations/0052_v310_inventory_name_non_unique.py delete mode 100644 awx/main/migrations/0053_v310_update_timeout_field_type.py delete mode 100644 awx/main/migrations/0054_text_and_has_schedules.py diff --git a/awx/main/migrations/0034_v310_add_workflows.py b/awx/main/migrations/0034_v310_add_workflows.py deleted file mode 100644 index 4dfb84177a..0000000000 --- a/awx/main/migrations/0034_v310_add_workflows.py +++ /dev/null @@ -1,109 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import awx.main.models.notifications -import django.db.models.deletion -import awx.main.models.workflow -import awx.main.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0033_v303_v245_host_variable_fix'), - ] - - operations = [ - migrations.AlterField( - model_name='unifiedjob', - name='launch_type', - field=models.CharField(default=b'manual', max_length=20, editable=False, choices=[(b'manual', 'Manual'), (b'relaunch', 'Relaunch'), (b'callback', 'Callback'), (b'scheduled', 'Scheduled'), (b'dependency', 'Dependency'), (b'workflow', 'Workflow')]), - ), - migrations.CreateModel( - name='WorkflowJob', - fields=[ - ('unifiedjob_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='main.UnifiedJob')), - ('extra_vars', models.TextField(default=b'', blank=True)), - ], - options={ - 'ordering': ('id',), - }, - bases=('main.unifiedjob', models.Model, awx.main.models.notifications.JobNotificationMixin, awx.main.models.workflow.WorkflowJobInheritNodesMixin), - ), - migrations.CreateModel( - name='WorkflowJobNode', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('created', models.DateTimeField(default=None, editable=False)), - ('modified', models.DateTimeField(default=None, editable=False)), - ('always_nodes', models.ManyToManyField(related_name='workflowjobnodes_always', to='main.WorkflowJobNode', blank=True)), - ('failure_nodes', models.ManyToManyField(related_name='workflowjobnodes_failure', to='main.WorkflowJobNode', blank=True)), - ('job', models.OneToOneField(related_name='unified_job_node', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJob', null=True)), - ('success_nodes', models.ManyToManyField(related_name='workflowjobnodes_success', to='main.WorkflowJobNode', blank=True)), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='WorkflowJobTemplate', - fields=[ - ('unifiedjobtemplate_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='main.UnifiedJobTemplate')), - ('extra_vars', models.TextField(default=b'', blank=True)), - ('admin_role', awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'singleton:system_administrator', to='main.Role', null=b'True')), - ], - bases=('main.unifiedjobtemplate', models.Model), - ), - migrations.CreateModel( - name='WorkflowJobTemplateNode', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('created', models.DateTimeField(default=None, editable=False)), - ('modified', models.DateTimeField(default=None, editable=False)), - ('always_nodes', models.ManyToManyField(related_name='workflowjobtemplatenodes_always', to='main.WorkflowJobTemplateNode', blank=True)), - ('failure_nodes', models.ManyToManyField(related_name='workflowjobtemplatenodes_failure', to='main.WorkflowJobTemplateNode', blank=True)), - ('success_nodes', models.ManyToManyField(related_name='workflowjobtemplatenodes_success', to='main.WorkflowJobTemplateNode', blank=True)), - ('unified_job_template', models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJobTemplate', null=True)), - ('workflow_job_template', models.ForeignKey(related_name='workflow_job_template_nodes', default=None, blank=True, to='main.WorkflowJobTemplate', null=True)), - ], - options={ - 'abstract': False, - }, - ), - migrations.AddField( - model_name='workflowjobnode', - name='unified_job_template', - field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJobTemplate', null=True), - ), - migrations.AddField( - model_name='workflowjobnode', - name='workflow_job', - field=models.ForeignKey(related_name='workflow_job_nodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.WorkflowJob', null=True), - ), - migrations.AddField( - model_name='workflowjob', - name='workflow_job_template', - field=models.ForeignKey(related_name='workflow_jobs', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.WorkflowJobTemplate', null=True), - ), - migrations.AddField( - model_name='activitystream', - name='workflow_job', - field=models.ManyToManyField(to='main.WorkflowJob', blank=True), - ), - migrations.AddField( - model_name='activitystream', - name='workflow_job_node', - field=models.ManyToManyField(to='main.WorkflowJobNode', blank=True), - ), - migrations.AddField( - model_name='activitystream', - name='workflow_job_template', - field=models.ManyToManyField(to='main.WorkflowJobTemplate', blank=True), - ), - migrations.AddField( - model_name='activitystream', - name='workflow_job_template_node', - field=models.ManyToManyField(to='main.WorkflowJobTemplateNode', blank=True), - ), - ] diff --git a/awx/main/migrations/0034_v310_release.py b/awx/main/migrations/0034_v310_release.py new file mode 100644 index 0000000000..e86691d2e1 --- /dev/null +++ b/awx/main/migrations/0034_v310_release.py @@ -0,0 +1,611 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import awx.main.models.notifications +import jsonfield.fields +import django.db.models.deletion +import awx.main.models.workflow +import awx.main.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0033_v303_v245_host_variable_fix'), + ] + + operations = [ + # Create ChannelGroup table + migrations.CreateModel( + name='ChannelGroup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('group', models.CharField(unique=True, max_length=200)), + ('channels', models.TextField()), + ], + ), + # Allow simultaneous Job + migrations.AddField( + model_name='job', + name='allow_simultaneous', + field=models.BooleanField(default=False), + ), + # Remove Tower settings, these settings are now in separate awx.conf app. + migrations.RemoveField( + model_name='towersettings', + name='user', + ), + migrations.DeleteModel( + name='TowerSettings', + ), + # Job Event UUID + migrations.AddField( + model_name='jobevent', + name='uuid', + field=models.CharField(default=b'', max_length=1024, editable=False), + ), + # Modify the HA Instance + migrations.RemoveField( + model_name='instance', + name='primary', + ), + migrations.AlterField( + model_name='instance', + name='uuid', + field=models.CharField(max_length=40), + ), + # Add Workflows + migrations.AlterField( + model_name='unifiedjob', + name='launch_type', + field=models.CharField(default=b'manual', max_length=20, editable=False, choices=[(b'manual', 'Manual'), (b'relaunch', 'Relaunch'), (b'callback', 'Callback'), (b'scheduled', 'Scheduled'), (b'dependency', 'Dependency'), (b'workflow', 'Workflow')]), + ), + migrations.CreateModel( + name='WorkflowJob', + fields=[ + ('unifiedjob_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='main.UnifiedJob')), + ('extra_vars', models.TextField(default=b'', blank=True)), + ], + options={ + 'ordering': ('id',), + }, + bases=('main.unifiedjob', models.Model, awx.main.models.notifications.JobNotificationMixin, awx.main.models.workflow.WorkflowJobInheritNodesMixin), + ), + migrations.CreateModel( + name='WorkflowJobNode', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('created', models.DateTimeField(default=None, editable=False)), + ('modified', models.DateTimeField(default=None, editable=False)), + ('always_nodes', models.ManyToManyField(related_name='workflowjobnodes_always', to='main.WorkflowJobNode', blank=True)), + ('failure_nodes', models.ManyToManyField(related_name='workflowjobnodes_failure', to='main.WorkflowJobNode', blank=True)), + ('job', models.OneToOneField(related_name='unified_job_node', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJob', null=True)), + ('success_nodes', models.ManyToManyField(related_name='workflowjobnodes_success', to='main.WorkflowJobNode', blank=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='WorkflowJobTemplate', + fields=[ + ('unifiedjobtemplate_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='main.UnifiedJobTemplate')), + ('extra_vars', models.TextField(default=b'', blank=True)), + ('admin_role', awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'singleton:system_administrator', to='main.Role', null=b'True')), + ], + bases=('main.unifiedjobtemplate', models.Model), + ), + migrations.CreateModel( + name='WorkflowJobTemplateNode', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('created', models.DateTimeField(default=None, editable=False)), + ('modified', models.DateTimeField(default=None, editable=False)), + ('always_nodes', models.ManyToManyField(related_name='workflowjobtemplatenodes_always', to='main.WorkflowJobTemplateNode', blank=True)), + ('failure_nodes', models.ManyToManyField(related_name='workflowjobtemplatenodes_failure', to='main.WorkflowJobTemplateNode', blank=True)), + ('success_nodes', models.ManyToManyField(related_name='workflowjobtemplatenodes_success', to='main.WorkflowJobTemplateNode', blank=True)), + ('unified_job_template', models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJobTemplate', null=True)), + ('workflow_job_template', models.ForeignKey(related_name='workflow_job_template_nodes', default=None, blank=True, to='main.WorkflowJobTemplate', null=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.AddField( + model_name='workflowjobnode', + name='unified_job_template', + field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.UnifiedJobTemplate', null=True), + ), + migrations.AddField( + model_name='workflowjobnode', + name='workflow_job', + field=models.ForeignKey(related_name='workflow_job_nodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.WorkflowJob', null=True), + ), + migrations.AddField( + model_name='workflowjob', + name='workflow_job_template', + field=models.ForeignKey(related_name='workflow_jobs', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.WorkflowJobTemplate', null=True), + ), + migrations.AddField( + model_name='activitystream', + name='workflow_job', + field=models.ManyToManyField(to='main.WorkflowJob', blank=True), + ), + migrations.AddField( + model_name='activitystream', + name='workflow_job_node', + field=models.ManyToManyField(to='main.WorkflowJobNode', blank=True), + ), + migrations.AddField( + model_name='activitystream', + name='workflow_job_template', + field=models.ManyToManyField(to='main.WorkflowJobTemplate', blank=True), + ), + migrations.AddField( + model_name='activitystream', + name='workflow_job_template_node', + field=models.ManyToManyField(to='main.WorkflowJobTemplateNode', blank=True), + ), + # Workflow RBAC prompts + migrations.AddField( + model_name='workflowjobnode', + name='char_prompts', + field=jsonfield.fields.JSONField(default={}, blank=True), + ), + migrations.AddField( + model_name='workflowjobnode', + name='credential', + field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), + ), + migrations.AddField( + model_name='workflowjobnode', + name='inventory', + field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Inventory', null=True), + ), + migrations.AddField( + model_name='workflowjobtemplate', + name='execute_role', + field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'admin_role'], to='main.Role', null=b'True'), + ), + migrations.AddField( + model_name='workflowjobtemplate', + name='organization', + field=models.ForeignKey(related_name='workflows', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='main.Organization', null=True), + ), + migrations.AddField( + model_name='workflowjobtemplate', + name='read_role', + field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_auditor', b'organization.auditor_role', b'execute_role', b'admin_role'], to='main.Role', null=b'True'), + ), + migrations.AddField( + model_name='workflowjobtemplatenode', + name='char_prompts', + field=jsonfield.fields.JSONField(default={}, blank=True), + ), + migrations.AddField( + model_name='workflowjobtemplatenode', + name='credential', + field=models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), + ), + migrations.AddField( + model_name='workflowjobtemplatenode', + name='inventory', + field=models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Inventory', null=True), + ), + migrations.AlterField( + model_name='workflowjobnode', + name='unified_job_template', + field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, to='main.UnifiedJobTemplate', null=True), + ), + migrations.AlterField( + model_name='workflowjobnode', + name='workflow_job', + field=models.ForeignKey(related_name='workflow_job_nodes', default=None, blank=True, to='main.WorkflowJob', null=True), + ), + migrations.AlterField( + model_name='workflowjobtemplate', + name='admin_role', + field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_administrator', b'organization.admin_role'], to='main.Role', null=b'True'), + ), + migrations.AlterField( + model_name='workflowjobtemplatenode', + name='unified_job_template', + field=models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, to='main.UnifiedJobTemplate', null=True), + ), + # Job artifacts + migrations.AddField( + model_name='job', + name='artifacts', + field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AddField( + model_name='workflowjobnode', + name='ancestor_artifacts', + field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), + ), + # Job timeout settings + migrations.AddField( + model_name='inventorysource', + name='timeout', + field=models.IntegerField(default=0, blank=True), + ), + migrations.AddField( + model_name='inventoryupdate', + name='timeout', + field=models.IntegerField(default=0, blank=True), + ), + migrations.AddField( + model_name='job', + name='timeout', + field=models.IntegerField(default=0, blank=True), + ), + migrations.AddField( + model_name='jobtemplate', + name='timeout', + field=models.IntegerField(default=0, blank=True), + ), + migrations.AddField( + model_name='project', + name='timeout', + field=models.IntegerField(default=0, blank=True), + ), + migrations.AddField( + model_name='projectupdate', + name='timeout', + field=models.IntegerField(default=0, blank=True), + ), + # Execution Node + migrations.AddField( + model_name='unifiedjob', + name='execution_node', + field=models.TextField(default=b'', editable=False, blank=True), + ), + # SCM Revision + migrations.AddField( + model_name='project', + name='scm_revision', + field=models.CharField(default=b'', editable=False, max_length=1024, blank=True, help_text='The last revision fetched by a project update', verbose_name='SCM Revision'), + ), + migrations.AddField( + model_name='projectupdate', + name='job_type', + field=models.CharField(default=b'check', max_length=64, choices=[(b'run', 'Run'), (b'check', 'Check')]), + ), + migrations.AddField( + model_name='job', + name='scm_revision', + field=models.CharField(default=b'', editable=False, max_length=1024, blank=True, help_text='The SCM Revision from the Project used for this job, if available', verbose_name='SCM Revision'), + ), + # Project Playbook Files + migrations.AddField( + model_name='project', + name='playbook_files', + field=jsonfield.fields.JSONField(default=[], help_text='List of playbooks found in the project', verbose_name='Playbook Files', editable=False, blank=True), + ), + # Job events to stdout + migrations.AddField( + model_name='adhoccommandevent', + name='end_line', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='adhoccommandevent', + name='start_line', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='adhoccommandevent', + name='stdout', + field=models.TextField(default=b'', editable=False), + ), + migrations.AddField( + model_name='adhoccommandevent', + name='uuid', + field=models.CharField(default=b'', max_length=1024, editable=False), + ), + migrations.AddField( + model_name='adhoccommandevent', + name='verbosity', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='jobevent', + name='end_line', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='jobevent', + name='playbook', + field=models.CharField(default=b'', max_length=1024, editable=False), + ), + migrations.AddField( + model_name='jobevent', + name='start_line', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='jobevent', + name='stdout', + field=models.TextField(default=b'', editable=False), + ), + migrations.AddField( + model_name='jobevent', + name='verbosity', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AlterField( + model_name='adhoccommandevent', + name='counter', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AlterField( + model_name='adhoccommandevent', + name='event', + field=models.CharField(max_length=100, choices=[(b'runner_on_failed', 'Host Failed'), (b'runner_on_ok', 'Host OK'), (b'runner_on_unreachable', 'Host Unreachable'), (b'runner_on_skipped', 'Host Skipped'), (b'debug', 'Debug'), (b'verbose', 'Verbose'), (b'deprecated', 'Deprecated'), (b'warning', 'Warning'), (b'system_warning', 'System Warning'), (b'error', 'Error')]), + ), + migrations.AlterField( + model_name='jobevent', + name='counter', + field=models.PositiveIntegerField(default=0, editable=False), + ), + migrations.AlterField( + model_name='jobevent', + name='event', + field=models.CharField(max_length=100, choices=[(b'runner_on_failed', 'Host Failed'), (b'runner_on_ok', 'Host OK'), (b'runner_on_error', 'Host Failure'), (b'runner_on_skipped', 'Host Skipped'), (b'runner_on_unreachable', 'Host Unreachable'), (b'runner_on_no_hosts', 'No Hosts Remaining'), (b'runner_on_async_poll', 'Host Polling'), (b'runner_on_async_ok', 'Host Async OK'), (b'runner_on_async_failed', 'Host Async Failure'), (b'runner_item_on_ok', 'Item OK'), (b'runner_item_on_failed', 'Item Failed'), (b'runner_item_on_skipped', 'Item Skipped'), (b'runner_retry', 'Host Retry'), (b'runner_on_file_diff', 'File Difference'), (b'playbook_on_start', 'Playbook Started'), (b'playbook_on_notify', 'Running Handlers'), (b'playbook_on_include', 'Including File'), (b'playbook_on_no_hosts_matched', 'No Hosts Matched'), (b'playbook_on_no_hosts_remaining', 'No Hosts Remaining'), (b'playbook_on_task_start', 'Task Started'), (b'playbook_on_vars_prompt', 'Variables Prompted'), (b'playbook_on_setup', 'Gathering Facts'), (b'playbook_on_import_for_host', 'internal: on Import for Host'), (b'playbook_on_not_import_for_host', 'internal: on Not Import for Host'), (b'playbook_on_play_start', 'Play Started'), (b'playbook_on_stats', 'Playbook Complete'), (b'debug', 'Debug'), (b'verbose', 'Verbose'), (b'deprecated', 'Deprecated'), (b'warning', 'Warning'), (b'system_warning', 'System Warning'), (b'error', 'Error')]), + ), + migrations.AlterUniqueTogether( + name='adhoccommandevent', + unique_together=set([]), + ), + migrations.AlterIndexTogether( + name='adhoccommandevent', + index_together=set([('ad_hoc_command', 'event'), ('ad_hoc_command', 'uuid'), ('ad_hoc_command', 'end_line'), ('ad_hoc_command', 'start_line')]), + ), + migrations.AlterIndexTogether( + name='jobevent', + index_together=set([('job', 'event'), ('job', 'parent'), ('job', 'start_line'), ('job', 'uuid'), ('job', 'end_line')]), + ), + # Tower state + migrations.CreateModel( + name='TowerScheduleState', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('schedule_last_run', models.DateTimeField(auto_now_add=True)), + ], + options={ + 'abstract': False, + }, + ), + # Tower instance capacity + migrations.AddField( + model_name='instance', + name='capacity', + field=models.PositiveIntegerField(default=100, editable=False), + ), + # Workflow surveys + migrations.AddField( + model_name='workflowjob', + name='survey_passwords', + field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AddField( + model_name='workflowjobtemplate', + name='survey_enabled', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='workflowjobtemplate', + name='survey_spec', + field=jsonfield.fields.JSONField(default={}, blank=True), + ), + # JSON field changes + migrations.AlterField( + model_name='adhoccommandevent', + name='event_data', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + migrations.AlterField( + model_name='job', + name='artifacts', + field=awx.main.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AlterField( + model_name='job', + name='survey_passwords', + field=awx.main.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AlterField( + model_name='jobevent', + name='event_data', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + migrations.AlterField( + model_name='jobtemplate', + name='survey_spec', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + migrations.AlterField( + model_name='notification', + name='body', + field=awx.main.fields.JSONField(default=dict, blank=True), + ), + migrations.AlterField( + model_name='notificationtemplate', + name='notification_configuration', + field=awx.main.fields.JSONField(default=dict), + ), + migrations.AlterField( + model_name='project', + name='playbook_files', + field=awx.main.fields.JSONField(default=[], help_text='List of playbooks found in the project', verbose_name='Playbook Files', editable=False, blank=True), + ), + migrations.AlterField( + model_name='schedule', + name='extra_data', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + migrations.AlterField( + model_name='unifiedjob', + name='job_env', + field=awx.main.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AlterField( + model_name='workflowjob', + name='survey_passwords', + field=awx.main.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AlterField( + model_name='workflowjobnode', + name='ancestor_artifacts', + field=awx.main.fields.JSONField(default={}, editable=False, blank=True), + ), + migrations.AlterField( + model_name='workflowjobnode', + name='char_prompts', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + migrations.AlterField( + model_name='workflowjobtemplate', + name='survey_spec', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + migrations.AlterField( + model_name='workflowjobtemplatenode', + name='char_prompts', + field=awx.main.fields.JSONField(default={}, blank=True), + ), + # Job Project Update + migrations.AddField( + model_name='job', + name='project_update', + field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.ProjectUpdate', help_text='The SCM Refresh task used to make sure the playbooks were available for the job run', null=True), + ), + # Inventory, non-unique name + migrations.AlterField( + model_name='inventory', + name='name', + field=models.CharField(max_length=512), + ), + # Text and has schedules + migrations.RemoveField( + model_name='unifiedjobtemplate', + name='has_schedules', + ), + migrations.AlterField( + model_name='host', + name='instance_id', + field=models.CharField(default=b'', help_text='The value used by the remote inventory source to uniquely identify the host', max_length=1024, blank=True), + ), + migrations.AlterField( + model_name='project', + name='scm_clean', + field=models.BooleanField(default=False, help_text='Discard any local changes before syncing the project.'), + ), + migrations.AlterField( + model_name='project', + name='scm_delete_on_update', + field=models.BooleanField(default=False, help_text='Delete the project before syncing.'), + ), + migrations.AlterField( + model_name='project', + name='scm_type', + field=models.CharField(default=b'', choices=[(b'', 'Manual'), (b'git', 'Git'), (b'hg', 'Mercurial'), (b'svn', 'Subversion')], max_length=8, blank=True, help_text='Specifies the source control system used to store the project.', verbose_name='SCM Type'), + ), + migrations.AlterField( + model_name='project', + name='scm_update_cache_timeout', + field=models.PositiveIntegerField(default=0, help_text='The number of seconds after the last project update ran that a newproject update will be launched as a job dependency.', blank=True), + ), + migrations.AlterField( + model_name='project', + name='scm_update_on_launch', + field=models.BooleanField(default=False, help_text='Update the project when a job is launched that uses the project.'), + ), + migrations.AlterField( + model_name='project', + name='scm_url', + field=models.CharField(default=b'', help_text='The location where the project is stored.', max_length=1024, verbose_name='SCM URL', blank=True), + ), + migrations.AlterField( + model_name='project', + name='timeout', + field=models.IntegerField(default=0, help_text='The amount of time to run before the task is canceled.', blank=True), + ), + migrations.AlterField( + model_name='projectupdate', + name='scm_clean', + field=models.BooleanField(default=False, help_text='Discard any local changes before syncing the project.'), + ), + migrations.AlterField( + model_name='projectupdate', + name='scm_delete_on_update', + field=models.BooleanField(default=False, help_text='Delete the project before syncing.'), + ), + migrations.AlterField( + model_name='projectupdate', + name='scm_type', + field=models.CharField(default=b'', choices=[(b'', 'Manual'), (b'git', 'Git'), (b'hg', 'Mercurial'), (b'svn', 'Subversion')], max_length=8, blank=True, help_text='Specifies the source control system used to store the project.', verbose_name='SCM Type'), + ), + migrations.AlterField( + model_name='projectupdate', + name='scm_url', + field=models.CharField(default=b'', help_text='The location where the project is stored.', max_length=1024, verbose_name='SCM URL', blank=True), + ), + migrations.AlterField( + model_name='projectupdate', + name='timeout', + field=models.IntegerField(default=0, help_text='The amount of time to run before the task is canceled.', blank=True), + ), + migrations.AlterField( + model_name='schedule', + name='dtend', + field=models.DateTimeField(default=None, help_text='The last occurrence of the schedule occurs before this time, aftewards the schedule expires.', null=True, editable=False), + ), + migrations.AlterField( + model_name='schedule', + name='dtstart', + field=models.DateTimeField(default=None, help_text='The first occurrence of the schedule occurs on or after this time.', null=True, editable=False), + ), + migrations.AlterField( + model_name='schedule', + name='enabled', + field=models.BooleanField(default=True, help_text='Enables processing of this schedule by Tower.'), + ), + migrations.AlterField( + model_name='schedule', + name='next_run', + field=models.DateTimeField(default=None, help_text='The next time that the scheduled action will run.', null=True, editable=False), + ), + migrations.AlterField( + model_name='schedule', + name='rrule', + field=models.CharField(help_text='A value representing the schedules iCal recurrence rule.', max_length=255), + ), + migrations.AlterField( + model_name='unifiedjob', + name='elapsed', + field=models.DecimalField(help_text='Elapsed time in seconds that the job ran.', editable=False, max_digits=12, decimal_places=3), + ), + migrations.AlterField( + model_name='unifiedjob', + name='execution_node', + field=models.TextField(default=b'', help_text='The Tower node the job executed on.', editable=False, blank=True), + ), + migrations.AlterField( + model_name='unifiedjob', + name='finished', + field=models.DateTimeField(default=None, help_text='The date and time the job finished execution.', null=True, editable=False), + ), + migrations.AlterField( + model_name='unifiedjob', + name='job_explanation', + field=models.TextField(default=b'', help_text="A status field to indicate the state of the job if it wasn't able to run and capture stdout", editable=False, blank=True), + ), + migrations.AlterField( + model_name='unifiedjob', + name='started', + field=models.DateTimeField(default=None, help_text='The date and time the job was queued for starting.', null=True, editable=False), + ), + + ] diff --git a/awx/main/migrations/0035_v310_modify_ha_instance.py b/awx/main/migrations/0035_v310_modify_ha_instance.py deleted file mode 100644 index fa58ec094c..0000000000 --- a/awx/main/migrations/0035_v310_modify_ha_instance.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0034_v310_add_workflows'), - ] - - operations = [ - migrations.RemoveField( - model_name='instance', - name='primary', - ), - migrations.AlterField( - model_name='instance', - name='uuid', - field=models.CharField(max_length=40), - ), - ] diff --git a/awx/main/migrations/0036_v310_jobevent_uuid.py b/awx/main/migrations/0036_v310_jobevent_uuid.py deleted file mode 100644 index b097c2d1f1..0000000000 --- a/awx/main/migrations/0036_v310_jobevent_uuid.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0035_v310_modify_ha_instance'), - ] - - operations = [ - migrations.AddField( - model_name='jobevent', - name='uuid', - field=models.CharField(default=b'', max_length=1024, editable=False), - ), - ] diff --git a/awx/main/migrations/0037_v310_remove_tower_settings.py b/awx/main/migrations/0037_v310_remove_tower_settings.py deleted file mode 100644 index 00ee17f098..0000000000 --- a/awx/main/migrations/0037_v310_remove_tower_settings.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0036_v310_jobevent_uuid'), - ] - - # These settings are now in the separate awx.conf app. - operations = [ - migrations.RemoveField( - model_name='towersettings', - name='user', - ), - migrations.DeleteModel( - name='TowerSettings', - ), - ] diff --git a/awx/main/migrations/0038_v310_job_allow_simultaneous.py b/awx/main/migrations/0038_v310_job_allow_simultaneous.py deleted file mode 100644 index 1ec3412fb4..0000000000 --- a/awx/main/migrations/0038_v310_job_allow_simultaneous.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0037_v310_remove_tower_settings'), - ] - - operations = [ - migrations.AddField( - model_name='job', - name='allow_simultaneous', - field=models.BooleanField(default=False), - ), - ] diff --git a/awx/main/migrations/0039_v310_workflow_rbac_prompts.py b/awx/main/migrations/0039_v310_workflow_rbac_prompts.py deleted file mode 100644 index 35db9c5575..0000000000 --- a/awx/main/migrations/0039_v310_workflow_rbac_prompts.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import jsonfield.fields -import django.db.models.deletion -import awx.main.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0038_v310_job_allow_simultaneous'), - ] - - operations = [ - migrations.AddField( - model_name='workflowjobnode', - name='char_prompts', - field=jsonfield.fields.JSONField(default={}, blank=True), - ), - migrations.AddField( - model_name='workflowjobnode', - name='credential', - field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), - ), - migrations.AddField( - model_name='workflowjobnode', - name='inventory', - field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Inventory', null=True), - ), - migrations.AddField( - model_name='workflowjobtemplate', - name='execute_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='workflowjobtemplate', - name='organization', - field=models.ForeignKey(related_name='workflows', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='main.Organization', null=True), - ), - migrations.AddField( - model_name='workflowjobtemplate', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_auditor', b'organization.auditor_role', b'execute_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='workflowjobtemplatenode', - name='char_prompts', - field=jsonfield.fields.JSONField(default={}, blank=True), - ), - migrations.AddField( - model_name='workflowjobtemplatenode', - name='credential', - field=models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), - ), - migrations.AddField( - model_name='workflowjobtemplatenode', - name='inventory', - field=models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Inventory', null=True), - ), - migrations.AlterField( - model_name='workflowjobnode', - name='unified_job_template', - field=models.ForeignKey(related_name='workflowjobnodes', on_delete=django.db.models.deletion.SET_NULL, default=None, to='main.UnifiedJobTemplate', null=True), - ), - migrations.AlterField( - model_name='workflowjobnode', - name='workflow_job', - field=models.ForeignKey(related_name='workflow_job_nodes', default=None, blank=True, to='main.WorkflowJob', null=True), - ), - migrations.AlterField( - model_name='workflowjobtemplate', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_administrator', b'organization.admin_role'], to='main.Role', null=b'True'), - ), - migrations.AlterField( - model_name='workflowjobtemplatenode', - name='unified_job_template', - field=models.ForeignKey(related_name='workflowjobtemplatenodes', on_delete=django.db.models.deletion.SET_NULL, default=None, to='main.UnifiedJobTemplate', null=True), - ), - ] diff --git a/awx/main/migrations/0040_v310_channelgroup.py b/awx/main/migrations/0040_v310_channelgroup.py deleted file mode 100644 index 51f2016926..0000000000 --- a/awx/main/migrations/0040_v310_channelgroup.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0039_v310_workflow_rbac_prompts'), - ] - - operations = [ - migrations.CreateModel( - name='ChannelGroup', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('group', models.CharField(unique=True, max_length=200)), - ('channels', models.TextField()), - ], - ), - ] diff --git a/awx/main/migrations/0041_v310_artifacts.py b/awx/main/migrations/0041_v310_artifacts.py deleted file mode 100644 index f54cff411b..0000000000 --- a/awx/main/migrations/0041_v310_artifacts.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0040_v310_channelgroup'), - ] - - operations = [ - migrations.AddField( - model_name='job', - name='artifacts', - field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AddField( - model_name='workflowjobnode', - name='ancestor_artifacts', - field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), - ), - ] diff --git a/awx/main/migrations/0042_v310_job_timeout.py b/awx/main/migrations/0042_v310_job_timeout.py deleted file mode 100644 index 4d49e5841a..0000000000 --- a/awx/main/migrations/0042_v310_job_timeout.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0041_v310_artifacts'), - ] - - operations = [ - migrations.AddField( - model_name='inventorysource', - name='timeout', - field=models.PositiveIntegerField(default=0, blank=True), - ), - migrations.AddField( - model_name='inventoryupdate', - name='timeout', - field=models.PositiveIntegerField(default=0, blank=True), - ), - migrations.AddField( - model_name='job', - name='timeout', - field=models.PositiveIntegerField(default=0, blank=True), - ), - migrations.AddField( - model_name='jobtemplate', - name='timeout', - field=models.PositiveIntegerField(default=0, blank=True), - ), - migrations.AddField( - model_name='project', - name='timeout', - field=models.PositiveIntegerField(default=0, blank=True), - ), - migrations.AddField( - model_name='projectupdate', - name='timeout', - field=models.PositiveIntegerField(default=0, blank=True), - ), - ] diff --git a/awx/main/migrations/0043_v310_executionnode.py b/awx/main/migrations/0043_v310_executionnode.py deleted file mode 100644 index bab47ad032..0000000000 --- a/awx/main/migrations/0043_v310_executionnode.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0042_v310_job_timeout'), - ] - - operations = [ - migrations.AddField( - model_name='unifiedjob', - name='execution_node', - field=models.TextField(default=b'', editable=False, blank=True), - ), - ] diff --git a/awx/main/migrations/0044_v310_scm_revision.py b/awx/main/migrations/0044_v310_scm_revision.py deleted file mode 100644 index 40ee1f8596..0000000000 --- a/awx/main/migrations/0044_v310_scm_revision.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0043_v310_executionnode'), - ] - - operations = [ - migrations.AddField( - model_name='project', - name='scm_revision', - field=models.CharField(default=b'', editable=False, max_length=1024, blank=True, help_text='The last revision fetched by a project update', verbose_name='SCM Revision'), - ), - migrations.AddField( - model_name='projectupdate', - name='job_type', - field=models.CharField(default=b'check', max_length=64, choices=[(b'run', 'Run'), (b'check', 'Check')]), - ), - migrations.AddField( - model_name='job', - name='scm_revision', - field=models.CharField(default=b'', editable=False, max_length=1024, blank=True, help_text='The SCM Revision from the Project used for this job, if available', verbose_name='SCM Revision'), - ), - - ] diff --git a/awx/main/migrations/0045_v310_project_playbook_files.py b/awx/main/migrations/0045_v310_project_playbook_files.py deleted file mode 100644 index 77c7bfc8b7..0000000000 --- a/awx/main/migrations/0045_v310_project_playbook_files.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0044_v310_scm_revision'), - ] - - operations = [ - migrations.AddField( - model_name='project', - name='playbook_files', - field=jsonfield.fields.JSONField(default=[], help_text='List of playbooks found in the project', verbose_name='Playbook Files', editable=False, blank=True), - ), - ] diff --git a/awx/main/migrations/0046_v310_job_event_stdout.py b/awx/main/migrations/0046_v310_job_event_stdout.py deleted file mode 100644 index 7ff2ed8ade..0000000000 --- a/awx/main/migrations/0046_v310_job_event_stdout.py +++ /dev/null @@ -1,96 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0045_v310_project_playbook_files'), - ] - - operations = [ - migrations.AddField( - model_name='adhoccommandevent', - name='end_line', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AddField( - model_name='adhoccommandevent', - name='start_line', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AddField( - model_name='adhoccommandevent', - name='stdout', - field=models.TextField(default=b'', editable=False), - ), - migrations.AddField( - model_name='adhoccommandevent', - name='uuid', - field=models.CharField(default=b'', max_length=1024, editable=False), - ), - migrations.AddField( - model_name='adhoccommandevent', - name='verbosity', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AddField( - model_name='jobevent', - name='end_line', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AddField( - model_name='jobevent', - name='playbook', - field=models.CharField(default=b'', max_length=1024, editable=False), - ), - migrations.AddField( - model_name='jobevent', - name='start_line', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AddField( - model_name='jobevent', - name='stdout', - field=models.TextField(default=b'', editable=False), - ), - migrations.AddField( - model_name='jobevent', - name='verbosity', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AlterField( - model_name='adhoccommandevent', - name='counter', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AlterField( - model_name='adhoccommandevent', - name='event', - field=models.CharField(max_length=100, choices=[(b'runner_on_failed', 'Host Failed'), (b'runner_on_ok', 'Host OK'), (b'runner_on_unreachable', 'Host Unreachable'), (b'runner_on_skipped', 'Host Skipped'), (b'debug', 'Debug'), (b'verbose', 'Verbose'), (b'deprecated', 'Deprecated'), (b'warning', 'Warning'), (b'system_warning', 'System Warning'), (b'error', 'Error')]), - ), - migrations.AlterField( - model_name='jobevent', - name='counter', - field=models.PositiveIntegerField(default=0, editable=False), - ), - migrations.AlterField( - model_name='jobevent', - name='event', - field=models.CharField(max_length=100, choices=[(b'runner_on_failed', 'Host Failed'), (b'runner_on_ok', 'Host OK'), (b'runner_on_error', 'Host Failure'), (b'runner_on_skipped', 'Host Skipped'), (b'runner_on_unreachable', 'Host Unreachable'), (b'runner_on_no_hosts', 'No Hosts Remaining'), (b'runner_on_async_poll', 'Host Polling'), (b'runner_on_async_ok', 'Host Async OK'), (b'runner_on_async_failed', 'Host Async Failure'), (b'runner_item_on_ok', 'Item OK'), (b'runner_item_on_failed', 'Item Failed'), (b'runner_item_on_skipped', 'Item Skipped'), (b'runner_retry', 'Host Retry'), (b'runner_on_file_diff', 'File Difference'), (b'playbook_on_start', 'Playbook Started'), (b'playbook_on_notify', 'Running Handlers'), (b'playbook_on_include', 'Including File'), (b'playbook_on_no_hosts_matched', 'No Hosts Matched'), (b'playbook_on_no_hosts_remaining', 'No Hosts Remaining'), (b'playbook_on_task_start', 'Task Started'), (b'playbook_on_vars_prompt', 'Variables Prompted'), (b'playbook_on_setup', 'Gathering Facts'), (b'playbook_on_import_for_host', 'internal: on Import for Host'), (b'playbook_on_not_import_for_host', 'internal: on Not Import for Host'), (b'playbook_on_play_start', 'Play Started'), (b'playbook_on_stats', 'Playbook Complete'), (b'debug', 'Debug'), (b'verbose', 'Verbose'), (b'deprecated', 'Deprecated'), (b'warning', 'Warning'), (b'system_warning', 'System Warning'), (b'error', 'Error')]), - ), - migrations.AlterUniqueTogether( - name='adhoccommandevent', - unique_together=set([]), - ), - migrations.AlterIndexTogether( - name='adhoccommandevent', - index_together=set([('ad_hoc_command', 'event'), ('ad_hoc_command', 'uuid'), ('ad_hoc_command', 'end_line'), ('ad_hoc_command', 'start_line')]), - ), - migrations.AlterIndexTogether( - name='jobevent', - index_together=set([('job', 'event'), ('job', 'parent'), ('job', 'start_line'), ('job', 'uuid'), ('job', 'end_line')]), - ), - ] diff --git a/awx/main/migrations/0047_v310_tower_state.py b/awx/main/migrations/0047_v310_tower_state.py deleted file mode 100644 index 941dfd0ba2..0000000000 --- a/awx/main/migrations/0047_v310_tower_state.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0046_v310_job_event_stdout'), - ] - - operations = [ - migrations.CreateModel( - name='TowerScheduleState', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('schedule_last_run', models.DateTimeField(auto_now_add=True)), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/awx/main/migrations/0048_v310_instance_capacity.py b/awx/main/migrations/0048_v310_instance_capacity.py deleted file mode 100644 index 5f0795a4fd..0000000000 --- a/awx/main/migrations/0048_v310_instance_capacity.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0047_v310_tower_state'), - ] - - operations = [ - migrations.AddField( - model_name='instance', - name='capacity', - field=models.PositiveIntegerField(default=100, editable=False), - ), - ] diff --git a/awx/main/migrations/0049_v310_workflow_surveys.py b/awx/main/migrations/0049_v310_workflow_surveys.py deleted file mode 100644 index bc3865d33c..0000000000 --- a/awx/main/migrations/0049_v310_workflow_surveys.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import jsonfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0048_v310_instance_capacity'), - ] - - operations = [ - migrations.AddField( - model_name='workflowjob', - name='survey_passwords', - field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AddField( - model_name='workflowjobtemplate', - name='survey_enabled', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='workflowjobtemplate', - name='survey_spec', - field=jsonfield.fields.JSONField(default={}, blank=True), - ), - ] diff --git a/awx/main/migrations/0050_v310_JSONField_changes.py b/awx/main/migrations/0050_v310_JSONField_changes.py deleted file mode 100644 index b2f3f2534c..0000000000 --- a/awx/main/migrations/0050_v310_JSONField_changes.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import awx.main.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0049_v310_workflow_surveys'), - ] - - operations = [ - migrations.AlterField( - model_name='adhoccommandevent', - name='event_data', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - migrations.AlterField( - model_name='job', - name='artifacts', - field=awx.main.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AlterField( - model_name='job', - name='survey_passwords', - field=awx.main.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AlterField( - model_name='jobevent', - name='event_data', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - migrations.AlterField( - model_name='jobtemplate', - name='survey_spec', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - migrations.AlterField( - model_name='notification', - name='body', - field=awx.main.fields.JSONField(default=dict, blank=True), - ), - migrations.AlterField( - model_name='notificationtemplate', - name='notification_configuration', - field=awx.main.fields.JSONField(default=dict), - ), - migrations.AlterField( - model_name='project', - name='playbook_files', - field=awx.main.fields.JSONField(default=[], help_text='List of playbooks found in the project', verbose_name='Playbook Files', editable=False, blank=True), - ), - migrations.AlterField( - model_name='schedule', - name='extra_data', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - migrations.AlterField( - model_name='unifiedjob', - name='job_env', - field=awx.main.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AlterField( - model_name='workflowjob', - name='survey_passwords', - field=awx.main.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AlterField( - model_name='workflowjobnode', - name='ancestor_artifacts', - field=awx.main.fields.JSONField(default={}, editable=False, blank=True), - ), - migrations.AlterField( - model_name='workflowjobnode', - name='char_prompts', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - migrations.AlterField( - model_name='workflowjobtemplate', - name='survey_spec', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - migrations.AlterField( - model_name='workflowjobtemplatenode', - name='char_prompts', - field=awx.main.fields.JSONField(default={}, blank=True), - ), - ] diff --git a/awx/main/migrations/0051_v310_job_project_update.py b/awx/main/migrations/0051_v310_job_project_update.py deleted file mode 100644 index 2732f6973d..0000000000 --- a/awx/main/migrations/0051_v310_job_project_update.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0050_v310_JSONField_changes'), - ] - - operations = [ - migrations.AddField( - model_name='job', - name='project_update', - field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.ProjectUpdate', help_text='The SCM Refresh task used to make sure the playbooks were available for the job run', null=True), - ), - ] diff --git a/awx/main/migrations/0052_v310_inventory_name_non_unique.py b/awx/main/migrations/0052_v310_inventory_name_non_unique.py deleted file mode 100644 index 83bf44619e..0000000000 --- a/awx/main/migrations/0052_v310_inventory_name_non_unique.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0051_v310_job_project_update'), - ] - - operations = [ - migrations.AlterField( - model_name='inventory', - name='name', - field=models.CharField(max_length=512), - ), - ] diff --git a/awx/main/migrations/0053_v310_update_timeout_field_type.py b/awx/main/migrations/0053_v310_update_timeout_field_type.py deleted file mode 100644 index 9365a4156a..0000000000 --- a/awx/main/migrations/0053_v310_update_timeout_field_type.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0052_v310_inventory_name_non_unique'), - ] - - operations = [ - migrations.AlterField( - model_name='inventorysource', - name='timeout', - field=models.IntegerField(default=0, blank=True), - ), - migrations.AlterField( - model_name='inventoryupdate', - name='timeout', - field=models.IntegerField(default=0, blank=True), - ), - migrations.AlterField( - model_name='job', - name='timeout', - field=models.IntegerField(default=0, blank=True), - ), - migrations.AlterField( - model_name='jobtemplate', - name='timeout', - field=models.IntegerField(default=0, blank=True), - ), - migrations.AlterField( - model_name='project', - name='timeout', - field=models.IntegerField(default=0, blank=True), - ), - migrations.AlterField( - model_name='projectupdate', - name='timeout', - field=models.IntegerField(default=0, blank=True), - ), - ] diff --git a/awx/main/migrations/0054_text_and_has_schedules.py b/awx/main/migrations/0054_text_and_has_schedules.py deleted file mode 100644 index 426e40f211..0000000000 --- a/awx/main/migrations/0054_text_and_has_schedules.py +++ /dev/null @@ -1,133 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0053_v310_update_timeout_field_type'), - ] - - operations = [ - migrations.RemoveField( - model_name='unifiedjobtemplate', - name='has_schedules', - ), - migrations.AlterField( - model_name='host', - name='instance_id', - field=models.CharField(default=b'', help_text='The value used by the remote inventory source to uniquely identify the host', max_length=1024, blank=True), - ), - migrations.AlterField( - model_name='project', - name='scm_clean', - field=models.BooleanField(default=False, help_text='Discard any local changes before syncing the project.'), - ), - migrations.AlterField( - model_name='project', - name='scm_delete_on_update', - field=models.BooleanField(default=False, help_text='Delete the project before syncing.'), - ), - migrations.AlterField( - model_name='project', - name='scm_type', - field=models.CharField(default=b'', choices=[(b'', 'Manual'), (b'git', 'Git'), (b'hg', 'Mercurial'), (b'svn', 'Subversion')], max_length=8, blank=True, help_text='Specifies the source control system used to store the project.', verbose_name='SCM Type'), - ), - migrations.AlterField( - model_name='project', - name='scm_update_cache_timeout', - field=models.PositiveIntegerField(default=0, help_text='The number of seconds after the last project update ran that a newproject update will be launched as a job dependency.', blank=True), - ), - migrations.AlterField( - model_name='project', - name='scm_update_on_launch', - field=models.BooleanField(default=False, help_text='Update the project when a job is launched that uses the project.'), - ), - migrations.AlterField( - model_name='project', - name='scm_url', - field=models.CharField(default=b'', help_text='The location where the project is stored.', max_length=1024, verbose_name='SCM URL', blank=True), - ), - migrations.AlterField( - model_name='project', - name='timeout', - field=models.IntegerField(default=0, help_text='The amount of time to run before the task is canceled.', blank=True), - ), - migrations.AlterField( - model_name='projectupdate', - name='scm_clean', - field=models.BooleanField(default=False, help_text='Discard any local changes before syncing the project.'), - ), - migrations.AlterField( - model_name='projectupdate', - name='scm_delete_on_update', - field=models.BooleanField(default=False, help_text='Delete the project before syncing.'), - ), - migrations.AlterField( - model_name='projectupdate', - name='scm_type', - field=models.CharField(default=b'', choices=[(b'', 'Manual'), (b'git', 'Git'), (b'hg', 'Mercurial'), (b'svn', 'Subversion')], max_length=8, blank=True, help_text='Specifies the source control system used to store the project.', verbose_name='SCM Type'), - ), - migrations.AlterField( - model_name='projectupdate', - name='scm_url', - field=models.CharField(default=b'', help_text='The location where the project is stored.', max_length=1024, verbose_name='SCM URL', blank=True), - ), - migrations.AlterField( - model_name='projectupdate', - name='timeout', - field=models.IntegerField(default=0, help_text='The amount of time to run before the task is canceled.', blank=True), - ), - migrations.AlterField( - model_name='schedule', - name='dtend', - field=models.DateTimeField(default=None, help_text='The last occurrence of the schedule occurs before this time, aftewards the schedule expires.', null=True, editable=False), - ), - migrations.AlterField( - model_name='schedule', - name='dtstart', - field=models.DateTimeField(default=None, help_text='The first occurrence of the schedule occurs on or after this time.', null=True, editable=False), - ), - migrations.AlterField( - model_name='schedule', - name='enabled', - field=models.BooleanField(default=True, help_text='Enables processing of this schedule by Tower.'), - ), - migrations.AlterField( - model_name='schedule', - name='next_run', - field=models.DateTimeField(default=None, help_text='The next time that the scheduled action will run.', null=True, editable=False), - ), - migrations.AlterField( - model_name='schedule', - name='rrule', - field=models.CharField(help_text='A value representing the schedules iCal recurrence rule.', max_length=255), - ), - migrations.AlterField( - model_name='unifiedjob', - name='elapsed', - field=models.DecimalField(help_text='Elapsed time in seconds that the job ran.', editable=False, max_digits=12, decimal_places=3), - ), - migrations.AlterField( - model_name='unifiedjob', - name='execution_node', - field=models.TextField(default=b'', help_text='The Tower node the job executed on.', editable=False, blank=True), - ), - migrations.AlterField( - model_name='unifiedjob', - name='finished', - field=models.DateTimeField(default=None, help_text='The date and time the job finished execution.', null=True, editable=False), - ), - migrations.AlterField( - model_name='unifiedjob', - name='job_explanation', - field=models.TextField(default=b'', help_text="A status field to indicate the state of the job if it wasn't able to run and capture stdout", editable=False, blank=True), - ), - migrations.AlterField( - model_name='unifiedjob', - name='started', - field=models.DateTimeField(default=None, help_text='The date and time the job was queued for starting.', null=True, editable=False), - ), - ]