Issue #4990
closedCore's serializer should only validate when policy='immediate' (the default)
Description
Problem¶
For a plugin to support on-demand it needs to take extra steps. Core should not allow a user by default to expect to use policy != 'immediate' if a plugin hasn't done the work to enable it. Currently values of policy == 'on_demand' or policy == 'streamed' are also allowed.
Solution¶
1. Have core's Remote serializer (the Master one) fail validation if policy != 'immediate'.
2. Add docs on how plugins can adjust this validation in their Remote detail serializer to enable either policy='streamed' and/or policy='on_deamand'
Details¶
We need to advertise to users that they can expect this here: https://docs.pulpproject.org/en/3.0/nightly/workflows/lazy-downloading.html
We need to document to plugin writers what they should do here: https://docs.pulpproject.org/en/pulpcore-plugin/nightly/reference/lazy-support.html#lazy-support
Updated by bmbouter over 5 years ago
This is reported against pulp_ansible, but I believe the place to fix this is in core. The core serializer should require the plugin-provided serializer to adjust the allowed values for the 'policy' attribute at Remote creation time. If the plugin doesn't adjust the 'policy' attribute only 'immediate' would be allowed. I believe this will fix this for all plugins.
@daviddavis what do you think?
Updated by bmbouter over 5 years ago
- Project changed from Ansible Plugin to Pulp
- Subject changed from Collection - Sync does not fail when using lazy policies to Core's serializer should only validate when policy='immediate' (the default)
- Description updated (diff)
Moving to core and rewriting based on open-floor discussion from June 21st.
Updated by daviddavis over 5 years ago
- Groomed changed from No to Yes
- Sprint set to Sprint 55
Updated by bmbouter over 5 years ago
- Status changed from NEW to POST
- Assignee set to bmbouter
PR available at: https://github.com/pulp/pulpcore/pull/190/files
Added by bmbouter over 5 years ago
Added by bmbouter over 5 years ago
Revision ab7e1958 | View on GitHub
Allow policy options 'streamed' and 'on_demand'
Pulpcore recently made the RemoteSerializer validate the policy option to only allow 'immediate'. This requires plugins that support on-demand content to specifically allow more permissive validation.
Added by bmbouter over 5 years ago
Revision b9ffe957 | View on GitHub
Add detail Remote 'policy' redefinition docs
To use on-demand content with more 'policy' values the Remote Serializer needs to redefine the 'policy' attribute. This is now included in the docstring so plugin writers can decide.
Updated by bmbouter over 5 years ago
- Status changed from POST to MODIFIED
Applied in changeset plugin_template|b9ffe957bcec14b975fe1102a00570359cdef64a.
Updated by bmbouter over 5 years ago
Applied in changeset pulp_file:ab7e195814ed315605508fe8fb9c8184d0c4360b.
Updated by bmbouter over 5 years ago
Applied in changeset pulpcore|cef9df92a63135dcb5886a854f80c105263a2304.
Updated by bmbouter over 5 years ago
Applied in changeset commit:pulpcore-plugin|0ee9d68d1d62d35b2b6023262d63e656c2fe2fbc.
Updated by bmbouter about 5 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Core's Remote only validates 'immediate'
The core's default mode policy='immediate' is the only one that is guaranteed by all plugins to implement. Users of plugins that haven't enabled additional modes should receive an error when then create a Remote.
Now users using policy != 'immediate' will receive an error.
https://pulp.plan.io/issues/4990 closes #4990