Story #8205
closedAdd AnsibleCollectionDeprecated resource to export/import
100%
Description
The Two Related Problem¶
- The 'deprecated' data is mutable.
- The 'deprecated' data is not correctly included in import/export data
Solution¶
From a high level, make the AnsibleCollectionDeprecated
content.
Modeling¶
Here are the rough steps involved:
- switch the existing AnsibleCollectionDeprecated to inherit from Content
- Remove the
repository_version
FK entirely. - Change the
collection
field to be a string with the collection name instead - Add a string field called namespace.
- The uniqueness constraint should be the tuple "namespace", "collection_name"
Sync Implementation¶
The sync code will continue to parse the deprecated data in FirstStage in the same way, but instead of saving/managing them in first-stage, have the stages pipeline handle it all by making AnsibleCollectionDeprecated
in-memory and associating with a declarative content object.
The Galaxy API viewset¶
Port this portion to look for the objects in the set of content of the RepositoryVersion.
The viewset for set/unset deprecation handling¶
Port this portion to generate a task that creates a RepositoryVersion
Additional work needed to get this working with Import/Export¶
Add a model to model resources: https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/modelresource.py
Related issues
Updated by gerrod almost 4 years ago
- Blocked by Task #8204: Add method to allow import of models with references to repo versions added
Updated by bmbouter over 3 years ago
- Tracker changed from Task to Story
- Description updated (diff)
Updated by daviddavis over 3 years ago
Change the collection field to be a string with the collection name instead
I'm assuming this will contain namespace? Or we have to add another field for namespace?
Additional work needed to get this working with Import/Export
We just need to add a model to model resources: https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/modelresource.py
Updated by bmbouter over 3 years ago
- Description updated (diff)
I put the import/export work in the ticket body.
We've talked with galaxy_ng about them moving the model over too but right now I was hoping to just store it as a string. I put that into the modelling details too.
Updated by fao89 over 3 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to fao89
Updated by fao89 over 3 years ago
the first issue I found is the data migration, AnsibleCollectionDeprecated as content would change the repository versions.
AnsibleCollectionDeprecated(
collection=Collection(name="pulp_installer", namespace="pulp"),
repository_version=RepositoryVersion(number=1),
)
=>
AnsibleCollectionDeprecated(
name="pulp_installer",
namespace="pulp",
)
+ RepositoryContent
Updated by bmbouter over 3 years ago
I don't understand the issue with AnsibleCollectionDeprecated and migrations. Are you saying that changing the AnsibleCollectionDeprecated model will break the migrations?
Updated by pulpbot over 3 years ago
- Status changed from ASSIGNED to POST
Added by Fabricio Aguiar over 3 years ago
Updated by Anonymous over 3 years ago
- Status changed from POST to MODIFIED
- % Done changed from 0 to 100
Applied in changeset pulp_ansible|b20ce5170066cdbc32ea80c5c65060befdc9031a.
Updated by fao89 over 3 years ago
- Sprint/Milestone changed from 1.0.0 - Candidates to 0.10.0
AnsibleCollectionDeprecated as Content
https://pulp.plan.io/issues/8205 closes #8205