Skip to content

Commit 8eafca9

Browse files
committed
Add pulp_labels to Namespaces
fixes: #2139 Generated by: claude-4.5-sonnet
1 parent c81d744 commit 8eafca9

4 files changed

Lines changed: 26 additions & 1 deletion

File tree

CHANGES/2139.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added pulp_labels field to ContainerNamespace for labeling and organizing namespaces
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 5.2.6 on 2026-01-27 00:00
2+
3+
from django.contrib.postgres.fields import HStoreField
4+
from django.db import migrations
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('container', '0046_alter_manifest_listed_manifests'),
11+
]
12+
13+
operations = [
14+
migrations.AddField(
15+
model_name='containernamespace',
16+
name='pulp_labels',
17+
field=HStoreField(default=dict),
18+
),
19+
]

pulp_container/app/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.db import models
1111
from django.conf import settings
1212
from django.contrib.postgres import fields
13+
from django.contrib.postgres.fields import HStoreField
1314
from django.shortcuts import redirect
1415
from django_lifecycle import hook, AFTER_CREATE, AFTER_DELETE, AFTER_UPDATE
1516

@@ -438,10 +439,12 @@ class ContainerNamespace(BaseModel, AutoAddObjPermsMixin):
438439
439440
Fields:
440441
name (models.TextField): The name of the namespace.
442+
pulp_labels (HStoreField): Key-value pairs for labeling and organizing namespaces.
441443
"""
442444

443445
name = models.TextField(db_index=True)
444446
pulp_domain = models.ForeignKey("core.Domain", default=get_domain_pk, on_delete=models.PROTECT)
447+
pulp_labels = HStoreField(default=dict)
445448

446449
class Meta:
447450
unique_together = ("name", "pulp_domain")

pulp_container/app/serializers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
RepositoryVersionRelatedField,
2727
SingleArtifactContentSerializer,
2828
ValidateFieldsMixin,
29+
pulp_labels_validator,
2930
)
3031
from pulpcore.plugin.util import get_domain
3132

@@ -241,9 +242,10 @@ class ContainerNamespaceSerializer(ModelSerializer, GetOrCreateSerializerMixin):
241242
"""
242243

243244
pulp_href = IdentityField(view_name="pulp_container/namespaces-detail")
245+
pulp_labels = serializers.HStoreField(required=False, validators=[pulp_labels_validator])
244246

245247
class Meta:
246-
fields = ModelSerializer.Meta.fields + ("name",)
248+
fields = ModelSerializer.Meta.fields + ("name", "pulp_labels")
247249
model = models.ContainerNamespace
248250

249251

0 commit comments

Comments
 (0)