def _run_orphan_cleanup(self, resources): """ Run orphan_cleanup to delete all CollectionVersions that are not part of any RepositoryVersion.""" task = create_task(orphan_cleanup, params={}, resources=resources, task_args={}) print(f'task created: {task}')
def _bump_repo_version(self, repo, resources, collection_versions): """Create new RepositoryVersion without specific CollectionVersion.""" params = { 'repository_pk': repo.pk, 'add_content_units': [], 'remove_content_units': collection_versions, } task = create_task(add_and_remove, params=params, resources=resources, task_args={}) print(f'task created: {task}')
def post(self, request, *args, **kwargs): """Upload an Ansible Collection.""" serializer = serializers.CollectionUploadSerializer( data=request.data, context={'request': request}) serializer.is_valid(raise_exception=True) data = serializer.validated_data filename = data['filename'] # TODO(cutwater): Merge Artifact and UploadCollectionSerializers namespace = self._get_namespace(data) self._check_namespace_access(namespace, request.user) self._check_max_file_size(request.data['file'].size) self._check_role_name_conflict(namespace, filename.name) self._check_multi_repo_name_conflict(namespace, filename.name) self._check_version_conflict(namespace, filename) self._check_is_tarfile(request.data['file'].file.name) artifact_data = {'file': request.data['file']} if serializer.data['sha256'] is not None: artifact_data['sha256'] = data['sha256'] repository = pulp_models.Repository.objects.get( name=settings.GALAXY_PULP_REPOSITORY) artifact = self._save_artifact(artifact_data) task = tasking.create_task(tasks.import_collection, task_cls=models.CollectionImport, params={ 'artifact_id': artifact.pk, 'repository_id': repository.pk, }, task_args={ 'namespace': namespace, 'name': filename.name, 'version': filename.version, }) data = { 'task': reverse('api:v2:collection-import-detail', args=[task.pk], request=request) } return Response(data, status=http_codes.HTTP_202_ACCEPTED)