Skip to content

Commit

Permalink
Add Domain support.
Browse files Browse the repository at this point in the history
closes pulp#3008

(based on PR pulp#2920)
Co-authored by: Grant Gainey <ggainey@redhat.com>
  • Loading branch information
pavelpicka authored and ggainey committed Apr 19, 2023
1 parent 2ed7370 commit 370a3cd
Show file tree
Hide file tree
Showing 23 changed files with 715 additions and 95 deletions.
1 change: 1 addition & 0 deletions CHANGES/3008.feature
@@ -0,0 +1 @@
Added support for Domains.
1 change: 1 addition & 0 deletions pulp_rpm/app/__init__.py
Expand Up @@ -10,3 +10,4 @@ class PulpRpmPluginAppConfig(PulpPluginAppConfig):
label = "rpm"
version = "3.20.0.dev"
python_package_name = "pulp-rpm"
domain_compatible = True
150 changes: 150 additions & 0 deletions pulp_rpm/app/migrations/0049_domains.py
@@ -0,0 +1,150 @@
# Generated by Django 3.2.18 on 2023-04-19 00:43

from django.db import migrations, models
import django.db.models.deletion
import pulpcore.app.util


class Migration(migrations.Migration):

dependencies = [
('core', '0102_add_domain_relations'),
('rpm', '0048_artifacts_dependencies_fix'),
]

operations = [
migrations.AddField(
model_name='distributiontree',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_distributiontree', to='core.domain'),
),
migrations.AddField(
model_name='modulemd',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_modulemd', to='core.domain'),
),
migrations.AddField(
model_name='modulemddefaults',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_modulemddefaults', to='core.domain'),
),
migrations.AddField(
model_name='modulemdobsolete',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_modulemdobsolete', to='core.domain'),
),
migrations.AddField(
model_name='package',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_package', to='core.domain'),
),
migrations.AddField(
model_name='packagecategory',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_packagecategory', to='core.domain'),
),
migrations.AddField(
model_name='packageenvironment',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_packageenvironment', to='core.domain'),
),
migrations.AddField(
model_name='packagegroup',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_packagegroup', to='core.domain'),
),
migrations.AddField(
model_name='packagelangpacks',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_packagelangpacks', to='core.domain'),
),
migrations.AddField(
model_name='repometadatafile',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_repometadatafile', to='core.domain'),
),
migrations.AddField(
model_name='updaterecord',
name='_pulp_domain',
field=models.ForeignKey(default=pulpcore.app.util.get_domain_pk, on_delete=django.db.models.deletion.PROTECT, related_name='rpm_updaterecord', to='core.domain'),
),
migrations.AlterField(
model_name='modulemddefaults',
name='digest',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='package',
name='pkgId',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='packagecategory',
name='digest',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='packageenvironment',
name='digest',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='packagegroup',
name='digest',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='packagelangpacks',
name='digest',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='updaterecord',
name='digest',
field=models.TextField(db_index=True),
),
migrations.AlterUniqueTogether(
name='distributiontree',
unique_together={('_pulp_domain', 'digest')},
),
migrations.AlterUniqueTogether(
name='modulemd',
unique_together={('_pulp_domain', 'name', 'stream', 'version', 'context', 'arch')},
),
migrations.AlterUniqueTogether(
name='modulemddefaults',
unique_together={('_pulp_domain', 'digest')},
),
migrations.AlterUniqueTogether(
name='modulemdobsolete',
unique_together={('_pulp_domain', 'modified', 'module_name', 'module_stream')},
),
migrations.AlterUniqueTogether(
name='package',
unique_together={('_pulp_domain', 'name', 'epoch', 'version', 'release', 'arch', 'checksum_type', 'pkgId')},
),
migrations.AlterUniqueTogether(
name='packagecategory',
unique_together={('_pulp_domain', 'digest')},
),
migrations.AlterUniqueTogether(
name='packageenvironment',
unique_together={('_pulp_domain', 'digest')},
),
migrations.AlterUniqueTogether(
name='packagegroup',
unique_together={('_pulp_domain', 'digest')},
),
migrations.AlterUniqueTogether(
name='packagelangpacks',
unique_together={('_pulp_domain', 'digest')},
),
migrations.AlterUniqueTogether(
name='repometadatafile',
unique_together={('_pulp_domain', 'data_type', 'checksum', 'relative_path')},
),
migrations.AlterUniqueTogether(
name='updaterecord',
unique_together={('_pulp_domain', 'digest')},
),
]
6 changes: 5 additions & 1 deletion pulp_rpm/app/models/advisory.py
Expand Up @@ -8,6 +8,7 @@
BaseModel,
Content,
)
from pulpcore.plugin.util import get_domain_pk

from pulp_rpm.app.constants import (
CR_UPDATE_COLLECTION_ATTRS,
Expand Down Expand Up @@ -100,7 +101,9 @@ class UpdateRecord(Content):
# A field that represents the hash digest of the update record. Used to track differences
# between two UpdateRecord objects without having to examine the associations like
# UpdateCollection or UpdateCollectionPackage.
digest = models.TextField(unique=True)
digest = models.TextField(db_index=True)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

@classmethod
def natural_key_fields(cls):
Expand Down Expand Up @@ -228,6 +231,7 @@ def get_module_list(self):

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("_pulp_domain", "digest")


class UpdateCollection(BaseModel):
Expand Down
21 changes: 17 additions & 4 deletions pulp_rpm/app/models/comps.py
Expand Up @@ -5,6 +5,7 @@
from django.db import models

from pulpcore.plugin.models import Content
from pulpcore.plugin.util import get_domain_pk

from pulp_rpm.app.constants import (
LIBCOMPS_CATEGORY_ATTRS,
Expand Down Expand Up @@ -73,12 +74,15 @@ class PackageGroup(Content):
desc_by_lang = models.JSONField(default=dict)
name_by_lang = models.JSONField(default=dict)

digest = models.TextField(unique=True)
digest = models.TextField(db_index=True)

repo_key_fields = ("id",)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("_pulp_domain", "digest")

@classmethod
def natural_key_fields(cls):
Expand Down Expand Up @@ -230,12 +234,15 @@ class PackageCategory(Content):
desc_by_lang = models.JSONField(default=dict)
name_by_lang = models.JSONField(default=dict)

digest = models.TextField(unique=True)
digest = models.TextField(db_index=True)

repo_key_fields = ("id",)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("_pulp_domain", "digest")

@classmethod
def natural_key_fields(cls):
Expand Down Expand Up @@ -357,12 +364,15 @@ class PackageEnvironment(Content):
desc_by_lang = models.JSONField(default=dict)
name_by_lang = models.JSONField(default=dict)

digest = models.TextField(unique=True)
digest = models.TextField(db_index=True)

repo_key_fields = ("id",)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("_pulp_domain", "digest")

@classmethod
def natural_key_fields(cls):
Expand Down Expand Up @@ -463,10 +473,13 @@ class PackageLangpacks(Content):

matches = models.JSONField(default=dict)

digest = models.TextField(unique=True)
digest = models.TextField(db_index=True)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("_pulp_domain", "digest")

@classmethod
def natural_key_fields(cls):
Expand Down
5 changes: 4 additions & 1 deletion pulp_rpm/app/models/custom_metadata.py
Expand Up @@ -3,6 +3,7 @@
from django.db import models

from pulpcore.plugin.models import Content
from pulpcore.plugin.util import get_domain_pk
from pulp_rpm.app.constants import CHECKSUM_CHOICES

log = getLogger(__name__)
Expand Down Expand Up @@ -32,9 +33,11 @@ class RepoMetadataFile(Content):

repo_key_fields = ("data_type",)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("data_type", "checksum", "relative_path")
unique_together = ("_pulp_domain", "data_type", "checksum", "relative_path")

@property
def unsupported_metadata_type(self):
Expand Down
5 changes: 4 additions & 1 deletion pulp_rpm/app/models/distribution.py
Expand Up @@ -12,6 +12,7 @@
ContentArtifact,
Repository,
)
from pulpcore.plugin.util import get_domain_pk

log = getLogger(__name__)

Expand Down Expand Up @@ -94,6 +95,8 @@ class DistributionTree(Content):

digest = models.TextField(null=False)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

def repositories(self):
"""
Return the subrepos in this DistributionTree.
Expand Down Expand Up @@ -134,7 +137,7 @@ def artifacts(self):

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("digest",)
unique_together = ("_pulp_domain", "digest")


class Checksum(BaseModel):
Expand Down
14 changes: 11 additions & 3 deletions pulp_rpm/app/models/modulemd.py
Expand Up @@ -3,6 +3,7 @@
from django.db import models

from pulpcore.plugin.models import Content
from pulpcore.plugin.util import get_domain_pk

from pulp_rpm.app.models.package import Package

Expand Down Expand Up @@ -65,9 +66,11 @@ class Modulemd(Content):

snippet = models.TextField()

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("name", "stream", "version", "context", "arch")
unique_together = ("_pulp_domain", "name", "stream", "version", "context", "arch")


class ModulemdDefaults(Content):
Expand All @@ -92,12 +95,14 @@ class ModulemdDefaults(Content):
module = models.TextField()
stream = models.TextField()
profiles = models.JSONField(default=list)
digest = models.TextField(unique=True)
digest = models.TextField(db_index=True)

snippet = models.TextField()

repo_key_fields = ("module",)

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

@classmethod
def natural_key_fields(cls):
"""
Expand All @@ -107,6 +112,7 @@ def natural_key_fields(cls):

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("_pulp_domain", "digest")


class ModulemdObsolete(Content):
Expand Down Expand Up @@ -151,6 +157,8 @@ class ModulemdObsolete(Content):

snippet = models.TextField()

_pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)

class Meta:
default_related_name = "%(app_label)s_%(model_name)s"
unique_together = ("modified", "module_name", "module_stream")
unique_together = ("_pulp_domain", "modified", "module_name", "module_stream")

0 comments on commit 370a3cd

Please sign in to comment.