pulp-ansible 0.27.0__tar.gz → 0.28.0__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.27.0 → pulp_ansible-0.28.0}/CHANGES.md +32 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/PKG-INFO +7 -9
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/__init__.py +1 -1
- pulp_ansible-0.28.0/pulp_ansible/app/migrations/0065_collectionversion_ansible_col_namespa_ea6f75_idx.py +19 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/models.py +3 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/collections.py +76 -40
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_deprecation.py +29 -8
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/PKG-INFO +7 -9
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/SOURCES.txt +1 -0
- pulp_ansible-0.28.0/pulp_ansible.egg-info/requires.txt +7 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pyproject.toml +8 -10
- pulp_ansible-0.27.0/pulp_ansible.egg-info/requires.txt +0 -8
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/COMMITMENT +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/COPYRIGHT +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/LICENSE +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/MANIFEST.in +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/README.rst +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/functest_requirements.txt +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/constants.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/downloaders.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/fields.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/mixins.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/serializers.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/exceptions.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/filters.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/pagination.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/serializers.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/views.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/viewsets.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/views.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/global_access_conditions.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/logutils.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/commands/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/commands/download-log.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0001_initial.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0001_initial_squashed_0040_ansiblerepository_keyring.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0002_advanced_collections.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0003_add_tags_and_collectionversion_fields.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0004_add_fulltext_search_indexes.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0005_collectionversion_is_highest.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0006_remove_whitelist_and_alter_collection_version_name.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0007_collectionversion_is_certified.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0008_collectionremote_requirements_file.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0009_collectionimport.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0010_ansible_related_names.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0011_collectionimport.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0012_auto_20190906_2253.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0013_pulp_fields.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0014_certification_enum.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0015_ansiblerepository.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0016_add_extension.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0017_increase_length_collectionversion_fields.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0018_fix_collection_relative_path.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0019_collection_token.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0020_auto_20200810_1926.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0021_rename_role_remote.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0022_URLField_to_CharField.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0023_alter_requirements_file_field.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0024_remove_collectionversion_certification.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0025_increase_collection_version_version_size.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0026_deprecation_per_repository.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0027_tag_length.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0028_collectionversion_namespace_length.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0029_manifest_and_files_json_fields.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0030_collectionversion_requires_ansible.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0031_ansiblerepository_last_synced_metadata_time.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0032_collectionremote_sync_dependencies.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0033_swap_distribution_model.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0034_handle_jsonfield_warnings.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0035_deprecation_content.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0036_update_repository_content.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0037_gitremote.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0038_collectionversionsignature.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0039_collectionremote_signed_only.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0040_ansiblerepository_keyring.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0041_alter_collectionversion_collection.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0042_ansiblerepository_gpgkey.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0043_alter_collectionversionsignature_data.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0044_alter_collectionremote_token.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0045_downloadlog.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0046_add_fulltext_search_fix.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0047_ansible_namespace.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0048_collectionversionmark.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0049_rbac_permissions.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0050_crossrepositorycollectionversionindex.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0051_cvindex_build.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0052_alter_ansiblecollectiondeprecated_content_ptr_and_more.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0053_collectiondownloadcount.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0054_split_collection_version_numbers.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0055_alter_collectionversion_version_alter_role_version.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0056_collectionversion_sha256.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0057_collectionversion_sha256_migrate.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0058_fix_0056_regression.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0059_collectionversion_unique_sha256.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0060_remove_collectionversion_unique_is_highest_and_more.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0061_collectionversion_new_tags.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0062_pivot_collectionversion_tags.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0063_domain_support.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0064_alter_collection_unique_together_and_more.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/modelresource.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/schema/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/schema/copy_config.json +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/serializers.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/settings.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/collectionversion_index.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/copy.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/deletion.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/git.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/mark.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/roles.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/signature.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/test_tasks.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/upload.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/utils.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/urls.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/utils.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/viewsets.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/webserver_snippets/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/webserver_snippets/apache.conf +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/webserver_snippets/nginx.conf +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/pytest_plugin.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_copy_and_move.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_crud_collection_versions.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_marks.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_remote.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_signatures.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_sync.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_client_configuration.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_collection.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_collection_naming_edgecases.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_collection_version_search.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_content_guard.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_deletion.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_namespace.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_proxy.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_redirects.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_serializers.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_sync.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/git/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/git/test_crud_remotes.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/git/test_sync.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/test_crud_distribution.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/test_crud_remote.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/test_sync.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/test_domain.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/test_export_import.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/test_rbac.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_collection_download_count.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_collection_install.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_collection_upload.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_role_install.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/constants.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/utils.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/create_repos_with_collections.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/fast_load_collections.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/generate_collections.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/promote.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/__init__.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/conftest.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/test_0057_collection_version_sha256_migrate.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/test_x_repo_search_migration.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_cv_index.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_models.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_search.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_serializers.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_tasks.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/utils.py +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/dependency_links.txt +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/entry_points.txt +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/top_level.txt +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/setup.cfg +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/test_requirements.txt +0 -0
- {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/unittest_requirements.txt +0 -0
|
@@ -8,6 +8,30 @@
|
|
|
8
8
|
|
|
9
9
|
[//]: # (towncrier release notes start)
|
|
10
10
|
|
|
11
|
+
## 0.28.0 (2025-08-13) {: #0.28.0 }
|
|
12
|
+
|
|
13
|
+
#### Features {: #0.28.0-feature }
|
|
14
|
+
|
|
15
|
+
- Add a database index to collection version lookup by namespace, name, version to speed up common queries.
|
|
16
|
+
|
|
17
|
+
#### Bugfixes {: #0.28.0-bugfix }
|
|
18
|
+
|
|
19
|
+
- Fixed the sync pipeline to not manipulate the RepositoryContent table directly when undeprecating collections.
|
|
20
|
+
|
|
21
|
+
#### Deprecations and Removals {: #0.28.0-removal }
|
|
22
|
+
|
|
23
|
+
- This release drops support for Python<3.11.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 0.27.1 (2025-07-15) {: #0.27.1 }
|
|
28
|
+
|
|
29
|
+
#### Bugfixes {: #0.27.1-bugfix }
|
|
30
|
+
|
|
31
|
+
- Fixed the sync pipeline to not manipulate the RepositoryContent table directly when undeprecating collections.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
11
35
|
## 0.27.0 (2025-07-09) {: #0.27.0 }
|
|
12
36
|
|
|
13
37
|
#### Features {: #0.27.0-feature }
|
|
@@ -75,6 +99,14 @@
|
|
|
75
99
|
|
|
76
100
|
---
|
|
77
101
|
|
|
102
|
+
## 0.24.7 (2025-07-15) {: #0.24.7 }
|
|
103
|
+
|
|
104
|
+
#### Bugfixes {: #0.24.7-bugfix }
|
|
105
|
+
|
|
106
|
+
- Fixed the sync pipeline to not manipulate the RepositoryContent table directly when undeprecating collections.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
78
110
|
## 0.24.6 (2025-04-23) {: #0.24.6 }
|
|
79
111
|
|
|
80
112
|
#### Features {: #0.24.6-feature }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pulp-ansible
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.0
|
|
4
4
|
Summary: Pulp plugin to manage Ansible content, e.g. roles
|
|
5
5
|
Author-email: Pulp Ansible Plugin Project Developers <pulp-dev@redhat.com>
|
|
6
6
|
Project-URL: Homepage, https://pulpproject.org
|
|
@@ -14,17 +14,15 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
14
14
|
Classifier: Framework :: Django
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
|
|
18
|
-
Requires-Python: >=3.9
|
|
17
|
+
Requires-Python: >=3.11
|
|
19
18
|
Description-Content-Type: text/x-rst
|
|
20
19
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist: galaxy_importer<0.5,>=0.4.5
|
|
20
|
+
Requires-Dist: galaxy_importer<0.5,>=0.4.27
|
|
23
21
|
Requires-Dist: GitPython<3.2,>=3.1.24
|
|
24
|
-
Requires-Dist: jsonschema<4.
|
|
25
|
-
Requires-Dist: Pillow<11.
|
|
26
|
-
Requires-Dist: pulpcore<3.
|
|
27
|
-
Requires-Dist: PyYAML<7.0,>=
|
|
22
|
+
Requires-Dist: jsonschema<4.26,>=4.9
|
|
23
|
+
Requires-Dist: Pillow<11.4,>=10.3
|
|
24
|
+
Requires-Dist: pulpcore<3.100,>=3.63.0
|
|
25
|
+
Requires-Dist: PyYAML<7.0,>=6.0.2
|
|
28
26
|
Requires-Dist: semantic_version<2.11,>=2.9
|
|
29
27
|
Dynamic: license-file
|
|
30
28
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated by Django 4.2.22 on 2025-07-09 10:53
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("ansible", "0064_alter_collection_unique_together_and_more"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddIndex(
|
|
14
|
+
model_name="collectionversion",
|
|
15
|
+
index=models.Index(
|
|
16
|
+
fields=["namespace", "name", "version"], name="ansible_col_namespa_ea6f75_idx"
|
|
17
|
+
),
|
|
18
|
+
),
|
|
19
|
+
]
|
|
@@ -215,6 +215,9 @@ class CollectionVersion(Content):
|
|
|
215
215
|
class Meta:
|
|
216
216
|
default_related_name = "%(app_label)s_%(model_name)s"
|
|
217
217
|
unique_together = ("sha256", "_pulp_domain")
|
|
218
|
+
indexes = [
|
|
219
|
+
models.Index(fields=["namespace", "name", "version"]),
|
|
220
|
+
]
|
|
218
221
|
|
|
219
222
|
|
|
220
223
|
class CollectionVersionMark(Content):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import functools
|
|
2
3
|
import hashlib
|
|
3
4
|
import json
|
|
4
5
|
import logging
|
|
@@ -8,11 +9,11 @@ from gettext import gettext as _
|
|
|
8
9
|
from operator import attrgetter
|
|
9
10
|
from urllib.parse import urljoin
|
|
10
11
|
from uuid import uuid4
|
|
12
|
+
import tempfile
|
|
11
13
|
|
|
12
14
|
import yaml
|
|
13
15
|
from aiohttp.client_exceptions import ClientError, ClientResponseError
|
|
14
16
|
from asgiref.sync import sync_to_async
|
|
15
|
-
from async_lru import alru_cache
|
|
16
17
|
from django.db import transaction
|
|
17
18
|
from django.db.models import Q
|
|
18
19
|
from django.db.utils import IntegrityError
|
|
@@ -30,7 +31,6 @@ from pulpcore.plugin.models import (
|
|
|
30
31
|
ProgressReport,
|
|
31
32
|
PulpTemporaryFile,
|
|
32
33
|
Remote,
|
|
33
|
-
RepositoryContent,
|
|
34
34
|
RepositoryVersion,
|
|
35
35
|
Task,
|
|
36
36
|
)
|
|
@@ -38,6 +38,8 @@ from pulpcore.plugin.stages import (
|
|
|
38
38
|
ArtifactDownloader,
|
|
39
39
|
ArtifactSaver,
|
|
40
40
|
ContentSaver,
|
|
41
|
+
ContentAssociation,
|
|
42
|
+
EndStage,
|
|
41
43
|
DeclarativeArtifact,
|
|
42
44
|
DeclarativeContent,
|
|
43
45
|
DeclarativeVersion,
|
|
@@ -47,6 +49,7 @@ from pulpcore.plugin.stages import (
|
|
|
47
49
|
RemoteArtifactSaver,
|
|
48
50
|
ResolveContentFutures,
|
|
49
51
|
Stage,
|
|
52
|
+
create_pipeline,
|
|
50
53
|
)
|
|
51
54
|
from pulpcore.plugin.util import get_url, get_domain
|
|
52
55
|
from rest_framework.serializers import ValidationError
|
|
@@ -79,6 +82,26 @@ log = logging.getLogger(__name__)
|
|
|
79
82
|
aget_url = sync_to_async(get_url)
|
|
80
83
|
|
|
81
84
|
|
|
85
|
+
def async_cache(f):
|
|
86
|
+
# A simple implementation for caching an async function with hashable arguments.
|
|
87
|
+
_cache = {}
|
|
88
|
+
|
|
89
|
+
@functools.wraps(f)
|
|
90
|
+
async def _wrapped_f(*args):
|
|
91
|
+
try:
|
|
92
|
+
return _cache[args]
|
|
93
|
+
except KeyError:
|
|
94
|
+
result = await f(*args)
|
|
95
|
+
_cache[args] = result
|
|
96
|
+
if len(_cache) > 128:
|
|
97
|
+
# This is a bit ad hoc and will give fifo instead of lru behaviour.
|
|
98
|
+
# I doubt it even makes a difference here.
|
|
99
|
+
_cache.pop(next(iter(_cache.keys())))
|
|
100
|
+
return result
|
|
101
|
+
|
|
102
|
+
return _wrapped_f
|
|
103
|
+
|
|
104
|
+
|
|
82
105
|
# semantic_version.SimpleSpec interpretes "*" as ">=0.0.0"
|
|
83
106
|
class AnsibleSpec(SimpleSpec):
|
|
84
107
|
def __init__(self, expression):
|
|
@@ -197,14 +220,7 @@ def sync(remote_pk, repository_pk, mirror, optimize):
|
|
|
197
220
|
if not remote.url:
|
|
198
221
|
raise ValueError(_("A CollectionRemote must have a 'url' specified to synchronize."))
|
|
199
222
|
|
|
200
|
-
|
|
201
|
-
for namespace, name in AnsibleCollectionDeprecated.objects.filter(
|
|
202
|
-
pk__in=repository.latest_version().content
|
|
203
|
-
).values_list("namespace", "name"):
|
|
204
|
-
deprecation_before_sync.add(f"{namespace}.{name}")
|
|
205
|
-
first_stage = CollectionSyncFirstStage(
|
|
206
|
-
remote, repository, is_repo_remote, deprecation_before_sync, optimize
|
|
207
|
-
)
|
|
223
|
+
first_stage = CollectionSyncFirstStage(remote, repository, is_repo_remote, optimize)
|
|
208
224
|
if first_stage.should_sync is False:
|
|
209
225
|
log.debug(_("no-op: remote wasn't updated since last sync."))
|
|
210
226
|
return
|
|
@@ -218,25 +234,6 @@ def sync(remote_pk, repository_pk, mirror, optimize):
|
|
|
218
234
|
repository.last_synced_metadata_time = first_stage.last_synced_metadata_time
|
|
219
235
|
repository.save(update_fields=["last_synced_metadata_time"])
|
|
220
236
|
|
|
221
|
-
# This goes against all rules!
|
|
222
|
-
# Content must be added and removed via the dedicated functions, which is impossible after the
|
|
223
|
-
# repository version was finalized.
|
|
224
|
-
# TODO Fix this!
|
|
225
|
-
to_undeprecate = Q()
|
|
226
|
-
undeprecated = deprecation_before_sync.difference(first_stage.deprecation_after_sync)
|
|
227
|
-
if undeprecated:
|
|
228
|
-
for collection in undeprecated:
|
|
229
|
-
namespace, name = collection.split(".")
|
|
230
|
-
to_undeprecate |= Q(namespace=namespace, name=name)
|
|
231
|
-
deprecated = AnsibleCollectionDeprecated.objects.filter(
|
|
232
|
-
to_undeprecate, pulp_domain=get_domain()
|
|
233
|
-
)
|
|
234
|
-
RepositoryContent.objects.filter(
|
|
235
|
-
repository=repository,
|
|
236
|
-
content__in=deprecated,
|
|
237
|
-
version_removed__isnull=True,
|
|
238
|
-
).update(version_removed=repo_version)
|
|
239
|
-
|
|
240
237
|
|
|
241
238
|
def import_collection(
|
|
242
239
|
temp_file_pk,
|
|
@@ -475,13 +472,60 @@ class AnsibleDeclarativeVersion(DeclarativeVersion):
|
|
|
475
472
|
|
|
476
473
|
return pipeline
|
|
477
474
|
|
|
475
|
+
def create(self):
|
|
476
|
+
"""
|
|
477
|
+
Perform the work. This is the long-blocking call where all syncing occurs.
|
|
478
|
+
|
|
479
|
+
Returns: The created RepositoryVersion or None if it represents no change from the latest.
|
|
480
|
+
"""
|
|
481
|
+
with tempfile.TemporaryDirectory(dir="."):
|
|
482
|
+
with self.repository.new_version() as new_version:
|
|
483
|
+
deprecation_before_sync = {
|
|
484
|
+
(namespace, name)
|
|
485
|
+
for namespace, name in AnsibleCollectionDeprecated.objects.filter(
|
|
486
|
+
pk__in=self.repository.latest_version().content
|
|
487
|
+
).values_list("namespace", "name")
|
|
488
|
+
}
|
|
489
|
+
loop = asyncio.get_event_loop()
|
|
490
|
+
stages = self.pipeline_stages(new_version)
|
|
491
|
+
stages.append(UndeprecateStage(deprecation_before_sync))
|
|
492
|
+
stages.append(ContentAssociation(new_version, self.mirror))
|
|
493
|
+
stages.append(EndStage())
|
|
494
|
+
pipeline = create_pipeline(stages)
|
|
495
|
+
loop.run_until_complete(pipeline)
|
|
496
|
+
|
|
497
|
+
if deprecation_before_sync:
|
|
498
|
+
to_undeprecate = Q()
|
|
499
|
+
for namespace, name in deprecation_before_sync:
|
|
500
|
+
to_undeprecate |= Q(namespace=namespace, name=name)
|
|
501
|
+
new_version.remove_content(
|
|
502
|
+
AnsibleCollectionDeprecated.objects.filter(
|
|
503
|
+
to_undeprecate, pulp_domain=get_domain()
|
|
504
|
+
)
|
|
505
|
+
)
|
|
506
|
+
|
|
507
|
+
return new_version if new_version.complete else None
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
class UndeprecateStage(Stage):
|
|
511
|
+
def __init__(self, deprecation_before_sync):
|
|
512
|
+
self.deprecation_before_sync = deprecation_before_sync
|
|
513
|
+
|
|
514
|
+
async def run(self):
|
|
515
|
+
async for batch in self.batches():
|
|
516
|
+
for d_content in batch:
|
|
517
|
+
if isinstance(d_content.content, AnsibleCollectionDeprecated):
|
|
518
|
+
key = (d_content.content.namespace, d_content.content.name)
|
|
519
|
+
self.deprecation_before_sync.discard(key)
|
|
520
|
+
await self.put(d_content)
|
|
521
|
+
|
|
478
522
|
|
|
479
523
|
class CollectionSyncFirstStage(Stage):
|
|
480
524
|
"""
|
|
481
525
|
The first stage of a pulp_ansible sync pipeline.
|
|
482
526
|
"""
|
|
483
527
|
|
|
484
|
-
def __init__(self, remote, repository, is_repo_remote,
|
|
528
|
+
def __init__(self, remote, repository, is_repo_remote, optimize):
|
|
485
529
|
"""
|
|
486
530
|
The first stage of a pulp_ansible sync pipeline.
|
|
487
531
|
|
|
@@ -489,15 +533,12 @@ class CollectionSyncFirstStage(Stage):
|
|
|
489
533
|
remote (CollectionRemote): The remote data to be used when syncing
|
|
490
534
|
repository (AnsibleRepository): The repository being syncedself.
|
|
491
535
|
is_repo_remote (bool): True if the remote is the repository's remote.
|
|
492
|
-
deprecation_before_sync (set): Set of deprecations before the sync.
|
|
493
536
|
optimize (boolean): Whether to optimize sync or not.
|
|
494
537
|
|
|
495
538
|
"""
|
|
496
539
|
super().__init__()
|
|
497
540
|
self.remote = remote
|
|
498
541
|
self.repository = repository
|
|
499
|
-
self.deprecation_before_sync = deprecation_before_sync
|
|
500
|
-
self.deprecation_after_sync = set()
|
|
501
542
|
self.collection_info = parse_collections_requirements_file(remote.requirements_file)
|
|
502
543
|
self.exclude_info = {}
|
|
503
544
|
self.add_dependents = self.collection_info and self.remote.sync_dependencies
|
|
@@ -518,7 +559,7 @@ class CollectionSyncFirstStage(Stage):
|
|
|
518
559
|
self._should_we_sync()
|
|
519
560
|
)
|
|
520
561
|
|
|
521
|
-
@
|
|
562
|
+
@async_cache
|
|
522
563
|
async def _get_root_api(self, root):
|
|
523
564
|
"""
|
|
524
565
|
Returns the root api path and api version.
|
|
@@ -554,7 +595,7 @@ class CollectionSyncFirstStage(Stage):
|
|
|
554
595
|
|
|
555
596
|
return endpoint, api_version
|
|
556
597
|
|
|
557
|
-
@
|
|
598
|
+
@async_cache
|
|
558
599
|
async def _get_paginated_collection_api(self, root):
|
|
559
600
|
"""
|
|
560
601
|
Returns the collection api path and api version.
|
|
@@ -766,7 +807,6 @@ class CollectionSyncFirstStage(Stage):
|
|
|
766
807
|
d_content = DeclarativeContent(
|
|
767
808
|
content=AnsibleCollectionDeprecated(namespace=namespace, name=name),
|
|
768
809
|
)
|
|
769
|
-
self.deprecation_after_sync.add(f"{namespace}.{name}")
|
|
770
810
|
await self.put(d_content)
|
|
771
811
|
tasks.append(
|
|
772
812
|
loop.create_task(
|
|
@@ -801,7 +841,6 @@ class CollectionSyncFirstStage(Stage):
|
|
|
801
841
|
d_content = DeclarativeContent(
|
|
802
842
|
content=AnsibleCollectionDeprecated(namespace=namespace, name=name),
|
|
803
843
|
)
|
|
804
|
-
self.deprecation_after_sync.add(f"{namespace}.{name}")
|
|
805
844
|
await self.put(d_content)
|
|
806
845
|
|
|
807
846
|
all_versions_of_collection = self._unpaginated_collection_version_metadata[namespace][name]
|
|
@@ -924,9 +963,6 @@ class CollectionSyncFirstStage(Stage):
|
|
|
924
963
|
namespace=collection["namespace"], name=collection["name"]
|
|
925
964
|
),
|
|
926
965
|
)
|
|
927
|
-
self.deprecation_after_sync.add(
|
|
928
|
-
f"{collection['namespace']}.{collection['name']}"
|
|
929
|
-
)
|
|
930
966
|
await self.put(d_content)
|
|
931
967
|
|
|
932
968
|
for collections_in_namespace in self._unpaginated_collection_version_metadata.values():
|
|
@@ -35,7 +35,6 @@ def test_deprecation(
|
|
|
35
35
|
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
36
36
|
first_distribution.base_path, namespace="testing"
|
|
37
37
|
)
|
|
38
|
-
|
|
39
38
|
assert collections.data[0].deprecated
|
|
40
39
|
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
41
40
|
first_distribution.base_path, namespace="pulp"
|
|
@@ -62,15 +61,12 @@ def test_deprecation(
|
|
|
62
61
|
)
|
|
63
62
|
assert collections.data[0].deprecated
|
|
64
63
|
|
|
65
|
-
#
|
|
66
|
-
|
|
67
|
-
"k8s_demo_collection", "testing", first_distribution.base_path, {"deprecated": False}
|
|
68
|
-
)
|
|
69
|
-
monitor_task(result.task)
|
|
64
|
+
# Sync again to see if the deprecated state is kept.
|
|
65
|
+
ansible_sync_factory(second_repo, optimize=False)
|
|
70
66
|
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
71
|
-
|
|
67
|
+
second_distribution.base_path, namespace="testing"
|
|
72
68
|
)
|
|
73
|
-
assert
|
|
69
|
+
assert collections.data[0].deprecated
|
|
74
70
|
|
|
75
71
|
# Update the requirements to sync down both collections this time
|
|
76
72
|
requirements = (
|
|
@@ -83,9 +79,34 @@ def test_deprecation(
|
|
|
83
79
|
# Sync the second repo again
|
|
84
80
|
second_repo = ansible_sync_factory(second_repo)
|
|
85
81
|
|
|
82
|
+
# Assert the state of deprecated True for testing, False for pulp
|
|
83
|
+
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
84
|
+
second_distribution.base_path, namespace="testing"
|
|
85
|
+
)
|
|
86
|
+
assert collections.data[0].deprecated
|
|
87
|
+
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
88
|
+
second_distribution.base_path, namespace="pulp"
|
|
89
|
+
)
|
|
90
|
+
assert not collections.data[0].deprecated
|
|
91
|
+
|
|
92
|
+
# Change the deprecated status for the testing collection on the original repo to False
|
|
93
|
+
monitor_task(
|
|
94
|
+
ansible_bindings.PulpAnsibleApiV3CollectionsApi.update(
|
|
95
|
+
"k8s_demo_collection", "testing", first_distribution.base_path, {"deprecated": False}
|
|
96
|
+
).task
|
|
97
|
+
)
|
|
98
|
+
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
99
|
+
first_distribution.base_path, namespace="testing"
|
|
100
|
+
)
|
|
101
|
+
assert not collections.data[0].deprecated
|
|
102
|
+
|
|
103
|
+
# Sync the second repo again
|
|
104
|
+
second_repo = ansible_sync_factory(second_repo)
|
|
105
|
+
|
|
86
106
|
# Assert both collections show deprecated=False
|
|
87
107
|
collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
|
|
88
108
|
second_distribution.base_path
|
|
89
109
|
)
|
|
110
|
+
assert len(collections.data) == 2, collections
|
|
90
111
|
for collection in collections.data:
|
|
91
112
|
assert not collection.deprecated
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pulp-ansible
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.0
|
|
4
4
|
Summary: Pulp plugin to manage Ansible content, e.g. roles
|
|
5
5
|
Author-email: Pulp Ansible Plugin Project Developers <pulp-dev@redhat.com>
|
|
6
6
|
Project-URL: Homepage, https://pulpproject.org
|
|
@@ -14,17 +14,15 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
14
14
|
Classifier: Framework :: Django
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
|
|
18
|
-
Requires-Python: >=3.9
|
|
17
|
+
Requires-Python: >=3.11
|
|
19
18
|
Description-Content-Type: text/x-rst
|
|
20
19
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist: galaxy_importer<0.5,>=0.4.5
|
|
20
|
+
Requires-Dist: galaxy_importer<0.5,>=0.4.27
|
|
23
21
|
Requires-Dist: GitPython<3.2,>=3.1.24
|
|
24
|
-
Requires-Dist: jsonschema<4.
|
|
25
|
-
Requires-Dist: Pillow<11.
|
|
26
|
-
Requires-Dist: pulpcore<3.
|
|
27
|
-
Requires-Dist: PyYAML<7.0,>=
|
|
22
|
+
Requires-Dist: jsonschema<4.26,>=4.9
|
|
23
|
+
Requires-Dist: Pillow<11.4,>=10.3
|
|
24
|
+
Requires-Dist: pulpcore<3.100,>=3.63.0
|
|
25
|
+
Requires-Dist: PyYAML<7.0,>=6.0.2
|
|
28
26
|
Requires-Dist: semantic_version<2.11,>=2.9
|
|
29
27
|
Dynamic: license-file
|
|
30
28
|
|
|
@@ -108,6 +108,7 @@ pulp_ansible/app/migrations/0061_collectionversion_new_tags.py
|
|
|
108
108
|
pulp_ansible/app/migrations/0062_pivot_collectionversion_tags.py
|
|
109
109
|
pulp_ansible/app/migrations/0063_domain_support.py
|
|
110
110
|
pulp_ansible/app/migrations/0064_alter_collection_unique_together_and_more.py
|
|
111
|
+
pulp_ansible/app/migrations/0065_collectionversion_ansible_col_namespa_ea6f75_idx.py
|
|
111
112
|
pulp_ansible/app/migrations/__init__.py
|
|
112
113
|
pulp_ansible/app/schema/__init__.py
|
|
113
114
|
pulp_ansible/app/schema/copy_config.json
|
|
@@ -7,7 +7,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "pulp-ansible"
|
|
10
|
-
version = "0.
|
|
10
|
+
version = "0.28.0"
|
|
11
11
|
description = "Pulp plugin to manage Ansible content, e.g. roles"
|
|
12
12
|
readme = "README.rst"
|
|
13
13
|
authors = [
|
|
@@ -20,17 +20,15 @@ classifiers = [
|
|
|
20
20
|
"Framework :: Django",
|
|
21
21
|
"Programming Language :: Python",
|
|
22
22
|
"Programming Language :: Python :: 3",
|
|
23
|
-
"Programming Language :: Python :: 3.9",
|
|
24
23
|
]
|
|
25
|
-
requires-python = ">=3.
|
|
24
|
+
requires-python = ">=3.11"
|
|
26
25
|
dependencies = [
|
|
27
|
-
"
|
|
28
|
-
"galaxy_importer>=0.4.5,<0.5",
|
|
26
|
+
"galaxy_importer>=0.4.27,<0.5",
|
|
29
27
|
"GitPython>=3.1.24,<3.2",
|
|
30
|
-
"jsonschema>=4.9,<4.
|
|
31
|
-
"Pillow>=10.3,<11.
|
|
32
|
-
"pulpcore>=3.63.0,<3.
|
|
33
|
-
"PyYAML>=
|
|
28
|
+
"jsonschema>=4.9,<4.26",
|
|
29
|
+
"Pillow>=10.3,<11.4",
|
|
30
|
+
"pulpcore>=3.63.0,<3.100",
|
|
31
|
+
"PyYAML>=6.0.2,<7.0",
|
|
34
32
|
"semantic_version>=2.9,<2.11",
|
|
35
33
|
]
|
|
36
34
|
|
|
@@ -101,7 +99,7 @@ ignore = [
|
|
|
101
99
|
[tool.bumpversion]
|
|
102
100
|
# This section is managed by the plugin template. Do not edit manually.
|
|
103
101
|
|
|
104
|
-
current_version = "0.
|
|
102
|
+
current_version = "0.28.0"
|
|
105
103
|
commit = false
|
|
106
104
|
tag = false
|
|
107
105
|
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
|
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/commands/__init__.py
RENAMED
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/commands/download-log.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/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.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0009_collectionimport.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0011_collectionimport.py
RENAMED
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0012_auto_20190906_2253.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0014_certification_enum.py
RENAMED
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0015_ansiblerepository.py
RENAMED
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0016_add_extension.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0019_collection_token.py
RENAMED
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0020_auto_20200810_1926.py
RENAMED
|
File without changes
|
{pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/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
|