Task #3914
closedPort pulp_ansible to use DeclarativeVersion
100%
Description
Overview¶
Now that DeclarativeVersion is available the pulp_ansible plugin can port onto it. The progress reporting names will change, but otherwise this change will not be noticable to users, except maybe faster performance.
Implementation¶
The implementation will have two main parts, a metadata downloading page-by-page part, and then an object building part (i.e. Content unit, Artifact, DeclarativeArtifact, and DeclarativeContent). The metadata downloading part is the complicated part because in the paginated API you want several downloads running concurrently.
This is currently done in the pulp_ansible code. A master list is built here: https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L153 Then 20 outstanding downloads happen here: https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L155-L158
Then the "new_roles" data from a fetched page is parsed here https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L168 This is where the Content units and Artifact objects should be encapsulated in DeclarativeContent and DeclarativeArtifact objects respectively. This is similar to what pulp_file does: https://github.com/pulp/pulp_file/blob/master/pulp_file/app/tasks/synchronizing.py#L74-L75
Related issues
Port synchronizing to stages api
closes #3914 closes #4155
https://pulp.plan.io/issues/3914 https://pulp.plan.io/issues/4155