pulp-ansible 0.25.2__tar.gz → 0.25.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/CHANGES.md +8 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/PKG-INFO +1 -1
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/__init__.py +1 -1
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/views.py +18 -12
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_collection.py +37 -12
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible.egg-info/PKG-INFO +1 -1
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pyproject.toml +2 -2
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/COMMITMENT +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/COPYRIGHT +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/LICENSE +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/MANIFEST.in +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/README.rst +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/functest_requirements.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/constants.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/downloaders.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/fields.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/mixins.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/serializers.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/exceptions.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/filters.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/pagination.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/serializers.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/v3/viewsets.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/galaxy/views.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/global_access_conditions.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/logutils.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/management/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/management/commands/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/management/commands/download-log.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0001_initial.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0001_initial_squashed_0040_ansiblerepository_keyring.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0002_advanced_collections.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0003_add_tags_and_collectionversion_fields.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0004_add_fulltext_search_indexes.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0005_collectionversion_is_highest.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0006_remove_whitelist_and_alter_collection_version_name.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0007_collectionversion_is_certified.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0008_collectionremote_requirements_file.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0009_collectionimport.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0010_ansible_related_names.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0011_collectionimport.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0012_auto_20190906_2253.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0013_pulp_fields.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0014_certification_enum.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0015_ansiblerepository.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0016_add_extension.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0017_increase_length_collectionversion_fields.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0018_fix_collection_relative_path.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0019_collection_token.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0020_auto_20200810_1926.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0021_rename_role_remote.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0022_URLField_to_CharField.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0023_alter_requirements_file_field.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0024_remove_collectionversion_certification.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0025_increase_collection_version_version_size.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0026_deprecation_per_repository.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0027_tag_length.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0028_collectionversion_namespace_length.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0029_manifest_and_files_json_fields.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0030_collectionversion_requires_ansible.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0031_ansiblerepository_last_synced_metadata_time.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0032_collectionremote_sync_dependencies.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0033_swap_distribution_model.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0034_handle_jsonfield_warnings.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0035_deprecation_content.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0036_update_repository_content.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0037_gitremote.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0038_collectionversionsignature.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0039_collectionremote_signed_only.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0040_ansiblerepository_keyring.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0041_alter_collectionversion_collection.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0042_ansiblerepository_gpgkey.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0043_alter_collectionversionsignature_data.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0044_alter_collectionremote_token.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0045_downloadlog.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0046_add_fulltext_search_fix.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0047_ansible_namespace.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0048_collectionversionmark.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0049_rbac_permissions.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0050_crossrepositorycollectionversionindex.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0051_cvindex_build.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0052_alter_ansiblecollectiondeprecated_content_ptr_and_more.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0053_collectiondownloadcount.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0054_split_collection_version_numbers.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0055_alter_collectionversion_version_alter_role_version.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0056_collectionversion_sha256.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0057_collectionversion_sha256_migrate.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0058_fix_0056_regression.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0059_collectionversion_unique_sha256.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/modelresource.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/models.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/schema/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/schema/copy_config.json +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/serializers.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/settings.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/collections.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/collectionversion_index.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/copy.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/deletion.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/git.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/mark.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/roles.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/signature.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/test_tasks.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/upload.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/utils.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/urls.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/utils.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/viewsets.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/webserver_snippets/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/webserver_snippets/apache.conf +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/webserver_snippets/nginx.conf +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/pytest_plugin.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/test_copy_and_move.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/test_crud_collection_versions.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/test_marks.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/test_remote.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/test_signatures.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/test_sync.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_client_configuration.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_collection_naming_edgecases.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_collection_version_search.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_content_guard.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_deletion.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_deprecation.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_namespace.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_proxy.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_redirects.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_serializers.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/v3/test_sync.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/git/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/git/test_crud_remotes.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/git/test_sync.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/role/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/role/test_crud_distribution.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/role/test_crud_remote.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/role/test_sync.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/test_export_import.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/test_rbac.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/cli/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/cli/test_collection_download_count.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/cli/test_collection_install.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/cli/test_collection_upload.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/cli/test_role_install.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/constants.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/utils.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/create_repos_with_collections.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/fast_load_collections.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/generate_collections.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/promote.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/migrations/__init__.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/migrations/conftest.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/migrations/test_0057_collection_version_sha256_migrate.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/migrations/test_x_repo_search_migration.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/test_cv_index.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/test_models.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/test_search.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/test_serializers.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/test_tasks.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/unit/utils.py +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible.egg-info/SOURCES.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible.egg-info/dependency_links.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible.egg-info/entry_points.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible.egg-info/requires.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible.egg-info/top_level.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/setup.cfg +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/test_requirements.txt +0 -0
- {pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/unittest_requirements.txt +0 -0
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
[//]: # (towncrier release notes start)
|
|
10
10
|
|
|
11
|
+
## 0.25.3 (2026-02-06) {: #0.25.3 }
|
|
12
|
+
|
|
13
|
+
#### Bugfixes {: #0.25.3-bugfix }
|
|
14
|
+
|
|
15
|
+
- Fixed a 500 error when attempting to download a collection with and invalid name.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
11
19
|
## 0.25.2 (2026-01-27) {: #0.25.2 }
|
|
12
20
|
|
|
13
21
|
#### Bugfixes {: #0.25.2-bugfix }
|
|
@@ -2,6 +2,7 @@ from datetime import datetime
|
|
|
2
2
|
from gettext import gettext as _
|
|
3
3
|
import semantic_version
|
|
4
4
|
import base64
|
|
5
|
+
import re
|
|
5
6
|
|
|
6
7
|
from django.db import DatabaseError, IntegrityError
|
|
7
8
|
from django.db.models import F, OuterRef, Exists, Subquery, Prefetch
|
|
@@ -621,7 +622,7 @@ class CollectionArtifactDownloadView(GalaxyAuthMixin, views.APIView, AnsibleDist
|
|
|
621
622
|
DEFAULT_ACCESS_POLICY = _PERMISSIVE_ACCESS_POLICY
|
|
622
623
|
|
|
623
624
|
@staticmethod
|
|
624
|
-
def log_download(request,
|
|
625
|
+
def log_download(request, namespace, name, version, distro_base_path):
|
|
625
626
|
"""Log the download of the collection version."""
|
|
626
627
|
|
|
627
628
|
def _get_org_id(request):
|
|
@@ -639,7 +640,7 @@ class CollectionArtifactDownloadView(GalaxyAuthMixin, views.APIView, AnsibleDist
|
|
|
639
640
|
|
|
640
641
|
return identity["internal"]["org_id"]
|
|
641
642
|
|
|
642
|
-
#
|
|
643
|
+
# Get user IP
|
|
643
644
|
x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
|
|
644
645
|
ip = x_forwarded_for.split(",")[0] if x_forwarded_for else request.META.get("REMOTE_ADDR")
|
|
645
646
|
|
|
@@ -650,13 +651,9 @@ class CollectionArtifactDownloadView(GalaxyAuthMixin, views.APIView, AnsibleDist
|
|
|
650
651
|
distribution.repository_version or distribution.repository.latest_version()
|
|
651
652
|
)
|
|
652
653
|
|
|
653
|
-
# Getting collection version
|
|
654
|
-
ns, name, version = filename.split("-", maxsplit=2)
|
|
655
|
-
# Get off the ending .tar.gz
|
|
656
|
-
version = ".".join(version.split(".")[:3])
|
|
657
654
|
collection_version = get_object_or_404(
|
|
658
655
|
CollectionVersion.objects.filter(pk__in=repository_version.content),
|
|
659
|
-
namespace=
|
|
656
|
+
namespace=namespace,
|
|
660
657
|
name=name,
|
|
661
658
|
version=version,
|
|
662
659
|
)
|
|
@@ -681,11 +678,10 @@ class CollectionArtifactDownloadView(GalaxyAuthMixin, views.APIView, AnsibleDist
|
|
|
681
678
|
return
|
|
682
679
|
raise
|
|
683
680
|
|
|
684
|
-
def count_download(
|
|
685
|
-
ns, name, _ = filename.split("-", maxsplit=2)
|
|
681
|
+
def count_download(namespace, name):
|
|
686
682
|
try:
|
|
687
683
|
collection, created = CollectionDownloadCount.objects.get_or_create(
|
|
688
|
-
namespace=
|
|
684
|
+
namespace=namespace, name=name, defaults={"download_count": 1}
|
|
689
685
|
)
|
|
690
686
|
if not created:
|
|
691
687
|
collection.download_count = F("download_count") + 1
|
|
@@ -713,13 +709,23 @@ class CollectionArtifactDownloadView(GalaxyAuthMixin, views.APIView, AnsibleDist
|
|
|
713
709
|
filename=self.kwargs["filename"],
|
|
714
710
|
)
|
|
715
711
|
|
|
712
|
+
match = re.fullmatch(
|
|
713
|
+
r"(?P<namespace>\w+)-(?P<name>\w+)-(?P<version>[\w.-]+)\.tar\.gz",
|
|
714
|
+
self.kwargs["filename"],
|
|
715
|
+
)
|
|
716
|
+
if not match:
|
|
717
|
+
raise NotFound()
|
|
718
|
+
namespace = match.group("namespace")
|
|
719
|
+
name = match.group("name")
|
|
720
|
+
version = match.group("version")
|
|
721
|
+
|
|
716
722
|
if settings.ANSIBLE_COLLECT_DOWNLOAD_LOG:
|
|
717
723
|
CollectionArtifactDownloadView.log_download(
|
|
718
|
-
request,
|
|
724
|
+
request, namespace, name, version, distro_base_path
|
|
719
725
|
)
|
|
720
726
|
|
|
721
727
|
if settings.ANSIBLE_COLLECT_DOWNLOAD_COUNT:
|
|
722
|
-
CollectionArtifactDownloadView.count_download(
|
|
728
|
+
CollectionArtifactDownloadView.count_download(namespace, name)
|
|
723
729
|
|
|
724
730
|
if (
|
|
725
731
|
distribution.content_guard
|
|
@@ -118,6 +118,13 @@ def collection_detail(http_session, collection_upload, pulp_dist, collection_art
|
|
|
118
118
|
return response.json()
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
@pytest.fixture(scope="class")
|
|
122
|
+
def collection_highest_version(http_session, collection_detail):
|
|
123
|
+
response = http_session.get(collection_detail["highest_version"]["href"])
|
|
124
|
+
response.raise_for_status()
|
|
125
|
+
return response.json()
|
|
126
|
+
|
|
127
|
+
|
|
121
128
|
@pytest.fixture(scope="class")
|
|
122
129
|
def pulp_dist(ansible_repository_factory, ansible_distribution_factory):
|
|
123
130
|
"""Create an Ansible Distribution to simulate the automation hub environment for testing."""
|
|
@@ -291,34 +298,52 @@ class TestCollection:
|
|
|
291
298
|
# # 'repository': 'http://github.example.com/orionuser1/skeleton',
|
|
292
299
|
# # 'tags': ['collectiontest']},
|
|
293
300
|
|
|
294
|
-
def
|
|
301
|
+
def test_collection_download_metadata_unauthorized_fails(
|
|
295
302
|
self,
|
|
296
303
|
http_session,
|
|
297
304
|
collection_detail,
|
|
298
|
-
collection_artifact,
|
|
299
305
|
):
|
|
300
|
-
"""Test collection download URL.
|
|
301
|
-
|
|
302
|
-
Should require authentication and redirect to a download location.
|
|
303
|
-
"""
|
|
304
306
|
response = http_session.get(collection_detail["highest_version"]["href"], auth=NullAuth())
|
|
305
307
|
assert response.status_code == 401
|
|
306
|
-
response = http_session.get(collection_detail["highest_version"]["href"])
|
|
307
|
-
response.raise_for_status()
|
|
308
|
-
version = response.json()
|
|
309
308
|
|
|
309
|
+
def test_collection_download_redirects(
|
|
310
|
+
self,
|
|
311
|
+
http_session,
|
|
312
|
+
collection_highest_version,
|
|
313
|
+
collection_artifact,
|
|
314
|
+
):
|
|
310
315
|
# Artifact Download Endoint
|
|
311
|
-
url =
|
|
316
|
+
url = collection_highest_version["download_url"]
|
|
312
317
|
|
|
313
318
|
with open(collection_artifact.filename, "rb") as fp:
|
|
314
319
|
tarball = fp.read()
|
|
315
320
|
|
|
316
|
-
response = http_session.get(url, auth=NullAuth())
|
|
317
|
-
assert response.status_code == 401
|
|
318
321
|
response = http_session.get(url)
|
|
319
322
|
assert response.status_code == 200, (url, response.request.headers)
|
|
320
323
|
assert response.content == tarball
|
|
321
324
|
|
|
325
|
+
def test_collection_download_redirect_fails_unauthorized(
|
|
326
|
+
self,
|
|
327
|
+
http_session,
|
|
328
|
+
collection_highest_version,
|
|
329
|
+
):
|
|
330
|
+
# Artifact Download Endoint
|
|
331
|
+
url = collection_highest_version["download_url"]
|
|
332
|
+
|
|
333
|
+
response = http_session.get(url, auth=NullAuth())
|
|
334
|
+
assert response.status_code == 401
|
|
335
|
+
|
|
336
|
+
def test_downloading_collection_with_bad_name_returns_not_found(
|
|
337
|
+
self,
|
|
338
|
+
http_session,
|
|
339
|
+
collection_highest_version,
|
|
340
|
+
):
|
|
341
|
+
# Artifact Download Endoint, but we mess up the address.
|
|
342
|
+
url = collection_highest_version["download_url"].replace("-", "_")
|
|
343
|
+
|
|
344
|
+
response = http_session.get(url)
|
|
345
|
+
assert response.status_code == 404
|
|
346
|
+
|
|
322
347
|
def test_collection_upload_repeat(
|
|
323
348
|
self, http_session, ansible_collection_factory, pulp_dist, collection_upload
|
|
324
349
|
):
|
|
@@ -7,7 +7,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "pulp-ansible"
|
|
10
|
-
version = "0.25.
|
|
10
|
+
version = "0.25.3"
|
|
11
11
|
description = "Pulp plugin to manage Ansible content, e.g. roles"
|
|
12
12
|
readme = "README.rst"
|
|
13
13
|
authors = [
|
|
@@ -100,7 +100,7 @@ ignore = [
|
|
|
100
100
|
[tool.bumpversion]
|
|
101
101
|
# This section is managed by the plugin template. Do not edit manually.
|
|
102
102
|
|
|
103
|
-
current_version = "0.25.
|
|
103
|
+
current_version = "0.25.3"
|
|
104
104
|
commit = false
|
|
105
105
|
tag = false
|
|
106
106
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<alpha>0a)?(?P<patch>\\d+)(\\.(?P<release>[a-z]+))?"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/management/commands/__init__.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/management/commands/download-log.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0002_advanced_collections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0009_collectionimport.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0011_collectionimport.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0012_auto_20190906_2253.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0014_certification_enum.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0015_ansiblerepository.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0016_add_extension.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0019_collection_token.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0020_auto_20200810_1926.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0021_rename_role_remote.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0035_deprecation_content.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0047_ansible_namespace.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0049_rbac_permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0051_cvindex_build.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/migrations/0058_fix_0056_regression.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/app/tasks/collectionversion_index.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/collection/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/git/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/git/test_sync.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/role/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/role/test_sync.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/api/test_export_import.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/functional/cli/test_role_install.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/fast_load_collections.py
RENAMED
|
File without changes
|
{pulp_ansible-0.25.2 → pulp_ansible-0.25.3}/pulp_ansible/tests/performance/generate_collections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|