Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-09-03T18:20:53ZPulp
Planio Ansible Plugin - Story #9344 (CLOSED - DUPLICATE): [EPIC] As a user, I can sync content from githttps://pulp.plan.io/issues/93442021-09-03T18:20:53Zdaviddavis
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_ansible/742":<a href="https://github.com/pulp/pulp_ansible/issues/742" class="external">https://github.com/pulp/pulp_ansible/issues/742</a></p> Ansible Plugin - Story #8233 (CLOSED - NOTABUG): Add 'execution environment' key to each Collecti...https://pulp.plan.io/issues/82332021-02-09T16:32:44Zbmclaugh
<p>Galaxy has a requirement to return execution environment details in collection details. Galaxy Importer will populate the field in a PR that will be opened shortly.
<a href="https://issues.redhat.com/browse/AAH-7" class="external">https://issues.redhat.com/browse/AAH-7</a></p> Ansible 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 #8076 (CLOSED - CURRENTRELEASE): [EPIC] As a user, I have CLI commands for...https://pulp.plan.io/issues/80762021-01-12T13:39:50Zfao89
<p>Currently, the workflows are documented with bash scripts:</p>
<ul>
<li><a href="https://docs.pulpproject.org/pulp_ansible/workflows/collections.html" class="external">https://docs.pulpproject.org/pulp_ansible/workflows/collections.html</a></li>
<li><a href="https://docs.pulpproject.org/pulp_ansible/workflows/roles.html" class="external">https://docs.pulpproject.org/pulp_ansible/workflows/roles.html</a></li>
</ul>
<p>We need to use pulp-cli for replacing these bash scripts with CLI commands.
<a href="https://github.com/pulp/pulp-cli" class="external">https://github.com/pulp/pulp-cli</a></p> Ansible Plugin - Task #7938 (CLOSED - COMPLETE): [EPIC] As a user, I have improved Galaxy V3 sync...https://pulp.plan.io/issues/79382020-12-07T20:11:40Zbmbouterbmbouter@redhat.comAnsible Plugin - Story #7670 (CLOSED - CURRENTRELEASE): [EPIC] As a Galaxy V3 api user, I can syn...https://pulp.plan.io/issues/76702020-10-07T19:15:44Zfao89
<p>We need mutable fields i.e. repository metadata</p> Ansible Plugin - Task #6672 (CLOSED - DUPLICATE): [Epic] Upload Process Improvementshttps://pulp.plan.io/issues/66722020-05-06T18:36:31Zbmbouterbmbouter@redhat.com
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_ansible/708":<a href="https://github.com/pulp/pulp_ansible/issues/708" class="external">https://github.com/pulp/pulp_ansible/issues/708</a></p> Ansible Plugin - Story #6132 (CLOSED - CURRENTRELEASE): [EPIC] v3 collection synchttps://pulp.plan.io/issues/61322020-02-11T17:23:33ZdaviddavisAnsible Plugin - Task #5928 (CLOSED - COMPLETE): [EPIC] Complete CLI testing for Role and Collect...https://pulp.plan.io/issues/59282020-01-03T17:35:46Zbmbouterbmbouter@redhat.com
<p>We want to test against the "latest" ansible-galaxy CLI. Currently that is against 2.9.</p>
<p>Using the "latest" CLI we should fully test:</p>
<a name="Role-Workflows"></a>
<h3 >Role Workflows<a href="#Role-Workflows" class="wiki-anchor">¶</a></h3>
<p>1. Installing a Role by name. The docs for this are here: <a href="https://pulp-ansible.readthedocs.io/en/latest/workflows/ansible-galaxy-client.html#using-the-pulp-galaxy-api" class="external">https://pulp-ansible.readthedocs.io/en/latest/workflows/ansible-galaxy-client.html#using-the-pulp-galaxy-api</a></p>
<p>Note, uploading a Role from the CLI is currently unsupported, so we won't test that</p>
<a name="Collection-Workflows"></a>
<h3 >Collection Workflows<a href="#Collection-Workflows" class="wiki-anchor">¶</a></h3>
<p>1. Uploading a Collection via the ansible-galaxy CLI. The docs for this are here: <a href="https://pulp-ansible.readthedocs.io/en/latest/workflows/upload-collection.html#upload-a-collection-via-ansible-galaxy" class="external">https://pulp-ansible.readthedocs.io/en/latest/workflows/upload-collection.html#upload-a-collection-via-ansible-galaxy</a></p>
<p>2. Install a Collection via the ansible-galaxy CLI. The docs for this are here: <a href="https://pulp-ansible.readthedocs.io/en/latest/workflows/collection-install.html" class="external">https://pulp-ansible.readthedocs.io/en/latest/workflows/collection-install.html</a></p>
<p>NOTE: we should put all CLI tests in one place in the testing folder. Let's make a new folder under functional called 'cli'. That would live here: <a href="https://github.com/pulp/pulp_ansible/tree/master/pulp_ansible/tests/functional" class="external">https://github.com/pulp/pulp_ansible/tree/master/pulp_ansible/tests/functional</a></p> Ansible Plugin - Task #5911 (CLOSED - COMPLETE): [Epic] Port automation hub code to a pulp plugin...https://pulp.plan.io/issues/59112019-12-20T17:05:56Zbmbouterbmbouter@redhat.comAnsible Plugin - Story #5517 (CLOSED - DUPLICATE): [EPIC] Automation Hub Release Blockershttps://pulp.plan.io/issues/55172019-09-30T20:49:03Zbmbouterbmbouter@redhat.com
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_ansible/692":<a href="https://github.com/pulp/pulp_ansible/issues/692" class="external">https://github.com/pulp/pulp_ansible/issues/692</a></p>
<hr>
<p>This epic captures the pulp_ansible changes required for the initial Automation Hub release, which pulp_ansible is the storage backend for.</p> Ansible Plugin - Story #5018 (CLOSED - CURRENTRELEASE): Add artifact sha details to the content a...https://pulp.plan.io/issues/50182019-06-24T19:39:05Zsajha
<p>It would be helpful to see artifact sha details on the content details/list results to avoid an additional call to artifacts API to fetch sha details.<br>
This endpoint should ideally provide sha details in results: <a href="https://pulp-ansible.readthedocs.io/en/latest/restapi.html#operation/content_ansible_collections_list" class="external">https://pulp-ansible.readthedocs.io/en/latest/restapi.html#operation/content_ansible_collections_list</a></p> Ansible Plugin - Test #4912 (CLOSED - WONTFIX): [Epic] Test collection content typehttps://pulp.plan.io/issues/49122019-06-04T19:43:58Zkersom
<p>Add tests to collection content type.</p>
<p><a href="https://pulp-ansible.readthedocs.io/en/latest/workflows/index.html#collection-workflows" class="external">https://pulp-ansible.readthedocs.io/en/latest/workflows/index.html#collection-workflows</a></p> Ansible Plugin - Task #4842 (CLOSED - CURRENTRELEASE): Add API docs to websitehttps://pulp.plan.io/issues/48422019-05-17T14:50:13Zbmbouterbmbouter@redhat.com
<p>pulp_ansible should have API docs similar to what the pulp_file docs have here: <a href="https://pulp-file.readthedocs.io/en/latest/restapi/index.html" class="external">https://pulp-file.readthedocs.io/en/latest/restapi/index.html</a></p>
<p>This does not need to include the Galaxy URLs, only for the Pulp components, e.g. AnsibleDistribution. It's ok if the Galaxy stuff is also there, just not a requirement.</p> Ansible Plugin - Story #4066 (CLOSED - DUPLICATE): Add a role support to existing one-shot upload...https://pulp.plan.io/issues/40662018-10-05T20:07:07Zbmbouterbmbouter@redhat.com
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_ansible/682":<a href="https://github.com/pulp/pulp_ansible/issues/682" class="external">https://github.com/pulp/pulp_ansible/issues/682</a></p>
<hr>
<p>As a user, I should be able to upload Role and RoleVersion content to Pulp via 1 call where the tarball asset is delivered, and Pulp can automatically recognize the content and create the correct Artifacts Roles and RoleVersions.</p>
<p>This would replace the existing multi-part user-driven approach which is too complicated.</p>