Project

Profile

Help

Story #8205

closed

Add AnsibleCollectionDeprecated resource to export/import

Added by gerrod almost 4 years ago. Updated over 3 years ago.

Status:
MODIFIED
Priority:
Normal
Assignee:
Sprint/Milestone:
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Katello
Sprint:
Quarter:

Description

The Two Related Problem

  1. The 'deprecated' data is mutable.
  2. 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:

  1. switch the existing AnsibleCollectionDeprecated to inherit from Content
  2. Remove the repository_version FK entirely.
  3. Change the collection field to be a string with the collection name instead
  4. Add a string field called namespace.
  5. 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

Blocked by Pulp - Task #8204: Add method to allow import of models with references to repo versionsCLOSED - DUPLICATE

Actions
Actions #1

Updated by gerrod almost 4 years ago

  • Blocked by Task #8204: Add method to allow import of models with references to repo versions added
Actions #2

Updated by bmbouter almost 4 years ago

  • Tags Katello added
Actions #3

Updated by fao89 over 3 years ago

  • Sprint/Milestone set to 1.0.0 - Candidates
Actions #4

Updated by bmbouter over 3 years ago

  • Tracker changed from Task to Story
  • Description updated (diff)
Actions #5

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

Actions #6

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.

Actions #7

Updated by fao89 over 3 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to fao89
Actions #8

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
Actions #9

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?

Actions #10

Updated by pulpbot over 3 years ago

  • Status changed from ASSIGNED to POST

Added by Fabricio Aguiar over 3 years ago

Revision b20ce517 | View on GitHub

AnsibleCollectionDeprecated as Content

https://pulp.plan.io/issues/8205 closes #8205

Actions #11

Updated by Anonymous over 3 years ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100
Actions #12

Updated by fao89 over 3 years ago

  • Sprint/Milestone changed from 1.0.0 - Candidates to 0.10.0

Also available in: Atom PDF