diff --git a/awx/conf/migrations/0002_v310_copy_tower_settings.py b/awx/conf/migrations/0002_v310_copy_tower_settings.py index 7cf24b7061..fc947c39b7 100644 --- a/awx/conf/migrations/0002_v310_copy_tower_settings.py +++ b/awx/conf/migrations/0002_v310_copy_tower_settings.py @@ -64,11 +64,11 @@ class Migration(migrations.Migration): dependencies = [ ('conf', '0001_initial'), - ('main', '0034_v310_release'), + ('main', '0004_squashed_v310_release'), ] run_before = [ - ('main', '0035_v310_remove_tower_settings'), + ('main', '0005_squashed_v310_v313_updates'), ] operations = [ diff --git a/awx/main/migrations/0002_v300_tower_settings_changes.py b/awx/main/migrations/0002_v300_tower_settings_changes.py deleted file mode 100644 index 9d222762b1..0000000000 --- a/awx/main/migrations/0002_v300_tower_settings_changes.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2016 Ansible, Inc. -# All Rights Reserved. - -from __future__ import unicode_literals - -from django.db import migrations, models -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('main', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='TowerSettings', - 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)), - ('key', models.CharField(unique=True, max_length=255)), - ('description', models.TextField()), - ('category', models.CharField(max_length=128)), - ('value', models.TextField(blank=True)), - ('value_type', models.CharField(max_length=12, choices=[(b'string', 'String'), (b'int', 'Integer'), (b'float', 'Decimal'), (b'json', 'JSON'), (b'bool', 'Boolean'), (b'password', 'Password'), (b'list', 'List')])), - ('user', models.ForeignKey(related_name='settings', default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ], - ), - ] diff --git a/awx/main/migrations/0003_v300_notification_changes.py b/awx/main/migrations/0003_v300_notification_changes.py deleted file mode 100644 index 51ea0e3d19..0000000000 --- a/awx/main/migrations/0003_v300_notification_changes.py +++ /dev/null @@ -1,104 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import jsonfield.fields -import django.db.models.deletion -from django.conf import settings -import taggit.managers - - -class Migration(migrations.Migration): - - dependencies = [ - ('taggit', '0002_auto_20150616_2121'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('main', '0002_v300_tower_settings_changes'), - ] - - operations = [ - migrations.CreateModel( - name='Notification', - 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)), - ('status', models.CharField(default=b'pending', max_length=20, editable=False, choices=[(b'pending', 'Pending'), (b'successful', 'Successful'), (b'failed', 'Failed')])), - ('error', models.TextField(default=b'', editable=False, blank=True)), - ('notifications_sent', models.IntegerField(default=0, editable=False)), - ('notification_type', models.CharField(max_length=32, choices=[(b'email', 'Email'), (b'slack', 'Slack'), (b'twilio', 'Twilio'), (b'pagerduty', 'Pagerduty'), (b'hipchat', 'HipChat'), (b'webhook', 'Webhook'), (b'irc', 'IRC')])), - ('recipients', models.TextField(default=b'', editable=False, blank=True)), - ('subject', models.TextField(default=b'', editable=False, blank=True)), - ('body', jsonfield.fields.JSONField(default=dict, blank=True)), - ], - options={ - 'ordering': ('pk',), - }, - ), - migrations.CreateModel( - name='NotificationTemplate', - 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)), - ('description', models.TextField(default=b'', blank=True)), - ('name', models.CharField(unique=True, max_length=512)), - ('notification_type', models.CharField(max_length=32, choices=[(b'email', 'Email'), (b'slack', 'Slack'), (b'twilio', 'Twilio'), (b'pagerduty', 'Pagerduty'), (b'hipchat', 'HipChat'), (b'webhook', 'Webhook'), (b'irc', 'IRC')])), - ('notification_configuration', jsonfield.fields.JSONField(default=dict)), - ('created_by', models.ForeignKey(related_name="{u'class': 'notificationtemplate', u'app_label': 'main'}(class)s_created+", on_delete=django.db.models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ('modified_by', models.ForeignKey(related_name="{u'class': 'notificationtemplate', u'app_label': 'main'}(class)s_modified+", on_delete=django.db.models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ('organization', models.ForeignKey(related_name='notification_templates', on_delete=django.db.models.deletion.SET_NULL, to='main.Organization', null=True)), - ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')), - ], - ), - migrations.AddField( - model_name='notification', - name='notification_template', - field=models.ForeignKey(related_name='notifications', editable=False, to='main.NotificationTemplate'), - ), - migrations.AddField( - model_name='activitystream', - name='notification', - field=models.ManyToManyField(to='main.Notification', blank=True), - ), - migrations.AddField( - model_name='activitystream', - name='notification_template', - field=models.ManyToManyField(to='main.NotificationTemplate', blank=True), - ), - migrations.AddField( - model_name='organization', - name='notification_templates_any', - field=models.ManyToManyField(related_name='organization_notification_templates_for_any', to='main.NotificationTemplate', blank=True), - ), - migrations.AddField( - model_name='organization', - name='notification_templates_error', - field=models.ManyToManyField(related_name='organization_notification_templates_for_errors', to='main.NotificationTemplate', blank=True), - ), - migrations.AddField( - model_name='organization', - name='notification_templates_success', - field=models.ManyToManyField(related_name='organization_notification_templates_for_success', to='main.NotificationTemplate', blank=True), - ), - migrations.AddField( - model_name='unifiedjob', - name='notifications', - field=models.ManyToManyField(related_name='unifiedjob_notifications', editable=False, to='main.Notification'), - ), - migrations.AddField( - model_name='unifiedjobtemplate', - name='notification_templates_any', - field=models.ManyToManyField(related_name='unifiedjobtemplate_notification_templates_for_any', to='main.NotificationTemplate', blank=True), - ), - migrations.AddField( - model_name='unifiedjobtemplate', - name='notification_templates_error', - field=models.ManyToManyField(related_name='unifiedjobtemplate_notification_templates_for_errors', to='main.NotificationTemplate', blank=True), - ), - migrations.AddField( - model_name='unifiedjobtemplate', - name='notification_templates_success', - field=models.ManyToManyField(related_name='unifiedjobtemplate_notification_templates_for_success', to='main.NotificationTemplate', blank=True), - ), - ] diff --git a/awx/main/migrations/0034_v310_release.py b/awx/main/migrations/0004_squashed_v310_release.py similarity index 99% rename from awx/main/migrations/0034_v310_release.py rename to awx/main/migrations/0004_squashed_v310_release.py index d23843a5fe..e4b1df2290 100644 --- a/awx/main/migrations/0034_v310_release.py +++ b/awx/main/migrations/0004_squashed_v310_release.py @@ -12,7 +12,11 @@ import awx.main.fields class Migration(migrations.Migration): dependencies = [ - ('main', '0033_v303_v245_host_variable_fix'), + ('main', '0003_squashed_v300_v303_updates'), + ] + + replaces = [ + (b'main', '0034_v310_release'), ] operations = [ @@ -610,5 +614,4 @@ class Migration(migrations.Migration): 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/0004_v300_fact_changes.py b/awx/main/migrations/0004_v300_fact_changes.py deleted file mode 100644 index 27ccebc046..0000000000 --- a/awx/main/migrations/0004_v300_fact_changes.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import jsonbfield.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0003_v300_notification_changes'), - ] - - operations = [ - migrations.CreateModel( - name='Fact', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('timestamp', models.DateTimeField(default=None, help_text='Date and time of the corresponding fact scan gathering time.', editable=False)), - ('module', models.CharField(max_length=128)), - ('facts', jsonbfield.fields.JSONField(default={}, help_text='Arbitrary JSON structure of module facts captured at timestamp for a single host.', blank=True)), - ('host', models.ForeignKey(related_name='facts', to='main.Host', help_text='Host for the facts that the fact scan captured.')), - ], - ), - migrations.AlterIndexTogether( - name='fact', - index_together=set([('timestamp', 'module', 'host')]), - ), - ] diff --git a/awx/main/migrations/0036_v311_insights.py b/awx/main/migrations/0005_squashed_v310_v313_updates.py similarity index 60% rename from awx/main/migrations/0036_v311_insights.py rename to awx/main/migrations/0005_squashed_v310_v313_updates.py index 57baff9b5d..24a7f2d207 100644 --- a/awx/main/migrations/0036_v311_insights.py +++ b/awx/main/migrations/0005_squashed_v310_v313_updates.py @@ -7,10 +7,25 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('main', '0035_v310_remove_tower_settings'), + ('main', '0004_squashed_v310_release'), + ] + + replaces = [ + (b'main', '0035_v310_remove_tower_settings'), + (b'main', '0036_v311_insights'), + (b'main', '0037_v313_instance_version'), ] operations = [ + # Remove Tower settings, these settings are now in separate awx.conf app. + migrations.RemoveField( + model_name='towersettings', + name='user', + ), + migrations.DeleteModel( + name='TowerSettings', + ), + migrations.AlterField( model_name='project', name='scm_type', @@ -21,4 +36,11 @@ class Migration(migrations.Migration): name='scm_type', field=models.CharField(default=b'', choices=[(b'', 'Manual'), (b'git', 'Git'), (b'hg', 'Mercurial'), (b'svn', 'Subversion'), (b'insights', 'Red Hat Insights')], max_length=8, blank=True, help_text='Specifies the source control system used to store the project.', verbose_name='SCM Type'), ), + + migrations.AddField( + model_name='instance', + name='version', + field=models.CharField(max_length=24, blank=True), + ), + ] diff --git a/awx/main/migrations/0005_v300_migrate_facts.py b/awx/main/migrations/0005_v300_migrate_facts.py deleted file mode 100644 index 058c5970df..0000000000 --- a/awx/main/migrations/0005_v300_migrate_facts.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0004_v300_fact_changes'), - ] - - operations = [ - ] diff --git a/awx/main/migrations/0006_v300_active_flag_cleanup.py b/awx/main/migrations/0006_v300_active_flag_cleanup.py deleted file mode 100644 index 59dee6c3da..0000000000 --- a/awx/main/migrations/0006_v300_active_flag_cleanup.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from awx.main.migrations import _cleanup_deleted as cleanup_deleted -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0005_v300_migrate_facts'), - ] - - operations = [ - migrations.RunPython(cleanup_deleted.cleanup_deleted), - ] diff --git a/awx/main/migrations/0038_v320_release.py b/awx/main/migrations/0006_v320_release.py similarity index 71% rename from awx/main/migrations/0038_v320_release.py rename to awx/main/migrations/0006_v320_release.py index 07c3cb83ae..102b3accf2 100644 --- a/awx/main/migrations/0038_v320_release.py +++ b/awx/main/migrations/0006_v320_release.py @@ -7,6 +7,8 @@ from psycopg2.extensions import AsIs # Django from django.db import migrations, models +from django.conf import settings +import taggit.managers # AWX import awx.main.fields @@ -16,7 +18,7 @@ from awx.main.models import Host class Migration(migrations.Migration): dependencies = [ - ('main', '0037_v313_instance_version'), + ('main', '0005_squashed_v310_v313_updates'), ] operations = [ @@ -351,4 +353,114 @@ class Migration(migrations.Migration): name='diff_mode', field=models.BooleanField(default=False, help_text='If enabled, textual changes made to any templated files on the host are shown in the standard output'), ), + + migrations.CreateModel( + name='CredentialType', + 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)), + ('description', models.TextField(default=b'', blank=True)), + ('name', models.CharField(max_length=512)), + ('kind', models.CharField(max_length=32, choices=[(b'ssh', 'Machine'), (b'vault', 'Vault'), (b'net', 'Network'), (b'scm', 'Source Control'), (b'cloud', 'Cloud'), (b'insights', 'Insights')])), + ('managed_by_tower', models.BooleanField(default=False, editable=False)), + ('inputs', awx.main.fields.CredentialTypeInputField(default={}, blank=True, help_text='Enter inputs using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')), + ('injectors', awx.main.fields.CredentialTypeInjectorField(default={}, blank=True, help_text='Enter injectors using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')), + ('created_by', models.ForeignKey(related_name="{u'class': 'credentialtype', u'app_label': 'main'}(class)s_created+", on_delete=models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), + ('modified_by', models.ForeignKey(related_name="{u'class': 'credentialtype', u'app_label': 'main'}(class)s_modified+", on_delete=models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), + ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')), + ], + options={ + 'ordering': ('kind', 'name'), + }, + ), + migrations.AlterModelOptions( + name='credential', + options={'ordering': ('name',)}, + ), + migrations.AddField( + model_name='credential', + name='inputs', + field=awx.main.fields.CredentialInputField(default={}, blank=True), + ), + migrations.AddField( + model_name='credential', + name='credential_type', + field=models.ForeignKey(related_name='credentials', to='main.CredentialType', null=True), + preserve_default=False, + ), + migrations.AddField( + model_name='job', + name='vault_credential', + field=models.ForeignKey(related_name='jobs_as_vault_credential+', on_delete=models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), + ), + migrations.AddField( + model_name='jobtemplate', + name='vault_credential', + field=models.ForeignKey(related_name='jobtemplates_as_vault_credential+', on_delete=models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), + ), + migrations.AddField( + model_name='job', + name='extra_credentials', + field=models.ManyToManyField(related_name='_job_extra_credentials_+', to='main.Credential'), + ), + migrations.AddField( + model_name='jobtemplate', + name='extra_credentials', + field=models.ManyToManyField(related_name='_jobtemplate_extra_credentials_+', to='main.Credential'), + ), + migrations.AlterUniqueTogether( + name='credential', + unique_together=set([('organization', 'name', 'credential_type')]), + ), + + # Connecting activity stream + migrations.AddField( + model_name='activitystream', + name='credential_type', + field=models.ManyToManyField(to='main.CredentialType', blank=True), + ), + + migrations.CreateModel( + name='InstanceGroup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=250)), + ('created', models.DateTimeField(auto_now_add=True)), + ('modified', models.DateTimeField(auto_now=True)), + ('controller', models.ForeignKey(related_name='controlled_groups', default=None, editable=False, to='main.InstanceGroup', help_text='Instance Group to remotely control this group.', null=True)), + ('instances', models.ManyToManyField(help_text='Instances that are members of this InstanceGroup', related_name='rampart_groups', editable=False, to='main.Instance')), + ], + ), + migrations.AddField( + model_name='inventory', + name='instance_groups', + field=models.ManyToManyField(to='main.InstanceGroup', blank=True), + ), + migrations.AddField( + model_name='unifiedjob', + name='instance_group', + field=models.ForeignKey(on_delete=models.deletion.SET_NULL, default=None, blank=True, to='main.InstanceGroup', help_text='The Rampart/Instance group the job was run under', null=True), + ), + migrations.AddField( + model_name='unifiedjobtemplate', + name='instance_groups', + field=models.ManyToManyField(to='main.InstanceGroup', blank=True), + ), + migrations.AddField( + model_name='organization', + name='instance_groups', + field=models.ManyToManyField(to='main.InstanceGroup', blank=True), + ), + migrations.AddField( + model_name='activitystream', + name='instance_group', + field=models.ManyToManyField(to='main.InstanceGroup', blank=True), + ), + migrations.AddField( + model_name='instance', + name='last_isolated_check', + field=models.DateTimeField(auto_now_add=True, null=True), + ), + ] diff --git a/awx/main/migrations/0007_v300_active_flag_removal.py b/awx/main/migrations/0007_v300_active_flag_removal.py deleted file mode 100644 index 55ada4ab9d..0000000000 --- a/awx/main/migrations/0007_v300_active_flag_removal.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0006_v300_active_flag_cleanup'), - ] - - operations = [ - migrations.RemoveField( - model_name='credential', - name='active', - ), - migrations.RemoveField( - model_name='custominventoryscript', - name='active', - ), - migrations.RemoveField( - model_name='group', - name='active', - ), - migrations.RemoveField( - model_name='host', - name='active', - ), - migrations.RemoveField( - model_name='inventory', - name='active', - ), - migrations.RemoveField( - model_name='organization', - name='active', - ), - migrations.RemoveField( - model_name='permission', - name='active', - ), - migrations.RemoveField( - model_name='schedule', - name='active', - ), - migrations.RemoveField( - model_name='team', - name='active', - ), - migrations.RemoveField( - model_name='unifiedjob', - name='active', - ), - migrations.RemoveField( - model_name='unifiedjobtemplate', - name='active', - ), - ] diff --git a/awx/main/migrations/0039_v320_data_migrations.py b/awx/main/migrations/0007_v320_data_migrations.py similarity index 53% rename from awx/main/migrations/0039_v320_data_migrations.py rename to awx/main/migrations/0007_v320_data_migrations.py index b3cc6fdbcb..2971dba213 100644 --- a/awx/main/migrations/0039_v320_data_migrations.py +++ b/awx/main/migrations/0007_v320_data_migrations.py @@ -3,19 +3,21 @@ from __future__ import unicode_literals # Django -from django.db import migrations +from django.db import migrations, models # AWX from awx.main.migrations import _inventory_source as invsrc from awx.main.migrations import _migration_utils as migration_utils -from awx.main.migrations import _reencrypt -from awx.main.migrations import _scan_jobs +from awx.main.migrations import _reencrypt as reencrypt +from awx.main.migrations import _scan_jobs as scan_jobs +from awx.main.migrations import _credentialtypes as credentialtypes +import awx.main.fields class Migration(migrations.Migration): dependencies = [ - ('main', '0038_v320_release'), + ('main', '0006_v320_release'), ] operations = [ @@ -24,6 +26,9 @@ class Migration(migrations.Migration): migrations.RunPython(invsrc.remove_rax_inventory_sources), migrations.RunPython(invsrc.remove_inventory_source_with_no_inventory_link), migrations.RunPython(invsrc.rename_inventory_sources), - migrations.RunPython(_reencrypt.replace_aesecb_fernet), - migrations.RunPython(_scan_jobs.migrate_scan_job_templates), + migrations.RunPython(reencrypt.replace_aesecb_fernet), + migrations.RunPython(scan_jobs.migrate_scan_job_templates), + + migrations.RunPython(credentialtypes.migrate_to_v2_credentials), + migrations.RunPython(credentialtypes.migrate_job_credentials), ] diff --git a/awx/main/migrations/0008_v300_rbac_changes.py b/awx/main/migrations/0008_v300_rbac_changes.py deleted file mode 100644 index c5b2eabb89..0000000000 --- a/awx/main/migrations/0008_v300_rbac_changes.py +++ /dev/null @@ -1,264 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -from django.conf import settings -import awx.main.fields - -class Migration(migrations.Migration): - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('main', '0007_v300_active_flag_removal'), - ] - - operations = [ - # - # Patch up existing - # - migrations.RenameField( - 'Organization', - 'admins', - 'deprecated_admins', - ), - migrations.RenameField( - 'Organization', - 'users', - 'deprecated_users', - ), - migrations.RenameField( - 'Team', - 'users', - 'deprecated_users', - ), - migrations.RenameField( - 'Team', - 'projects', - 'deprecated_projects', - ), - migrations.AddField( - model_name='project', - name='organization', - field=models.ForeignKey(related_name='projects', to='main.Organization', blank=True, null=True), - ), - migrations.AlterField( - model_name='team', - name='deprecated_projects', - field=models.ManyToManyField(related_name='deprecated_teams', to='main.Project', blank=True), - ), - migrations.RenameField( - model_name='organization', - old_name='projects', - new_name='deprecated_projects', - ), - migrations.AlterField( - model_name='organization', - name='deprecated_projects', - field=models.ManyToManyField(related_name='deprecated_organizations', to='main.Project', blank=True), - ), - migrations.RenameField( - 'Credential', - 'team', - 'deprecated_team', - ), - migrations.RenameField( - 'Credential', - 'user', - 'deprecated_user', - ), - migrations.AlterField( - model_name='organization', - name='deprecated_admins', - field=models.ManyToManyField(related_name='deprecated_admin_of_organizations', to=settings.AUTH_USER_MODEL, blank=True), - ), - migrations.AlterField( - model_name='organization', - name='deprecated_users', - field=models.ManyToManyField(related_name='deprecated_organizations', to=settings.AUTH_USER_MODEL, blank=True), - ), - migrations.AlterField( - model_name='team', - name='deprecated_users', - field=models.ManyToManyField(related_name='deprecated_teams', to=settings.AUTH_USER_MODEL, blank=True), - ), - migrations.AlterUniqueTogether( - name='credential', - unique_together=set([]), - ), - migrations.AddField( - model_name='credential', - name='organization', - field=models.ForeignKey(related_name='credentials', default=None, blank=True, to='main.Organization', null=True), - ), - - # - # New RBAC models and fields - # - migrations.CreateModel( - name='Role', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('role_field', models.TextField()), - ('singleton_name', models.TextField(default=None, unique=True, null=True, db_index=True)), - ('members', models.ManyToManyField(related_name='roles', to=settings.AUTH_USER_MODEL)), - ('parents', models.ManyToManyField(related_name='children', to='main.Role')), - ('implicit_parents', models.TextField(default=b'[]')), - ('content_type', models.ForeignKey(default=None, to='contenttypes.ContentType', null=True)), - ('object_id', models.PositiveIntegerField(default=None, null=True)), - - ], - options={ - 'db_table': 'main_rbac_roles', - 'verbose_name_plural': 'roles', - }, - ), - migrations.CreateModel( - name='RoleAncestorEntry', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('role_field', models.TextField()), - ('content_type_id', models.PositiveIntegerField()), - ('object_id', models.PositiveIntegerField()), - ('ancestor', models.ForeignKey(related_name='+', to='main.Role')), - ('descendent', models.ForeignKey(related_name='+', to='main.Role')), - ], - options={ - 'db_table': 'main_rbac_role_ancestors', - 'verbose_name_plural': 'role_ancestors', - }, - ), - migrations.AddField( - model_name='role', - name='ancestors', - field=models.ManyToManyField(related_name='descendents', through='main.RoleAncestorEntry', to='main.Role'), - ), - migrations.AlterIndexTogether( - name='role', - index_together=set([('content_type', 'object_id')]), - ), - migrations.AlterIndexTogether( - name='roleancestorentry', - index_together=set([('ancestor', 'content_type_id', 'object_id'), ('ancestor', 'content_type_id', 'role_field'), ('ancestor', 'descendent')]), - ), - migrations.AddField( - model_name='credential', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_administrator'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='credential', - name='use_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='credential', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_auditor', b'organization.auditor_role', b'use_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='custominventoryscript', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'organization.admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='custominventoryscript', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'organization.auditor_role', b'organization.member_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='inventory', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'organization.admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='inventory', - name='adhoc_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='inventory', - name='update_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='inventory', - name='use_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'adhoc_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='inventory', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'organization.auditor_role', b'update_role', b'use_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='jobtemplate', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'project.organization.admin_role', b'inventory.organization.admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='jobtemplate', - 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='jobtemplate', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'project.organization.auditor_role', b'inventory.organization.auditor_role', b'execute_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='organization', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'singleton:system_administrator', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='organization', - name='auditor_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'singleton:system_auditor', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='organization', - name='member_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='organization', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'member_role', b'auditor_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='project', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'organization.admin_role', b'singleton:system_administrator'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='project', - name='use_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='project', - name='update_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='project', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'organization.auditor_role', b'singleton:system_auditor', b'use_role', b'update_role'], to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='team', - name='admin_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'organization.admin_role', to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='team', - name='member_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=None, to='main.Role', null=b'True'), - ), - migrations.AddField( - model_name='team', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'admin_role', b'organization.auditor_role', b'member_role'], to='main.Role', null=b'True'), - ), - ] diff --git a/awx/main/migrations/0042_v320_drop_v1_credential_fields.py b/awx/main/migrations/0008_v320_drop_v1_credential_fields.py similarity index 96% rename from awx/main/migrations/0042_v320_drop_v1_credential_fields.py rename to awx/main/migrations/0008_v320_drop_v1_credential_fields.py index a618e952a7..ed45bc4b8e 100644 --- a/awx/main/migrations/0042_v320_drop_v1_credential_fields.py +++ b/awx/main/migrations/0008_v320_drop_v1_credential_fields.py @@ -1,14 +1,18 @@ # -*- coding: utf-8 -*- +# Python from __future__ import unicode_literals -from django.db import migrations, models +# Django +from django.db import migrations +from django.db import models +# AWX import awx.main.fields class Migration(migrations.Migration): dependencies = [ - ('main', '0041_v320_migrate_v1_credentials'), + ('main', '0007_v320_data_migrations'), ] operations = [ diff --git a/awx/main/migrations/0009_v300_rbac_migrations.py b/awx/main/migrations/0009_v300_rbac_migrations.py deleted file mode 100644 index cf5d5bbe89..0000000000 --- a/awx/main/migrations/0009_v300_rbac_migrations.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from awx.main.migrations import _rbac as rbac -from awx.main.migrations import _migration_utils as migration_utils -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0008_v300_rbac_changes'), - ] - - operations = [ - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.RunPython(rbac.migrate_users), - migrations.RunPython(rbac.create_roles), - migrations.RunPython(rbac.migrate_organization), - migrations.RunPython(rbac.migrate_team), - migrations.RunPython(rbac.migrate_inventory), - migrations.RunPython(rbac.migrate_projects), - migrations.RunPython(rbac.migrate_credential), - migrations.RunPython(rbac.migrate_job_templates), - migrations.RunPython(rbac.rebuild_role_hierarchy), - ] diff --git a/awx/main/migrations/0010_v300_create_system_job_templates.py b/awx/main/migrations/0010_v300_create_system_job_templates.py deleted file mode 100644 index e8b227a11d..0000000000 --- a/awx/main/migrations/0010_v300_create_system_job_templates.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -from django.utils.timezone import now - -def create_system_job_templates(apps, schema_editor): - ''' - Create default system job templates if not present. Create default schedules - only if new system job templates were created (i.e. new database). - ''' - - SystemJobTemplate = apps.get_model('main', 'SystemJobTemplate') - Schedule = apps.get_model('main', 'Schedule') - ContentType = apps.get_model('contenttypes', 'ContentType') - sjt_ct = ContentType.objects.get_for_model(SystemJobTemplate) - now_dt = now() - now_str = now_dt.strftime('%Y%m%dT%H%M%SZ') - - sjt, created = SystemJobTemplate.objects.get_or_create( - job_type='cleanup_jobs', - defaults=dict( - name='Cleanup Job Details', - description='Remove job history', - created=now_dt, - modified=now_dt, - polymorphic_ctype=sjt_ct, - ), - ) - if created: - sched = Schedule( - name='Cleanup Job Schedule', - rrule='DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=SU' % now_str, - description='Automatically Generated Schedule', - enabled=True, - extra_data={'days': '120'}, - created=now_dt, - modified=now_dt, - ) - sched.unified_job_template = sjt - sched.save() - - existing_cd_jobs = SystemJobTemplate.objects.filter(job_type='cleanup_deleted') - Schedule.objects.filter(unified_job_template__in=existing_cd_jobs).delete() - existing_cd_jobs.delete() - - sjt, created = SystemJobTemplate.objects.get_or_create( - job_type='cleanup_activitystream', - defaults=dict( - name='Cleanup Activity Stream', - description='Remove activity stream history', - created=now_dt, - modified=now_dt, - polymorphic_ctype=sjt_ct, - ), - ) - if created: - sched = Schedule( - name='Cleanup Activity Schedule', - rrule='DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU' % now_str, - description='Automatically Generated Schedule', - enabled=True, - extra_data={'days': '355'}, - created=now_dt, - modified=now_dt, - ) - sched.unified_job_template = sjt - sched.save() - - sjt, created = SystemJobTemplate.objects.get_or_create( - job_type='cleanup_facts', - defaults=dict( - name='Cleanup Fact Details', - description='Remove system tracking history', - created=now_dt, - modified=now_dt, - polymorphic_ctype=sjt_ct, - ), - ) - if created: - sched = Schedule( - name='Cleanup Fact Schedule', - rrule='DTSTART:%s RRULE:FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=1' % now_str, - description='Automatically Generated Schedule', - enabled=True, - extra_data={'older_than': '120d', 'granularity': '1w'}, - created=now_dt, - modified=now_dt, - ) - sched.unified_job_template = sjt - sched.save() - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0009_v300_rbac_migrations'), - ] - - operations = [ - migrations.RunPython(create_system_job_templates, migrations.RunPython.noop), - migrations.AlterField( - model_name='systemjob', - name='job_type', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'cleanup_jobs', 'Remove jobs older than a certain number of days'), (b'cleanup_activitystream', 'Remove activity stream entries older than a certain number of days'), (b'cleanup_facts', 'Purge and/or reduce the granularity of system tracking data')]), - ), - migrations.AlterField( - model_name='systemjobtemplate', - name='job_type', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'cleanup_jobs', 'Remove jobs older than a certain number of days'), (b'cleanup_activitystream', 'Remove activity stream entries older than a certain number of days'), (b'cleanup_facts', 'Purge and/or reduce the granularity of system tracking data')]), - ), - ] diff --git a/awx/main/migrations/0011_v300_credential_domain_field.py b/awx/main/migrations/0011_v300_credential_domain_field.py deleted file mode 100644 index 7b8aa0fa49..0000000000 --- a/awx/main/migrations/0011_v300_credential_domain_field.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', '0010_v300_create_system_job_templates'), - ] - - operations = [ - migrations.AddField( - model_name='credential', - name='domain', - field=models.CharField(default=b'', help_text='The identifier for the domain.', max_length=100, verbose_name='Domain', blank=True), - ), - ] diff --git a/awx/main/migrations/0012_v300_create_labels.py b/awx/main/migrations/0012_v300_create_labels.py deleted file mode 100644 index ae1b9df932..0000000000 --- a/awx/main/migrations/0012_v300_create_labels.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -from django.conf import settings -import taggit.managers - - -class Migration(migrations.Migration): - - dependencies = [ - ('taggit', '0002_auto_20150616_2121'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('main', '0011_v300_credential_domain_field'), - ] - - operations = [ - migrations.CreateModel( - name='Label', - 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)), - ('description', models.TextField(default=b'', blank=True)), - ('name', models.CharField(max_length=512)), - ('created_by', models.ForeignKey(related_name="{u'class': 'label', u'app_label': 'main'}(class)s_created+", on_delete=django.db.models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ('modified_by', models.ForeignKey(related_name="{u'class': 'label', u'app_label': 'main'}(class)s_modified+", on_delete=django.db.models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ('organization', models.ForeignKey(related_name='labels', to='main.Organization', help_text='Organization this label belongs to.')), - ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')), - ], - options={ - 'ordering': ('organization', 'name'), - }, - ), - migrations.AddField( - model_name='activitystream', - name='label', - field=models.ManyToManyField(to='main.Label', blank=True), - ), - migrations.AddField( - model_name='job', - name='labels', - field=models.ManyToManyField(related_name='job_labels', to='main.Label', blank=True), - ), - migrations.AddField( - model_name='jobtemplate', - name='labels', - field=models.ManyToManyField(related_name='jobtemplate_labels', to='main.Label', blank=True), - ), - migrations.AlterUniqueTogether( - name='label', - unique_together=set([('name', 'organization')]), - ), - ] diff --git a/awx/main/migrations/0013_v300_label_changes.py b/awx/main/migrations/0013_v300_label_changes.py deleted file mode 100644 index e8cfda14cd..0000000000 --- a/awx/main/migrations/0013_v300_label_changes.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0012_v300_create_labels'), - ] - - operations = [ - migrations.AlterField( - model_name='label', - name='organization', - field=models.ForeignKey(related_name='labels', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Organization', help_text='Organization this label belongs to.', null=True), - ), - ] diff --git a/awx/main/migrations/0014_v300_invsource_cred.py b/awx/main/migrations/0014_v300_invsource_cred.py deleted file mode 100644 index f98b80ff56..0000000000 --- a/awx/main/migrations/0014_v300_invsource_cred.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0013_v300_label_changes'), - ] - - operations = [ - migrations.AddField( - model_name='job', - name='network_credential', - field=models.ForeignKey(related_name='jobs_as_network_credential+', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), - ), - migrations.AddField( - model_name='jobtemplate', - name='network_credential', - field=models.ForeignKey(related_name='jobtemplates_as_network_credential+', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), - ), - migrations.AddField( - model_name='credential', - name='authorize', - field=models.BooleanField(default=False, help_text='Whether to use the authorize mechanism.'), - ), - migrations.AddField( - model_name='credential', - name='authorize_password', - field=models.CharField(default=b'', help_text='Password used by the authorize mechanism.', max_length=1024, blank=True), - ), - migrations.AlterField( - model_name='credential', - name='deprecated_team', - field=models.ForeignKey(related_name='deprecated_credentials', default=None, blank=True, to='main.Team', null=True), - ), - migrations.AlterField( - model_name='credential', - name='deprecated_user', - field=models.ForeignKey(related_name='deprecated_credentials', default=None, blank=True, to=settings.AUTH_USER_MODEL, null=True), - ), - migrations.AlterField( - model_name='credential', - name='kind', - field=models.CharField(default=b'ssh', max_length=32, choices=[(b'ssh', 'Machine'), (b'net', 'Network'), (b'scm', 'Source Control'), (b'aws', 'Amazon Web Services'), (b'rax', 'Rackspace'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Red Hat Satellite 6'), (b'cloudforms', 'Red Hat CloudForms'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure'), (b'openstack', 'OpenStack')]), - ), - migrations.AlterField( - model_name='inventorysource', - name='source', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'', 'Manual'), (b'file', 'Local File, Directory or Script'), (b'rax', 'Rackspace Cloud Servers'), (b'ec2', 'Amazon EC2'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Red Hat Satellite 6'), (b'cloudforms', 'Red Hat CloudForms'), (b'openstack', 'OpenStack'), (b'custom', 'Custom Script')]), - ), - migrations.AlterField( - model_name='inventoryupdate', - name='source', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'', 'Manual'), (b'file', 'Local File, Directory or Script'), (b'rax', 'Rackspace Cloud Servers'), (b'ec2', 'Amazon EC2'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Red Hat Satellite 6'), (b'cloudforms', 'Red Hat CloudForms'), (b'openstack', 'OpenStack'), (b'custom', 'Custom Script')]), - ), - migrations.AlterField( - model_name='team', - name='deprecated_projects', - field=models.ManyToManyField(related_name='deprecated_teams', to='main.Project', blank=True), - ), - ] diff --git a/awx/main/migrations/0015_v300_label_changes.py b/awx/main/migrations/0015_v300_label_changes.py deleted file mode 100644 index 022ae1d73a..0000000000 --- a/awx/main/migrations/0015_v300_label_changes.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', '0014_v300_invsource_cred'), - ] - - operations = [ - migrations.AlterField( - model_name='label', - name='organization', - field=models.ForeignKey(related_name='labels', to='main.Organization', help_text='Organization this label belongs to.'), - ), - ] diff --git a/awx/main/migrations/0016_v300_prompting_changes.py b/awx/main/migrations/0016_v300_prompting_changes.py deleted file mode 100644 index 63edda959b..0000000000 --- a/awx/main/migrations/0016_v300_prompting_changes.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0015_v300_label_changes'), - ] - - operations = [ - migrations.AddField( - model_name='jobtemplate', - name='ask_limit_on_launch', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='jobtemplate', - name='ask_inventory_on_launch', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='jobtemplate', - name='ask_credential_on_launch', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='jobtemplate', - name='ask_job_type_on_launch', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='jobtemplate', - name='ask_tags_on_launch', - field=models.BooleanField(default=False), - ), - migrations.AlterField( - model_name='job', - name='inventory', - field=models.ForeignKey(related_name='jobs', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Inventory', null=True), - ), - migrations.AlterField( - model_name='jobtemplate', - name='inventory', - field=models.ForeignKey(related_name='jobtemplates', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Inventory', null=True), - ), - ] diff --git a/awx/main/migrations/0017_v300_prompting_migrations.py b/awx/main/migrations/0017_v300_prompting_migrations.py deleted file mode 100644 index 6bec778956..0000000000 --- a/awx/main/migrations/0017_v300_prompting_migrations.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from awx.main.migrations import _rbac as rbac -from awx.main.migrations import _ask_for_variables as ask_for_variables -from awx.main.migrations import _migration_utils as migration_utils -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0016_v300_prompting_changes'), - ] - - operations = [ - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.RunPython(ask_for_variables.migrate_credential), - migrations.RunPython(rbac.rebuild_role_hierarchy), - ] diff --git a/awx/main/migrations/0018_v300_host_ordering.py b/awx/main/migrations/0018_v300_host_ordering.py deleted file mode 100644 index 0309875de6..0000000000 --- a/awx/main/migrations/0018_v300_host_ordering.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0017_v300_prompting_migrations'), - ] - - operations = [ - migrations.AlterModelOptions( - name='host', - options={'ordering': ('name',)}, - ), - ] diff --git a/awx/main/migrations/0019_v300_new_azure_credential.py b/awx/main/migrations/0019_v300_new_azure_credential.py deleted file mode 100644 index ad866f1cd6..0000000000 --- a/awx/main/migrations/0019_v300_new_azure_credential.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0018_v300_host_ordering'), - ] - - operations = [ - migrations.AddField( - model_name='credential', - name='client', - field=models.CharField(default=b'', help_text='Client Id or Application Id for the credential', max_length=128, blank=True), - ), - migrations.AddField( - model_name='credential', - name='secret', - field=models.CharField(default=b'', help_text='Secret Token for this credential', max_length=1024, blank=True), - ), - migrations.AddField( - model_name='credential', - name='subscription', - field=models.CharField(default=b'', help_text='Subscription identifier for this credential', max_length=1024, blank=True), - ), - migrations.AddField( - model_name='credential', - name='tenant', - field=models.CharField(default=b'', help_text='Tenant identifier for this credential', max_length=1024, blank=True), - ), - migrations.AlterField( - model_name='credential', - name='kind', - field=models.CharField(default=b'ssh', max_length=32, choices=[(b'ssh', 'Machine'), (b'net', 'Network'), (b'scm', 'Source Control'), (b'aws', 'Amazon Web Services'), (b'rax', 'Rackspace'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Satellite 6'), (b'cloudforms', 'CloudForms'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure Classic (deprecated)'), (b'azure_rm', 'Microsoft Azure Resource Manager'), (b'openstack', 'OpenStack')]), - ), - migrations.AlterField( - model_name='host', - name='instance_id', - field=models.CharField(default=b'', max_length=1024, blank=True), - ), - migrations.AlterField( - model_name='inventorysource', - name='source', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'', 'Manual'), (b'file', 'Local File, Directory or Script'), (b'rax', 'Rackspace Cloud Servers'), (b'ec2', 'Amazon EC2'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure Classic (deprecated)'), (b'azure_rm', 'Microsoft Azure Resource Manager'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Satellite 6'), (b'cloudforms', 'CloudForms'), (b'openstack', 'OpenStack'), (b'custom', 'Custom Script')]), - ), - migrations.AlterField( - model_name='inventoryupdate', - name='source', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'', 'Manual'), (b'file', 'Local File, Directory or Script'), (b'rax', 'Rackspace Cloud Servers'), (b'ec2', 'Amazon EC2'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure Classic (deprecated)'), (b'azure_rm', 'Microsoft Azure Resource Manager'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Satellite 6'), (b'cloudforms', 'CloudForms'), (b'openstack', 'OpenStack'), (b'custom', 'Custom Script')]), - ), - - ] diff --git a/awx/main/migrations/0020_v300_labels_changes.py b/awx/main/migrations/0020_v300_labels_changes.py deleted file mode 100644 index 5ae949340c..0000000000 --- a/awx/main/migrations/0020_v300_labels_changes.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0019_v300_new_azure_credential'), - ] - - operations = [ - migrations.RemoveField( - model_name='job', - name='labels', - ), - migrations.RemoveField( - model_name='jobtemplate', - name='labels', - ), - migrations.AddField( - model_name='unifiedjob', - name='labels', - field=models.ManyToManyField(related_name='unifiedjob_labels', to='main.Label', blank=True), - ), - migrations.AddField( - model_name='unifiedjobtemplate', - name='labels', - field=models.ManyToManyField(related_name='unifiedjobtemplate_labels', to='main.Label', blank=True), - ), - ] diff --git a/awx/main/migrations/0021_v300_activity_stream.py b/awx/main/migrations/0021_v300_activity_stream.py deleted file mode 100644 index 900fd4b07d..0000000000 --- a/awx/main/migrations/0021_v300_activity_stream.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', '0020_v300_labels_changes'), - ] - - operations = [ - migrations.AddField( - model_name='activitystream', - name='role', - field=models.ManyToManyField(to='main.Role', blank=True), - ), - ] diff --git a/awx/main/migrations/0022_v300_adhoc_extravars.py b/awx/main/migrations/0022_v300_adhoc_extravars.py deleted file mode 100644 index 1326edcd6d..0000000000 --- a/awx/main/migrations/0022_v300_adhoc_extravars.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0021_v300_activity_stream'), - ] - - operations = [ - migrations.AddField( - model_name='adhoccommand', - name='extra_vars', - field=models.TextField(default=b'', blank=True), - ), - migrations.AlterField( - model_name='credential', - name='kind', - field=models.CharField(default=b'ssh', max_length=32, choices=[(b'ssh', 'Machine'), (b'net', 'Network'), (b'scm', 'Source Control'), (b'aws', 'Amazon Web Services'), (b'rax', 'Rackspace'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Red Hat Satellite 6'), (b'cloudforms', 'Red Hat CloudForms'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure Classic (deprecated)'), (b'azure_rm', 'Microsoft Azure Resource Manager'), (b'openstack', 'OpenStack')]), - ), - migrations.AlterField( - model_name='inventorysource', - name='source', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'', 'Manual'), (b'file', 'Local File, Directory or Script'), (b'rax', 'Rackspace Cloud Servers'), (b'ec2', 'Amazon EC2'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure Classic (deprecated)'), (b'azure_rm', 'Microsoft Azure Resource Manager'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Red Hat Satellite 6'), (b'cloudforms', 'Red Hat CloudForms'), (b'openstack', 'OpenStack'), (b'custom', 'Custom Script')]), - ), - migrations.AlterField( - model_name='inventoryupdate', - name='source', - field=models.CharField(default=b'', max_length=32, blank=True, choices=[(b'', 'Manual'), (b'file', 'Local File, Directory or Script'), (b'rax', 'Rackspace Cloud Servers'), (b'ec2', 'Amazon EC2'), (b'gce', 'Google Compute Engine'), (b'azure', 'Microsoft Azure Classic (deprecated)'), (b'azure_rm', 'Microsoft Azure Resource Manager'), (b'vmware', 'VMware vCenter'), (b'satellite6', 'Red Hat Satellite 6'), (b'cloudforms', 'Red Hat CloudForms'), (b'openstack', 'OpenStack'), (b'custom', 'Custom Script')]), - ), - ] diff --git a/awx/main/migrations/0023_v300_activity_stream_ordering.py b/awx/main/migrations/0023_v300_activity_stream_ordering.py deleted file mode 100644 index 1a67010e3a..0000000000 --- a/awx/main/migrations/0023_v300_activity_stream_ordering.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0022_v300_adhoc_extravars'), - ] - - operations = [ - migrations.AlterModelOptions( - name='activitystream', - options={'ordering': ('pk',)}, - ), - ] diff --git a/awx/main/migrations/0024_v300_jobtemplate_allow_simul.py b/awx/main/migrations/0024_v300_jobtemplate_allow_simul.py deleted file mode 100644 index ef67525e4b..0000000000 --- a/awx/main/migrations/0024_v300_jobtemplate_allow_simul.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', '0023_v300_activity_stream_ordering'), - ] - - operations = [ - migrations.AddField( - model_name='jobtemplate', - name='allow_simultaneous', - field=models.BooleanField(default=False), - ), - ] diff --git a/awx/main/migrations/0025_v300_update_rbac_parents.py b/awx/main/migrations/0025_v300_update_rbac_parents.py deleted file mode 100644 index 00776ac3b9..0000000000 --- a/awx/main/migrations/0025_v300_update_rbac_parents.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations -import awx.main.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0024_v300_jobtemplate_allow_simul'), - ] - - operations = [ - migrations.AlterField( - model_name='credential', - name='use_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'organization.admin_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.AlterField( - model_name='team', - name='member_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=b'admin_role', to='main.Role', null=b'True'), - ), - migrations.AlterField( - model_name='team', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'organization.auditor_role', b'member_role'], to='main.Role', null=b'True'), - ), - ] diff --git a/awx/main/migrations/0026_v300_credential_unique.py b/awx/main/migrations/0026_v300_credential_unique.py deleted file mode 100644 index 3c1d714327..0000000000 --- a/awx/main/migrations/0026_v300_credential_unique.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from awx.main.migrations import _rbac as rbac -from awx.main.migrations import _migration_utils as migration_utils -from django.db import migrations -import awx.main.fields - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0025_v300_update_rbac_parents'), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='credential', - unique_together=set([('organization', 'name', 'kind')]), - ), - migrations.AlterField( - model_name='credential', - name='read_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'singleton:system_auditor', b'organization.auditor_role', b'use_role', b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.RunPython(rbac.rebuild_role_hierarchy), - ] diff --git a/awx/main/migrations/0027_v300_team_migrations.py b/awx/main/migrations/0027_v300_team_migrations.py deleted file mode 100644 index b53fd8a969..0000000000 --- a/awx/main/migrations/0027_v300_team_migrations.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from awx.main.migrations import _rbac as rbac -from awx.main.migrations import _team_cleanup as team_cleanup -from awx.main.migrations import _migration_utils as migration_utils -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0026_v300_credential_unique'), - ] - - operations = [ - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.RunPython(team_cleanup.migrate_team), - migrations.RunPython(rbac.rebuild_role_hierarchy), - ] diff --git a/awx/main/migrations/0028_v300_org_team_cascade.py b/awx/main/migrations/0028_v300_org_team_cascade.py deleted file mode 100644 index 80378c5729..0000000000 --- a/awx/main/migrations/0028_v300_org_team_cascade.py +++ /dev/null @@ -1,21 +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', '0027_v300_team_migrations'), - ] - - operations = [ - migrations.AlterField( - model_name='team', - name='organization', - field=models.ForeignKey(related_name='teams', to='main.Organization'), - preserve_default=False, - ), - ] diff --git a/awx/main/migrations/0029_v302_add_ask_skip_tags.py b/awx/main/migrations/0029_v302_add_ask_skip_tags.py deleted file mode 100644 index 0aa5192c33..0000000000 --- a/awx/main/migrations/0029_v302_add_ask_skip_tags.py +++ /dev/null @@ -1,20 +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', '0028_v300_org_team_cascade'), - ] - - operations = [ - migrations.AddField( - model_name='jobtemplate', - name='ask_skip_tags_on_launch', - field=models.BooleanField(default=False), - ), - ] diff --git a/awx/main/migrations/0030_v302_job_survey_passwords.py b/awx/main/migrations/0030_v302_job_survey_passwords.py deleted file mode 100644 index fa6c2cd3fe..0000000000 --- a/awx/main/migrations/0030_v302_job_survey_passwords.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', '0029_v302_add_ask_skip_tags'), - ] - - operations = [ - migrations.AddField( - model_name='job', - name='survey_passwords', - field=jsonfield.fields.JSONField(default={}, editable=False, blank=True), - ), - ] diff --git a/awx/main/migrations/0031_v302_migrate_survey_passwords.py b/awx/main/migrations/0031_v302_migrate_survey_passwords.py deleted file mode 100644 index 5eac01b853..0000000000 --- a/awx/main/migrations/0031_v302_migrate_survey_passwords.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from awx.main.migrations import _save_password_keys -from awx.main.migrations import _migration_utils as migration_utils -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0030_v302_job_survey_passwords'), - ] - - operations = [ - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.RunPython(_save_password_keys.migrate_survey_passwords), - ] diff --git a/awx/main/migrations/0032_v302_credential_permissions_update.py b/awx/main/migrations/0032_v302_credential_permissions_update.py deleted file mode 100644 index 2587588e6d..0000000000 --- a/awx/main/migrations/0032_v302_credential_permissions_update.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations -from awx.main.migrations import _rbac as rbac -from awx.main.migrations import _migration_utils as migration_utils -import awx.main.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0031_v302_migrate_survey_passwords'), - ] - - operations = [ - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.AlterField( - model_name='credential', - 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='credential', - name='use_role', - field=awx.main.fields.ImplicitRoleField(related_name='+', parent_role=[b'admin_role'], to='main.Role', null=b'True'), - ), - migrations.RunPython(rbac.infer_credential_org_from_team), - migrations.RunPython(rbac.rebuild_role_hierarchy), - ] diff --git a/awx/main/migrations/0033_v303_v245_host_variable_fix.py b/awx/main/migrations/0033_v303_v245_host_variable_fix.py deleted file mode 100644 index fad3545b65..0000000000 --- a/awx/main/migrations/0033_v303_v245_host_variable_fix.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations -from awx.main.migrations import _migration_utils as migration_utils - - -def update_dashed_host_variables(apps, schema_editor): - Host = apps.get_model('main', 'Host') - for host in Host.objects.filter(variables='---'): - host.variables = '' - host.save() - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0032_v302_credential_permissions_update'), - ] - - operations = [ - migrations.RunPython(migration_utils.set_current_apps_for_migrations), - migrations.RunPython(update_dashed_host_variables), - ] diff --git a/awx/main/migrations/0035_v310_remove_tower_settings.py b/awx/main/migrations/0035_v310_remove_tower_settings.py deleted file mode 100644 index e92dfe605c..0000000000 --- a/awx/main/migrations/0035_v310_remove_tower_settings.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0034_v310_release'), - ] - - operations = [ - # Remove Tower settings, these settings are now in separate awx.conf app. - migrations.RemoveField( - model_name='towersettings', - name='user', - ), - migrations.DeleteModel( - name='TowerSettings', - ), - ] diff --git a/awx/main/migrations/0037_v313_instance_version.py b/awx/main/migrations/0037_v313_instance_version.py deleted file mode 100644 index 64c520ea85..0000000000 --- a/awx/main/migrations/0037_v313_instance_version.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', '0036_v311_insights'), - ] - - operations = [ - migrations.AddField( - model_name='instance', - name='version', - field=models.CharField(max_length=24, blank=True), - ), - ] diff --git a/awx/main/migrations/0040_v320_add_credentialtype_model.py b/awx/main/migrations/0040_v320_add_credentialtype_model.py deleted file mode 100644 index 3331b40e24..0000000000 --- a/awx/main/migrations/0040_v320_add_credentialtype_model.py +++ /dev/null @@ -1,84 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -from django.conf import settings -import taggit.managers -import awx.main.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0039_v320_data_migrations'), - ] - - operations = [ - migrations.CreateModel( - name='CredentialType', - 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)), - ('description', models.TextField(default=b'', blank=True)), - ('name', models.CharField(max_length=512)), - ('kind', models.CharField(max_length=32, choices=[(b'ssh', 'Machine'), (b'vault', 'Vault'), (b'net', 'Network'), (b'scm', 'Source Control'), (b'cloud', 'Cloud'), (b'insights', 'Insights')])), - ('managed_by_tower', models.BooleanField(default=False, editable=False)), - ('inputs', awx.main.fields.CredentialTypeInputField(default={}, blank=True, help_text='Enter inputs using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')), - ('injectors', awx.main.fields.CredentialTypeInjectorField(default={}, blank=True, help_text='Enter injectors using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')), - ('created_by', models.ForeignKey(related_name="{u'class': 'credentialtype', u'app_label': 'main'}(class)s_created+", on_delete=django.db.models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ('modified_by', models.ForeignKey(related_name="{u'class': 'credentialtype', u'app_label': 'main'}(class)s_modified+", on_delete=django.db.models.deletion.SET_NULL, default=None, editable=False, to=settings.AUTH_USER_MODEL, null=True)), - ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')), - ], - options={ - 'ordering': ('kind', 'name'), - }, - ), - migrations.AlterModelOptions( - name='credential', - options={'ordering': ('name',)}, - ), - migrations.AddField( - model_name='credential', - name='inputs', - field=awx.main.fields.CredentialInputField(default={}, blank=True), - ), - migrations.AddField( - model_name='credential', - name='credential_type', - field=models.ForeignKey(related_name='credentials', to='main.CredentialType', null=True), - preserve_default=False, - ), - migrations.AddField( - model_name='job', - name='vault_credential', - field=models.ForeignKey(related_name='jobs_as_vault_credential+', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), - ), - migrations.AddField( - model_name='jobtemplate', - name='vault_credential', - field=models.ForeignKey(related_name='jobtemplates_as_vault_credential+', on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.Credential', null=True), - ), - migrations.AddField( - model_name='job', - name='extra_credentials', - field=models.ManyToManyField(related_name='_job_extra_credentials_+', to='main.Credential'), - ), - migrations.AddField( - model_name='jobtemplate', - name='extra_credentials', - field=models.ManyToManyField(related_name='_jobtemplate_extra_credentials_+', to='main.Credential'), - ), - migrations.AlterUniqueTogether( - name='credential', - unique_together=set([('organization', 'name', 'credential_type')]), - ), - - # Connecting activity stream - migrations.AddField( - model_name='activitystream', - name='credential_type', - field=models.ManyToManyField(to='main.CredentialType', blank=True), - ), - ] diff --git a/awx/main/migrations/0041_v320_migrate_v1_credentials.py b/awx/main/migrations/0041_v320_migrate_v1_credentials.py deleted file mode 100644 index 098e631fde..0000000000 --- a/awx/main/migrations/0041_v320_migrate_v1_credentials.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations -from awx.main.migrations import _credentialtypes as credentialtypes - - -class Migration(migrations.Migration): - - dependencies = [ - ('main', '0040_v320_add_credentialtype_model'), - ] - - operations = [ - migrations.RunPython(credentialtypes.migrate_to_v2_credentials), - migrations.RunPython(credentialtypes.migrate_job_credentials), - ] diff --git a/awx/main/migrations/0043_v320_instancegroups.py b/awx/main/migrations/0043_v320_instancegroups.py deleted file mode 100644 index 3f7d279307..0000000000 --- a/awx/main/migrations/0043_v320_instancegroups.py +++ /dev/null @@ -1,56 +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', '0042_v320_drop_v1_credential_fields'), - ] - - operations = [ - migrations.CreateModel( - name='InstanceGroup', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=250)), - ('created', models.DateTimeField(auto_now_add=True)), - ('modified', models.DateTimeField(auto_now=True)), - ('controller', models.ForeignKey(related_name='controlled_groups', default=None, editable=False, to='main.InstanceGroup', help_text='Instance Group to remotely control this group.', null=True)), - ('instances', models.ManyToManyField(help_text='Instances that are members of this InstanceGroup', related_name='rampart_groups', editable=False, to='main.Instance')), - ], - ), - migrations.AddField( - model_name='inventory', - name='instance_groups', - field=models.ManyToManyField(to='main.InstanceGroup', blank=True), - ), - migrations.AddField( - model_name='unifiedjob', - name='instance_group', - field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='main.InstanceGroup', help_text='The Rampart/Instance group the job was run under', null=True), - ), - migrations.AddField( - model_name='unifiedjobtemplate', - name='instance_groups', - field=models.ManyToManyField(to='main.InstanceGroup', blank=True), - ), - migrations.AddField( - model_name='organization', - name='instance_groups', - field=models.ManyToManyField(to='main.InstanceGroup', blank=True), - ), - migrations.AddField( - model_name='activitystream', - name='instance_group', - field=models.ManyToManyField(to='main.InstanceGroup', blank=True), - ), - migrations.AddField( - model_name='instance', - name='last_isolated_check', - field=models.DateTimeField(auto_now_add=True, null=True), - ), - ]