From b44d53a52dd360a1fca570ba93b787911f06b183 Mon Sep 17 00:00:00 2001 From: Andrew Crosby Date: Mon, 12 Oct 2020 14:19:33 -0400 Subject: [PATCH] Remove references to CollectionVersion certification flag Closes-Issue: AAH-47 Signed-off-by: Andrew Crosby --- CHANGES/47.misc | 1 + galaxy_ng/app/api/ui/serializers/__init__.py | 2 - .../app/api/ui/serializers/collection.py | 9 ---- galaxy_ng/app/api/ui/viewsets/collection.py | 2 +- galaxy_ng/app/constants.py | 6 --- galaxy_ng/app/settings.py | 4 +- galaxy_ng/app/tasks/publishing.py | 5 -- galaxy_ng/tests/unit/app/test_tasks.py | 51 +++++++++++++++---- 8 files changed, 45 insertions(+), 35 deletions(-) create mode 100644 CHANGES/47.misc diff --git a/CHANGES/47.misc b/CHANGES/47.misc new file mode 100644 index 000000000..e5f815dec --- /dev/null +++ b/CHANGES/47.misc @@ -0,0 +1 @@ +Remove references to CollectionVersion certification flag diff --git a/galaxy_ng/app/api/ui/serializers/__init__.py b/galaxy_ng/app/api/ui/serializers/__init__.py index 19d43142b..9c8c25fe5 100644 --- a/galaxy_ng/app/api/ui/serializers/__init__.py +++ b/galaxy_ng/app/api/ui/serializers/__init__.py @@ -5,7 +5,6 @@ CollectionDetailSerializer, CollectionListSerializer, CollectionVersionSerializer, - CertificationSerializer, CollectionVersionDetailSerializer, CollectionVersionBaseSerializer, CollectionRemoteSerializer, @@ -36,7 +35,6 @@ 'CollectionDetailSerializer', 'CollectionListSerializer', 'CollectionVersionSerializer', - 'CertificationSerializer', 'CollectionVersionDetailSerializer', 'CollectionVersionBaseSerializer', 'CollectionRemoteSerializer', diff --git a/galaxy_ng/app/api/ui/serializers/collection.py b/galaxy_ng/app/api/ui/serializers/collection.py index 03092bdca..df2786970 100644 --- a/galaxy_ng/app/api/ui/serializers/collection.py +++ b/galaxy_ng/app/api/ui/serializers/collection.py @@ -73,10 +73,6 @@ class CollectionVersionBaseSerializer(Serializer): name = serializers.CharField() version = serializers.CharField() created_at = serializers.DateTimeField(source='pulp_created') - certification = serializers.ChoiceField( - ['certified', 'not_certified', 'needs_review'], - required=True - ) metadata = CollectionMetadataSerializer(source='*') contents = serializers.ListField(ContentSerializer()) @@ -100,11 +96,6 @@ def get_repository_list(self, collection_version): return cv_in_repo_latest_version -class CertificationSerializer(Serializer): - certification = serializers.ChoiceField( - ['certified', 'not_certified', 'needs_review']) - - class CollectionVersionDetailSerializer(CollectionVersionBaseSerializer): docs_blob = serializers.JSONField() diff --git a/galaxy_ng/app/api/ui/viewsets/collection.py b/galaxy_ng/app/api/ui/viewsets/collection.py index 5891f3f36..9f3bec993 100644 --- a/galaxy_ng/app/api/ui/viewsets/collection.py +++ b/galaxy_ng/app/api/ui/viewsets/collection.py @@ -92,7 +92,7 @@ def repo_filter(self, queryset, name, value): class Meta: model = CollectionVersion - fields = ['namespace', 'name', 'version', 'certification', 'repository'] + fields = ['namespace', 'name', 'version', 'repository'] class CollectionVersionViewSet(api_base.GenericViewSet): diff --git a/galaxy_ng/app/constants.py b/galaxy_ng/app/constants.py index 48929a6c8..995b6a3cd 100644 --- a/galaxy_ng/app/constants.py +++ b/galaxy_ng/app/constants.py @@ -1,12 +1,6 @@ import enum -class CertificationStatus(enum.Enum): - CERTIFIED = 'certified' - NEEDS_REVIEW = 'needs_review' - NOT_CERTIFIED = 'not_certified' - - class DeploymentMode(enum.Enum): STANDALONE = 'standalone' INSIGHTS = 'insights' diff --git a/galaxy_ng/app/settings.py b/galaxy_ng/app/settings.py index e4415ddfc..f6602875d 100644 --- a/galaxy_ng/app/settings.py +++ b/galaxy_ng/app/settings.py @@ -40,9 +40,7 @@ # associated repository, distribution, and distribution base_paths GALAXY_API_SYNCLIST_NAME_FORMAT = "{account_name}-synclist" -# Require approval for incoming content, -# currently using a certification flag, -# later using a staging repository +# Require approval for incoming content, which uses a staging repository GALAXY_REQUIRE_CONTENT_APPROVAL = True # Local rest framework settings diff --git a/galaxy_ng/app/tasks/publishing.py b/galaxy_ng/app/tasks/publishing.py index 9cca66d0a..0ae06ca34 100644 --- a/galaxy_ng/app/tasks/publishing.py +++ b/galaxy_ng/app/tasks/publishing.py @@ -12,8 +12,6 @@ log = logging.getLogger(__name__) -VERSION_CERTIFIED = "certified" - GOLDEN_NAME = settings.GALAXY_API_DEFAULT_DISTRIBUTION_BASE_PATH STAGING_NAME = settings.GALAXY_API_STAGING_DISTRIBUTION_BASE_PATH @@ -91,9 +89,6 @@ def import_and_auto_approve(temp_file_pk, **kwargs): created_collection_versions = get_created_collection_versions() for collection_version in created_collection_versions: - collection_version.certification = VERSION_CERTIFIED - collection_version.save() - # enqueue task to add collection_version to golden repo add_task_args = (collection_version.pk, golden_repo.pk) enqueue_with_reservation(add_content_to_repository, add_locks, args=add_task_args) diff --git a/galaxy_ng/tests/unit/app/test_tasks.py b/galaxy_ng/tests/unit/app/test_tasks.py index ce4ce6c61..02a037a33 100644 --- a/galaxy_ng/tests/unit/app/test_tasks.py +++ b/galaxy_ng/tests/unit/app/test_tasks.py @@ -11,9 +11,16 @@ Collection, CollectionVersion, AnsibleRepository, AnsibleDistribution ) -from galaxy_ng.app.tasks import import_and_auto_approve, import_and_move_to_staging +from galaxy_ng.app.tasks import ( + add_content_to_repository, + remove_content_from_repository, + import_and_auto_approve, + import_and_move_to_staging, +) + log = logging.getLogger(__name__) +logging.getLogger().setLevel(logging.DEBUG) golden_name = settings.GALAXY_API_DEFAULT_DISTRIBUTION_BASE_PATH staging_name = settings.GALAXY_API_STAGING_DISTRIBUTION_BASE_PATH @@ -42,25 +49,52 @@ def setUp(self): ) content_artifact.save() + def test_add_content_to_repository(self): + repo = AnsibleRepository.objects.get(name=staging_name) + repo_version_number = repo.latest_version().number + + self.assertNotIn( + self.collection_version, + CollectionVersion.objects.filter(pk__in=repo.latest_version().content)) + + add_content_to_repository(self.collection_version.pk, repo.pk) + + self.assertEqual(repo_version_number + 1, repo.latest_version().number) + self.assertIn( + self.collection_version, + CollectionVersion.objects.filter(pk__in=repo.latest_version().content)) + + def test_remove_content_from_repository(self): + repo = AnsibleRepository.objects.get(name=staging_name) + add_content_to_repository(self.collection_version.pk, repo.pk) + + repo_version_number = repo.latest_version().number + self.assertIn( + self.collection_version, + CollectionVersion.objects.filter(pk__in=repo.latest_version().content)) + + remove_content_from_repository(self.collection_version.pk, repo.pk) + + self.assertEqual(repo_version_number + 1, repo.latest_version().number) + self.assertNotIn( + self.collection_version, + CollectionVersion.objects.filter(pk__in=repo.latest_version().content)) + @mock.patch('galaxy_ng.app.tasks.publishing.get_created_collection_versions') @mock.patch('galaxy_ng.app.tasks.publishing.import_collection') @mock.patch('galaxy_ng.app.tasks.publishing.enqueue_with_reservation') def test_import_and_auto_approve(self, mocked_enqueue, mocked_import, mocked_get_created): inbound_repo = AnsibleRepository.objects.get(name=staging_name) - golden_repo = AnsibleRepository.objects.create(name=golden_name) + golden_repo = AnsibleRepository.objects.create(name=golden_name) golden_dist = AnsibleDistribution(name=golden_name, base_path=golden_name) golden_dist.repository = golden_repo golden_dist.save() - self.assertTrue(self.collection_version.certification == 'needs_review') - mocked_get_created.return_value = [self.collection_version] import_and_auto_approve(self.pulp_temp_file.pk, repository_pk=inbound_repo.pk) - self.collection_version.refresh_from_db() - self.assertTrue(self.collection_version.certification == 'certified') self.assertTrue(mocked_import.call_count == 1) self.assertTrue(mocked_enqueue.call_count == 2) @@ -75,11 +109,10 @@ def test_import_and_auto_approve(self, mocked_enqueue, mocked_import, mocked_get @mock.patch('galaxy_ng.app.tasks.publishing.import_collection') @mock.patch('galaxy_ng.app.tasks.publishing.enqueue_with_reservation') def test_import_and_move_to_staging(self, mocked_enqueue, mocked_import, mocked_get_created): - inbound_name = 'the_incoming_repo' - inbound_repo = AnsibleRepository.objects.create(name=inbound_name) - inbound_repo.save() staging_repo = AnsibleRepository.objects.get(name=staging_name) + inbound_name = 'the_incoming_repo' + inbound_repo = AnsibleRepository.objects.create(name=inbound_name) inbound_dist = AnsibleDistribution(name=inbound_name, base_path=inbound_name) inbound_dist.repository = inbound_repo inbound_dist.save()