Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-10-05T13:56:02ZPulp
Planio Ansible Plugin - Task #9489 (MODIFIED): Make use of shared_resources in sync and copy jobshttps://pulp.plan.io/issues/94892021-10-05T13:56:02ZmdellwegAnsible Plugin - Story #9346 (MODIFIED): As user, I can sync collections using a GitRemotehttps://pulp.plan.io/issues/93462021-09-03T18:28:51ZdaviddavisAnsible Plugin - Story #9345 (MODIFIED): As a user, I can create a GitRemote to sync content from...https://pulp.plan.io/issues/93452021-09-03T18:28:29ZdaviddavisAnsible Plugin - Task #9152 (CLOSED - COMPLETE): Comply with orphan clean changes made in pulpcor...https://pulp.plan.io/issues/91522021-07-27T14:16:40Zdaviddavis
<p><a href="https://github.com/pulp/community/discussions/59" class="external">https://github.com/pulp/community/discussions/59</a></p> Ansible Plugin - Task #8808 (CLOSED - COMPLETE): Release 0.8.0https://pulp.plan.io/issues/88082021-05-24T17:54:00Zfao89Ansible Plugin - Task #8675 (CLOSED - COMPLETE): Release 0.7.3https://pulp.plan.io/issues/86752021-04-30T15:37:19Zfao89Ansible Plugin - Task #8674 (CLOSED - COMPLETE): Release 0.5.9https://pulp.plan.io/issues/86742021-04-30T15:36:35Zfao89Ansible Plugin - Task #8363 (CLOSED - COMPLETE): Release 0.5.8https://pulp.plan.io/issues/83632021-03-08T18:01:59Zfao89Ansible Plugin - Task #8328 (CLOSED - COMPLETE): Release 0.7.1https://pulp.plan.io/issues/83282021-03-03T16:01:18Zfao89Ansible Plugin - Task #8327 (CLOSED - COMPLETE): Release 0.6.2https://pulp.plan.io/issues/83272021-03-03T16:00:07Zfao89Ansible Plugin - Task #8326 (CLOSED - COMPLETE): Release 0.5.7https://pulp.plan.io/issues/83262021-03-03T15:14:23Zfao89Ansible Plugin - Task #8239 (CLOSED - COMPLETE): Release 0.7.0https://pulp.plan.io/issues/82392021-02-10T22:38:00Zfao89Ansible Plugin - Story #8205 (MODIFIED): Add AnsibleCollectionDeprecated resource to export/importhttps://pulp.plan.io/issues/82052021-02-03T23:48:12Zgerrod
<a name="The-Two-Related-Problem"></a>
<h2 >The Two Related Problem<a href="#The-Two-Related-Problem" class="wiki-anchor">¶</a></h2>
<ol>
<li>The 'deprecated' data is mutable.</li>
<li>The 'deprecated' data is not correctly included in import/export data</li>
</ol>
<a name="Solution"></a>
<h2 >Solution<a href="#Solution" class="wiki-anchor">¶</a></h2>
<p>From a high level, make the <a href="https://github.com/pulp/pulp_ansible/blob/4b3d63f14dd85b9bfd689074defb99a23ee72f31/pulp_ansible/app/models.py#L281" class="external"><code>AnsibleCollectionDeprecated</code></a> content.</p>
<a name="Modeling"></a>
<h3 >Modeling<a href="#Modeling" class="wiki-anchor">¶</a></h3>
<p>Here are the rough steps involved:</p>
<ol>
<li>switch <a href="https://github.com/pulp/pulp_ansible/blob/4b3d63f14dd85b9bfd689074defb99a23ee72f31/pulp_ansible/app/models.py#L281" class="external">the existing AnsibleCollectionDeprecated</a> to inherit from Content</li>
<li>Remove the <a href="https://github.com/pulp/pulp_ansible/blob/4b3d63f14dd85b9bfd689074defb99a23ee72f31/pulp_ansible/app/models.py#L286-L288" class="external"><code>repository_version</code> FK</a> entirely.</li>
<li>Change the <a href="https://github.com/pulp/pulp_ansible/blob/4b3d63f14dd85b9bfd689074defb99a23ee72f31/pulp_ansible/app/models.py#L289" class="external"><code>collection</code></a> field to be a string with the collection name instead</li>
<li>Add a string field called namespace.</li>
<li>The uniqueness constraint should be the tuple "namespace", "collection_name"</li>
</ol>
<a name="Sync-Implementation"></a>
<h3 >Sync Implementation<a href="#Sync-Implementation" class="wiki-anchor">¶</a></h3>
<p>The sync code will continue to parse the deprecated data in FirstStage in the same way, but instead of <a href="https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/collections.py#L140-L153" class="external">saving/managing them in first-stage</a>, have the stages pipeline handle it all by making <code>AnsibleCollectionDeprecated</code> in-memory and associating with a declarative content object.</p>
<a name="The-Galaxy-API-viewset"></a>
<h3 >The Galaxy API viewset<a href="#The-Galaxy-API-viewset" class="wiki-anchor">¶</a></h3>
<p><a href="https://github.com/pulp/pulp_ansible/blob/8cd963d769e5b25f957d241571e21c371264a8f4/pulp_ansible/app/galaxy/v3/views.py#L172" class="external">Port this portion</a> to look for the objects in the set of content of the RepositoryVersion.</p>
<a name="The-viewset-for-setunset-deprecation-handling"></a>
<h3 >The viewset for set/unset deprecation handling<a href="#The-viewset-for-setunset-deprecation-handling" class="wiki-anchor">¶</a></h3>
<p><a href="https://github.com/pulp/pulp_ansible/blob/8cd963d769e5b25f957d241571e21c371264a8f4/pulp_ansible/app/galaxy/v3/views.py#L298-L306" class="external">Port this portion</a> to generate a task that creates a RepositoryVersion</p>
<a name="Additional-work-needed-to-get-this-working-with-ImportExport"></a>
<h3 >Additional work needed to get this working with Import/Export<a href="#Additional-work-needed-to-get-this-working-with-ImportExport" class="wiki-anchor">¶</a></h3>
<p>Add a model to model resources: <a href="https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/modelresource.py" class="external">https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/modelresource.py</a></p> Ansible Plugin - Story #8194 (MODIFIED): Syncing will exclude collection versions found at `/excl...https://pulp.plan.io/issues/81942021-02-02T16:28:54Zgerrod
<p>Add a field to CollectionRemote caled <code>excludes</code> which, when set, will cause the sync to exclude those collections and namespaces during sync. This will take the same format as a regular requirements file.</p> Ansible Plugin - Test #5333 (CLOSED - COMPLETE): As a user, I can sync collections from another P...https://pulp.plan.io/issues/53332019-08-22T17:28:11Zdaviddavis
<p>In lieu of setting up two Pulp servers, I would just use two repositories.</p>
<p>Test steps:</p>
<p>1. Create a collections repo, remote, sync and publish<br>
2. Create a second repository and a remote which points to the distribution in step 1<br>
3. Sync the second repo and confirm it has the same contents as the first.</p>