From 549450c4d1adb44b4680e02383c001270576b753 Mon Sep 17 00:00:00 2001 From: Hao Liu Date: Thu, 14 Jul 2022 15:22:30 -0400 Subject: [PATCH] add database column to main_project table add new column to `main_project` table - `signature_validation` - `signature_validation_credential` TODO: update awx_collection Signed-off-by: Hao Liu Co-Authored-By: Lila Yasin <89486372+djyasin@users.noreply.github.com> --- awx/api/serializers.py | 2 ++ ...5_added_contentsigning_to_project_model.py | 31 +++++++++++++++++++ awx/main/models/projects.py | 15 +++++++++ 3 files changed, 48 insertions(+) create mode 100644 awx/main/migrations/0165_added_contentsigning_to_project_model.py diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 018301f63f..0daa5e5832 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -1473,6 +1473,8 @@ class ProjectSerializer(UnifiedJobTemplateSerializer, ProjectOptionsSerializer): ) + ( 'last_update_failed', 'last_updated', + 'signature_validation', + 'signature_validation_credential', ) # Backwards compatibility read_only_fields = ('*', 'custom_virtualenv') diff --git a/awx/main/migrations/0165_added_contentsigning_to_project_model.py b/awx/main/migrations/0165_added_contentsigning_to_project_model.py new file mode 100644 index 0000000000..47214de68f --- /dev/null +++ b/awx/main/migrations/0165_added_contentsigning_to_project_model.py @@ -0,0 +1,31 @@ +# Generated by Django 3.2.13 on 2022-07-20 17:46 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0164_remove_inventorysource_update_on_project_update'), + ] + + operations = [ + migrations.AddField( + model_name='project', + name='signature_validation', + field=models.BooleanField(default=False, help_text='Enable signature validation.'), + ), + migrations.AddField( + model_name='project', + name='signature_validation_credential', + field=models.ForeignKey( + blank=True, + default=None, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name='projects_signature_validation', + to='main.credential', + ), + ), + ] diff --git a/awx/main/models/projects.py b/awx/main/models/projects.py index 580f029a0b..83c64fca81 100644 --- a/awx/main/models/projects.py +++ b/awx/main/models/projects.py @@ -284,6 +284,21 @@ class Project(UnifiedJobTemplate, ProjectOptions, ResourceMixin, CustomVirtualEn help_text=_('Allow changing the SCM branch or revision in a job template ' 'that uses this project.'), ) + # indicate if content signature validation is enabled + signature_validation = models.BooleanField( + default=False, + help_text=_('Enable signature validation.'), + ) + # credential (keys) used to validate content signature + signature_validation_credential = models.ForeignKey( + 'Credential', + related_name='%(class)ss_signature_validation', + blank=True, + null=True, + default=None, + on_delete=models.SET_NULL, + ) + scm_revision = models.CharField( max_length=1024, blank=True,