pulpcore 3.87.0__py3-none-any.whl → 3.88.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulpcore might be problematic. Click here for more details.

@@ -6,6 +6,6 @@ class PulpCertGuardPluginAppConfig(PulpPluginAppConfig):
6
6
 
7
7
  name = "pulp_certguard.app"
8
8
  label = "certguard"
9
- version = "3.87.0"
9
+ version = "3.88.0"
10
10
  python_package_name = "pulpcore"
11
11
  domain_compatible = True
pulp_file/app/__init__.py CHANGED
@@ -8,6 +8,6 @@ class PulpFilePluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_file.app"
10
10
  label = "file"
11
- version = "3.87.0"
11
+ version = "3.88.0"
12
12
  python_package_name = "pulpcore"
13
13
  domain_compatible = True
@@ -13,6 +13,7 @@ from pulpcore.plugin.models import (
13
13
  )
14
14
 
15
15
  from pulp_file.app.models import FilePublication
16
+ from pulp_file.app.serializers import FilePublicationSerializer
16
17
  from pulp_file.manifest import Entry, Manifest
17
18
 
18
19
 
@@ -51,6 +52,10 @@ def publish(manifest, repository_version_pk, checkpoint=False):
51
52
 
52
53
  log.info(_("Publication: {publication} created").format(publication=publication.pk))
53
54
 
55
+ publication = FilePublicationSerializer(
56
+ instance=publication, context={"request": None}
57
+ ).data
58
+
54
59
  return publication
55
60
 
56
61
 
@@ -7,6 +7,7 @@ from urllib.parse import quote, urlparse, urlunparse
7
7
  from django.core.files import File
8
8
 
9
9
  from pulpcore.plugin.models import Artifact, ProgressReport, Remote, PublishedMetadata
10
+ from pulpcore.plugin.serializers import RepositoryVersionSerializer
10
11
  from pulpcore.plugin.stages import (
11
12
  DeclarativeArtifact,
12
13
  DeclarativeContent,
@@ -65,6 +66,9 @@ def synchronize(remote_pk, repository_pk, mirror, url=None):
65
66
 
66
67
  log.info(_("Publication: {publication} created").format(publication=publication.pk))
67
68
 
69
+ if rv:
70
+ rv = RepositoryVersionSerializer(instance=rv, context={"request": None}).data
71
+
68
72
  return rv
69
73
 
70
74
 
pulpcore/app/apps.py CHANGED
@@ -239,7 +239,7 @@ class PulpAppConfig(PulpPluginAppConfig):
239
239
  label = "core"
240
240
 
241
241
  # The version of this app
242
- version = "3.87.0"
242
+ version = "3.88.0"
243
243
 
244
244
  # The python package name providing this app
245
245
  python_package_name = "pulpcore"
@@ -0,0 +1,21 @@
1
+ # Generated by Django 4.2.23 on 2025-08-29 13:34
2
+
3
+ import django.core.serializers.json
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ("core", "0141_alter_appstatus_name"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name="task",
16
+ name="result",
17
+ field=models.JSONField(
18
+ default=None, encoder=django.core.serializers.json.DjangoJSONEncoder, null=True
19
+ ),
20
+ ),
21
+ ]
@@ -2,6 +2,7 @@
2
2
  Django models related to the Tasking system
3
3
  """
4
4
 
5
+ import json
5
6
  import logging
6
7
  import traceback
7
8
  from datetime import timedelta
@@ -114,6 +115,7 @@ class Task(BaseModel, AutoAddObjPermsMixin):
114
115
  deferred (models.BooleanField): Whether to allow defer running the task to a
115
116
  pulpcore_worker. Both `immediate` and `deferred` cannot both be `False`.
116
117
  Defaults to `True`.
118
+ result (models.JSONField): The result of the task
117
119
 
118
120
  Relations:
119
121
  app_lock (AppStatus): The app holding the lock on this task.
@@ -160,6 +162,8 @@ class Task(BaseModel, AutoAddObjPermsMixin):
160
162
  immediate = models.BooleanField(default=False, null=True)
161
163
  deferred = models.BooleanField(default=True, null=True)
162
164
 
165
+ result = models.JSONField(default=None, null=True, encoder=DjangoJSONEncoder)
166
+
163
167
  def __str__(self):
164
168
  return "Task: {name} [{state}]".format(name=self.name, state=self.state)
165
169
 
@@ -229,22 +233,36 @@ class Task(BaseModel, AutoAddObjPermsMixin):
229
233
  )
230
234
  )
231
235
 
232
- def set_completed(self):
236
+ def set_completed(self, result=None):
233
237
  """
234
238
  Set this Task to the completed state, save it, and log output in warning cases.
235
239
 
236
240
  This updates the :attr:`finished_at` and sets the :attr:`state` to :attr:`COMPLETED`.
241
+ If `result` is provided, the :attr:`result` contains the result of the task.
237
242
  """
243
+ try:
244
+ json.dumps(result, cls=DjangoJSONEncoder)
245
+ except (TypeError, ValueError):
246
+ deprecation_logger.warning(
247
+ _(
248
+ "The result of the {} function is not JSON-serializable and will be "
249
+ "replaced with None: {}. This will raise an error in version 3.100."
250
+ ).format(self.name, result)
251
+ )
252
+ result = None
253
+
238
254
  # Only set the state to finished if it's running. This is important for when the task has
239
255
  # been canceled, so we don't move the task from canceled to finished.
240
256
  finished_at = timezone.now()
241
257
  rows = Task.objects.filter(pk=self.pk, state=TASK_STATES.RUNNING).update(
242
258
  state=TASK_STATES.COMPLETED,
243
259
  finished_at=finished_at,
260
+ result=result,
244
261
  )
245
262
  if rows == 1:
246
263
  self.state = TASK_STATES.COMPLETED
247
264
  self.finished_at = finished_at
265
+ self.result = result
248
266
  else:
249
267
  self.refresh_from_db()
250
268
  # If the user requested to cancel this task while the worker finished it, we leave it
@@ -88,6 +88,10 @@ class TaskSerializer(ModelSerializer):
88
88
  help_text=_("A list of resources required by that task."),
89
89
  read_only=True,
90
90
  )
91
+ result = serializers.JSONField(
92
+ read_only=True,
93
+ help_text=_("The result of this task."),
94
+ )
91
95
 
92
96
  def get_created_by(self, obj):
93
97
  if task_user_map := self.context.get("task_user_mapping"):
@@ -115,6 +119,7 @@ class TaskSerializer(ModelSerializer):
115
119
  "progress_reports",
116
120
  "created_resources",
117
121
  "reserved_resources_record",
122
+ "result",
118
123
  )
119
124
 
120
125
 
@@ -19,7 +19,8 @@ def general_create_from_temp_file(app_label, serializer_name, temp_file_pk, *arg
19
19
  context = kwargs.pop("context", {})
20
20
  context["pulp_temp_file_pk"] = temp_file_pk
21
21
 
22
- general_create(app_label, serializer_name, data=data, context=context, *args, **kwargs)
22
+ data = general_create(app_label, serializer_name, data=data, context=context, *args, **kwargs)
23
+ return data
23
24
 
24
25
 
25
26
  def general_create(app_label, serializer_name, *args, **kwargs):
@@ -33,6 +34,7 @@ def general_create(app_label, serializer_name, *args, **kwargs):
33
34
  data = kwargs.pop("data", None)
34
35
 
35
36
  context = kwargs.pop("context", {})
37
+ context.setdefault("request", None)
36
38
  serializer_class = get_plugin_config(app_label).named_serializers[serializer_name]
37
39
  serializer = serializer_class(data=data, context=context)
38
40
 
@@ -42,6 +44,7 @@ def general_create(app_label, serializer_name, *args, **kwargs):
42
44
  instance = instance.cast()
43
45
  resource = CreatedResource(content_object=instance)
44
46
  resource.save()
47
+ return serializer.data
45
48
 
46
49
 
47
50
  def general_update(instance_id, app_label, serializer_name, *args, **kwargs):
@@ -130,13 +133,17 @@ async def ageneral_update(instance_id, app_label, serializer_name, *args, **kwar
130
133
  """
131
134
  data = kwargs.pop("data", None)
132
135
  partial = kwargs.pop("partial", False)
136
+ context = kwargs.pop("context", {})
137
+ context.setdefault("request", None)
138
+
133
139
  serializer_class = get_plugin_config(app_label).named_serializers[serializer_name]
134
140
  instance = await serializer_class.Meta.model.objects.aget(pk=instance_id)
135
141
  if isinstance(instance, MasterModel):
136
142
  instance = await instance.acast()
137
- serializer = serializer_class(instance, data=data, partial=partial)
143
+ serializer = serializer_class(instance, data=data, partial=partial, context=context)
138
144
  await sync_to_async(serializer.is_valid)(raise_exception=True)
139
145
  await sync_to_async(serializer.save)()
146
+ return await sync_to_async(lambda: serializer.data)()
140
147
 
141
148
 
142
149
  async def ageneral_delete(instance_id, app_label, serializer_name):
@@ -31,6 +31,7 @@ from pulpcore.app.serializers import (
31
31
  RepositorySerializer,
32
32
  RepositorySyncURLSerializer,
33
33
  RepositoryVersionRelatedField,
34
+ RepositoryVersionSerializer,
34
35
  SingleArtifactContentSerializer,
35
36
  SingleContentArtifactField,
36
37
  TaskGroupOperationResponseSerializer,
@@ -79,6 +80,7 @@ __all__ = [
79
80
  "RepositorySerializer",
80
81
  "RepositorySyncURLSerializer",
81
82
  "RepositoryVersionRelatedField",
83
+ "RepositoryVersionSerializer",
82
84
  "SingleArtifactContentSerializer",
83
85
  "SingleContentArtifactField",
84
86
  "TaskGroupOperationResponseSerializer",
@@ -85,7 +85,7 @@ class UploadSerializerFieldsMixin(Serializer):
85
85
 
86
86
  data = super().validate(data)
87
87
 
88
- if "request" in self.context:
88
+ if self.context.get("request") is not None:
89
89
  upload_fields = {
90
90
  field
91
91
  for field in self.Meta.fields
pulpcore/tasking/tasks.py CHANGED
@@ -95,7 +95,7 @@ def _execute_task(task):
95
95
  coro = asyncio.wait_for(coro, timeout=IMMEDIATE_TIMEOUT)
96
96
  loop = asyncio.get_event_loop()
97
97
  try:
98
- loop.run_until_complete(coro)
98
+ result = loop.run_until_complete(coro)
99
99
  except asyncio.TimeoutError:
100
100
  _logger.info(
101
101
  "Immediate task %s timed out after %s seconds.", task.pk, IMMEDIATE_TIMEOUT
@@ -106,7 +106,7 @@ def _execute_task(task):
106
106
  )
107
107
  )
108
108
  else:
109
- func(*args, **kwargs)
109
+ result = func(*args, **kwargs)
110
110
 
111
111
  except Exception:
112
112
  exc_type, exc, tb = sys.exc_info()
@@ -123,7 +123,7 @@ def _execute_task(task):
123
123
  _logger.info("\n".join(traceback.format_list(traceback.extract_tb(tb))))
124
124
  send_task_notification(task)
125
125
  else:
126
- task.set_completed()
126
+ task.set_completed(result)
127
127
  execution_time = task.finished_at - task.started_at
128
128
  execution_time_us = int(execution_time.total_seconds() * 1_000_000) # μs
129
129
  _logger.info(
@@ -368,10 +368,15 @@ class PulpcoreWorker:
368
368
  for task in Task.objects.filter(
369
369
  state__in=TASK_INCOMPLETE_STATES,
370
370
  unblocked_at__isnull=False,
371
+ app_lock__isnull=True,
371
372
  ).order_by("-immediate", F("pulp_created") + Value(timedelta(seconds=8)) * Random()):
372
373
  # This code will only be called if we acquired the lock successfully.
373
374
  # The lock will be automatically be released at the end of the block.
374
375
  with contextlib.suppress(AdvisoryLockError), task:
376
+ # Check if someone else changed the task before we got the lock.
377
+ task.refresh_from_db()
378
+ if task.state not in TASK_INCOMPLETE_STATES:
379
+ continue
375
380
  # We got the advisory lock (OLD) now try to get the app_lock (NEW).
376
381
  rows = Task.objects.filter(pk=task.pk, app_lock=None).update(
377
382
  app_lock=AppStatus.objects.current()
@@ -380,12 +385,10 @@ class PulpcoreWorker:
380
385
  _logger.error(
381
386
  "Acquired advisory lock but missed the app_lock for the task. "
382
387
  "This should only happen during the upgrade phase to the new app_lock."
388
+ f"Task: {task.pk=}, {task.state=}, {task.app_lock=}."
383
389
  )
384
390
  continue
385
391
  try:
386
- # Check if someone else changed the task before we got the lock.
387
- task.refresh_from_db()
388
-
389
392
  if task.state == TASK_STATES.CANCELING:
390
393
  # No worker picked this task up before being canceled.
391
394
  if self.cancel_abandoned_task(task, TASK_STATES.CANCELED):
@@ -169,3 +169,23 @@ def test_reserved_resources_filter(setup_filter_fixture, pulpcore_bindings):
169
169
  assert set(h.pulp_href for h in prn_results.results) == task_hrefs
170
170
  mixed_results = pulpcore_bindings.TasksApi.list(exclusive_resources__in=[repo_prn, remote_prn])
171
171
  assert mixed_results.count == 0
172
+
173
+
174
+ @pytest.mark.parallel
175
+ def test_task_result(add_to_cleanup, file_bindings, monitor_task):
176
+ """
177
+ Test that when performing `general_create` or `ageneral_update`,
178
+ the result of the task is stored in the `Task.result` field.
179
+ """
180
+ # test create
181
+ body = {"name": str(uuid4()), "base_path": str(uuid4())}
182
+ task = monitor_task(file_bindings.DistributionsFileApi.create(body).task)
183
+ assert task.result["base_path"] == body["base_path"]
184
+
185
+ # test update
186
+ dist_href = task.result["pulp_href"]
187
+ updated_body = {"name": str(uuid4()), "base_path": str(uuid4())}
188
+ task_2 = monitor_task(file_bindings.DistributionsFileApi.update(dist_href, updated_body).task)
189
+ assert task_2.result["base_path"] == updated_body["base_path"]
190
+
191
+ add_to_cleanup(file_bindings.DistributionsFileApi, dist_href)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.87.0
3
+ Version: 3.88.0
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  Project-URL: Homepage, https://pulpproject.org
@@ -1,6 +1,6 @@
1
1
  pulp_certguard/__init__.py,sha256=llnEd00PrsAretsgAOHiNKFbmvIdXe3iDVPmSaKz7gU,71
2
2
  pulp_certguard/pytest_plugin.py,sha256=qhRbChzqN2PROtD-65KuoTfKr5k9T3GPsz9daFgpqpM,852
3
- pulp_certguard/app/__init__.py,sha256=xReedwLBMMCFC_Aey1FCvF7NPq1jAFxO9kqD1sPLHaI,297
3
+ pulp_certguard/app/__init__.py,sha256=tG7rgUvhS8jhEQoUJz2nKo_Vep3DL0gKRw_KZqrjXvs,297
4
4
  pulp_certguard/app/models.py,sha256=YLEhBtZM4hetekVZ_GTnbLlWD6CkIQw2B3ILwXRcq-s,7483
5
5
  pulp_certguard/app/serializers.py,sha256=9IxlQiy783RdKF9oI1mrYS4haG5Boy2DOjfP_eJtMLY,1726
6
6
  pulp_certguard/app/viewsets.py,sha256=1_gNmsWyOT8kcOiGVkn4-wrtAjZO4wC8q0-aoEsCpjI,697
@@ -51,7 +51,7 @@ pulp_certguard/tests/unit/test_rhsm_check_path.py,sha256=Q1CsXnUgD7ELvtolPeumyNr
51
51
  pulp_file/__init__.py,sha256=0vOCXofR6Eyxkg4y66esnOGPeESCe23C1cNBHj56w44,61
52
52
  pulp_file/manifest.py,sha256=1WwIOJrPSkFcmkRm7CkWifVOCoZvo_nnANgce6uuG7U,3796
53
53
  pulp_file/pytest_plugin.py,sha256=l1PvTxUi5D3uJy4SnHWNhr-otWEYNcm-kc5nSqVJg0Y,10646
54
- pulp_file/app/__init__.py,sha256=dibg5uhEg3n9ndMpkjTtaKs3Z3PzNWshY9pHL_noEgU,292
54
+ pulp_file/app/__init__.py,sha256=eJq79DqK5SmoA1hu2g__h8xu-aMUZJ-zkyFFKeSihvs,292
55
55
  pulp_file/app/modelresource.py,sha256=v-m-_bBEsfr8wG0TI5ffx1TuKUy2-PsirhuQz4XXF-0,1063
56
56
  pulp_file/app/models.py,sha256=QsrVg_2uKqnR89sLN2Y7Zy260_nLIcUfa94uZowlmFw,4571
57
57
  pulp_file/app/replica.py,sha256=OtNWVmdFUgNTYhPttftVNQnSrnvx2_hnrJgtW_G0Vrg,1894
@@ -61,8 +61,8 @@ pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py,sha256=ukPbncW
61
61
  pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py,sha256=XyF9FYLUHCxNc4tq6PLv-rrVExrOC4TccGsegPz6Rdc,2362
62
62
  pulp_file/app/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  pulp_file/app/tasks/__init__.py,sha256=jrdxJbgZZj-sX_bevAco5soNRxttNYUChvv3mTs2uRg,87
64
- pulp_file/app/tasks/publishing.py,sha256=cHO-QChEUQU6qboloGni5xeIYtZ2mEItyHlmopa2dJw,2667
65
- pulp_file/app/tasks/synchronizing.py,sha256=VuDMRPEJ0ZaEIaq2svd1a3fm4oTkbnqcLoA90knz4M8,4558
64
+ pulp_file/app/tasks/publishing.py,sha256=3zJ6c6XEFAMRLHImTU143V82h-D8Zwi5OwnnyAKtpgE,2856
65
+ pulp_file/app/tasks/synchronizing.py,sha256=HIWr9xim961T9N1VcXHGdksAZHqIaih-GZYNOGr2N3I,4724
66
66
  pulp_file/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
67
  pulp_file/tests/functional/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  pulp_file/tests/functional/api/__init__.py,sha256=IxizGLz9A_3Sh2ZGHpRlqMyZ1gIVAepBpJB474OJefE,62
@@ -96,7 +96,7 @@ pulpcore/pytest_plugin.py,sha256=fy9vz5-bw30T7f4jxDtNIgF7L_0MJ_q7KIAzpvizvnY,382
96
96
  pulpcore/responses.py,sha256=mIGKmdCfTSoZxbFu4yIH1xbdLx1u5gqt3D99LTamcJg,6125
97
97
  pulpcore/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  pulpcore/app/access_policy.py,sha256=5vCKy6WoHtIt1_-eS5vMaZ7CmR4G-CIpsrB8yT-d88Q,6079
99
- pulpcore/app/apps.py,sha256=0Gsmsyt1r937-0pABimY5Tlj8a2LRkGqFX1bdzfza0M,17412
99
+ pulpcore/app/apps.py,sha256=6s4GJXYwUryZSVR6pQfppofIoZ2qud5fIVlp-slv1-0,17412
100
100
  pulpcore/app/authentication.py,sha256=1LIJW6HIQQlZrliHy__jdzkDEh6Oj7xKgd0V-vRcDus,2855
101
101
  pulpcore/app/checks.py,sha256=jbfTF7nmftBbky4AQXHigpyCaGydKasvRUXsd72JZVg,1946
102
102
  pulpcore/app/entrypoint.py,sha256=GYEq4GjglQZhFlU3865AT_H0nPypDKJAsf8qdyR4tPY,4985
@@ -190,6 +190,7 @@ pulpcore/app/migrations/0138_vulnerabilityreport.py,sha256=rYmdIXfTCSZeH5sHLCCFM
190
190
  pulpcore/app/migrations/0139_task_app_lock.py,sha256=Dtu_om_zFplrPr8DageoiXOWUiOS5aHgOy99S0bMXH0,502
191
191
  pulpcore/app/migrations/0140_require_appstatus_zdu.py,sha256=KrSyuQDg6Wd_M4RetDfGS9FDSMkHJxjh6BijR3Hro78,305
192
192
  pulpcore/app/migrations/0141_alter_appstatus_name.py,sha256=bkNO_1RrCFn5VQWTNRpz5LhZyWXluLdVekPfDGEHFB8,375
193
+ pulpcore/app/migrations/0142_task_result.py,sha256=aoq81R1-mPylVQr7pQy5Bf2Yfz5ssjDqmSXUjv2rPHg,514
193
194
  pulpcore/app/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
195
  pulpcore/app/models/__init__.py,sha256=P_2UnLmtQYbASWrm8elO2Zm_od-LXVqQKnjCwYFlZW0,3552
195
196
  pulpcore/app/models/access_policy.py,sha256=o4L41RGoZ5UMmh5UeeenmadD5MJgShguphgd4eAVxQA,6071
@@ -210,7 +211,7 @@ pulpcore/app/models/repository.py,sha256=SIc21Gex6okxI7OCfHEGIpXpGlypG3z9IgMt5-m
210
211
  pulpcore/app/models/role.py,sha256=dZklNd2VeAw4cT6dyJ7SyTBt9sZvdqakY86wXGAY3vU,3287
211
212
  pulpcore/app/models/status.py,sha256=WniovQQFdlR0TN-XWd_0FnBRiwzKxDyODyD-5VUgXjo,8290
212
213
  pulpcore/app/models/storage.py,sha256=2b-DQWaO31NqjV6FiISALegND-sQZAU7BVAsduUvm3o,6780
213
- pulpcore/app/models/task.py,sha256=fHubp1YO6CjSxfXVtgdZsQyn7NJ7apBHKz6-YEqnuDM,15653
214
+ pulpcore/app/models/task.py,sha256=hYjZrkZK0CURXt53GSsmkfnWs40hoN3xGQ_nicavrzc,16394
214
215
  pulpcore/app/models/upload.py,sha256=3njXT2rrVJwBjEDegvqcLD9_7cPnnl974lhbAhikEp8,3004
215
216
  pulpcore/app/models/vulnerability_report.py,sha256=DDAUjDaW3Kn9KPBkBl94u4EuQy8UIu5wKbmE5kMkhWE,1238
216
217
  pulpcore/app/protobuf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -234,13 +235,13 @@ pulpcore/app/serializers/repair.py,sha256=uKrxTnhoarxyyGCixPRn9pmG19gRRVUTM7nPwC
234
235
  pulpcore/app/serializers/replica.py,sha256=E3jwn1vfBqT4Y4s9pWsTrUEJKPO9pO0q2ZmwcpIDVh4,4044
235
236
  pulpcore/app/serializers/repository.py,sha256=BNv0yX1JJs57VcMdzjU5rthRMcm1KB93Seqp6jve2i8,20468
236
237
  pulpcore/app/serializers/status.py,sha256=RRlymRv_CrfCog3xIZUY86L03MHButvsJu8xmzdoreY,4245
237
- pulpcore/app/serializers/task.py,sha256=m4BpydbxkC7isumXsYnfW07h6ApQn0VPdS7oXERGgTk,8973
238
+ pulpcore/app/serializers/task.py,sha256=FmYJDwKOkOsCUoBWTMgPrBEwqZQX0KreDR0lgX4aC-M,9110
238
239
  pulpcore/app/serializers/upload.py,sha256=4r6iBegbYHmgFYjBYPcqB8J7eSxXgY4ukayMxJZNh_M,2402
239
240
  pulpcore/app/serializers/user.py,sha256=QBEnUCfq2my3Lq_pohj7hphDE8wqU6g6fnYuEXl8VtI,18413
240
241
  pulpcore/app/serializers/vulnerability_report.py,sha256=N7geQkTDZ7_SCipo6Q4LGBInwuGy8-tGIpwGIPWimm4,787
241
242
  pulpcore/app/tasks/__init__.py,sha256=J8S3QDCIc8ONYPLVmp7tSLEfQZbHjouvpYBhZHYYV0o,625
242
243
  pulpcore/app/tasks/analytics.py,sha256=taQqEJ9RROIp77uSHA9S32MNlpxkI8admexMcGnHj3I,4720
243
- pulpcore/app/tasks/base.py,sha256=4I88Bn5SttqEvvVlNJmIwkPv2IWe7OhpM-kbQiQ9T_U,5929
244
+ pulpcore/app/tasks/base.py,sha256=IlC8-StBagiWFy0quaLqPYCtS8kajAA4Bv8DFUE67nk,6175
244
245
  pulpcore/app/tasks/export.py,sha256=dRg-KcnM7HumXUx8mjgJ-EVMcz2RbzSOPmMkzVtJEnI,19320
245
246
  pulpcore/app/tasks/importer.py,sha256=KW5THJhcAYlUveL8lV-2GOUyN7RCWluHLWSiMJYpH0Q,23254
246
247
  pulpcore/app/tasks/migrate.py,sha256=wCjGskoF-XWzbINEyC_crgcigFZlC8EHqZTbjkLQykg,2452
@@ -323,8 +324,8 @@ pulpcore/plugin/cache/__init__.py,sha256=0P1OqLmYxJdAaxhND6flNZzYa-korgIrzS1eOiT
323
324
  pulpcore/plugin/download/__init__.py,sha256=XRrHVz5_QfxSixHr15b4Cni0Z-D3xiRITqiSeGnkwo8,137
324
325
  pulpcore/plugin/models/__init__.py,sha256=jY0kg1KB15WdD_nzX_8Nz9Gms-HLwIdwzMTjToa7IbQ,1948
325
326
  pulpcore/plugin/models/role.py,sha256=ZwWt9eQOfjjk2rcGKuXuENoOPldTjqLI9LLXKSBXsEQ,244
326
- pulpcore/plugin/serializers/__init__.py,sha256=YsfNZ1CqgbZZZrhTDI_GxMB72d3LQUVSJ-Aj5Mx3EP4,2630
327
- pulpcore/plugin/serializers/content.py,sha256=l2VKp5qLstI8InuisjxISTo_YimbxSorDfWncx5VY0U,9072
327
+ pulpcore/plugin/serializers/__init__.py,sha256=rtEQYlxILhjgmQCDDoK2V3jH5sT3tmncmacjvVzIxyo,2698
328
+ pulpcore/plugin/serializers/content.py,sha256=JSSrMZstG1XkNqJ-idq-y3Xt7RxTqrBpMcpw15PHx-k,9086
328
329
  pulpcore/plugin/stages/__init__.py,sha256=ZSMmgOKoPjEfg1VhNpldJf2bUvqezCG4gj_FBkJ4CpU,466
329
330
  pulpcore/plugin/stages/api.py,sha256=6iet7K6H5c9vk5lS9oE3gCyLlqdDKoqPMfF-lNIA-GQ,8435
330
331
  pulpcore/plugin/stages/artifact_stages.py,sha256=yKJQc06YevDiWGDsQDuWXzL0juj49UZ_wrE718Bd4CI,22870
@@ -338,8 +339,8 @@ pulpcore/tasking/_util.py,sha256=fPW4k1nUa_NZ0ywy_A15Fuiejo5stY58abPbZTXw5t8,990
338
339
  pulpcore/tasking/entrypoint.py,sha256=eAypZD4ORoNOrmBeMdbwO9p6GSQ59bMvZ3TrbnE0czw,1305
339
340
  pulpcore/tasking/kafka.py,sha256=76z4DzeXM1WL5uu1HlKnduWeLO3-b-czvGBXdWR6054,3845
340
341
  pulpcore/tasking/storage.py,sha256=zQkwlpC_FDQtmZGZ8vKwHqxvD6CLO_gAS4Q7wijZE-k,3106
341
- pulpcore/tasking/tasks.py,sha256=CTlWLCmxP5-HZjo5_KLYIJQu-VKJnzQ5cyL7IFNRMWw,12944
342
- pulpcore/tasking/worker.py,sha256=n62lnZK2UFQrbLxxv1gUdkya0Z6L9uYW8RQ2HHE1QHM,27190
342
+ pulpcore/tasking/tasks.py,sha256=R7ZiBg47glMZxSiXWGXFJm6eec4oIJB1EZEIZsWrdfE,12968
343
+ pulpcore/tasking/worker.py,sha256=r8Q6hVqmGrnyXFX-RnxMkZUq478lIDLnZxwyd5DeScw,27400
343
344
  pulpcore/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
344
345
  pulpcore/tests/functional/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
345
346
  pulpcore/tests/functional/content_with_coverage.py,sha256=gQK8himy32s9O9vpXdgoM6-_z2KySaXm5rTga9z0jGI,260
@@ -391,7 +392,7 @@ pulpcore/tests/functional/api/using_plugin/test_pulpimport.py,sha256=M3BWuF1Htyx
391
392
  pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py,sha256=eclRP_vWIbJl2pWyAlx_na-T5sUhlP4iQ2Ots1V1lwI,5879
392
393
  pulpcore/tests/functional/api/using_plugin/test_repair.py,sha256=SxfEC4cEm3HUgrwUV_DIXaaYsGKmO2APUAEWHQqurQ8,6849
393
394
  pulpcore/tests/functional/api/using_plugin/test_repo_versions.py,sha256=unxOqUIgHEWuDA3qOXBN0_xMXUfya0GAevJHJnrUFWk,41119
394
- pulpcore/tests/functional/api/using_plugin/test_tasks.py,sha256=wIQr2J8DD2isx_0tjbKA0pqwgJiBw83-6auNJuGavEc,7054
395
+ pulpcore/tests/functional/api/using_plugin/test_tasks.py,sha256=fJrtfnGcSpXvTkya3hweJCbrv5RzFFzDwNYQxV-BQPk,7871
395
396
  pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py,sha256=rGJP2qcDarJALSpjzEsoO-ewQ0J2kWhFvN3Y1Z9fvzA,1085
396
397
  pulpcore/tests/functional/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
397
398
  pulpcore/tests/performance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -440,9 +441,9 @@ pulpcore/tests/unit/stages/test_artifactdownloader.py,sha256=qB1ANdFmNtUnljg8fCd
440
441
  pulpcore/tests/unit/stages/test_stages.py,sha256=H1a2BQLjdZlZvcb_qULp62huZ1xy6ItTcthktVyGU0w,4735
441
442
  pulpcore/tests/unit/viewsets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
442
443
  pulpcore/tests/unit/viewsets/test_viewset_base.py,sha256=W9o3V6758bZctR6krMPPQytb0xJuF-jb4uBWTNDoD_U,4837
443
- pulpcore-3.87.0.dist-info/licenses/LICENSE,sha256=dhnHU8rJXUdAIgIjveSKAyYG_KzN5eVG-bxETIGrNW0,17988
444
- pulpcore-3.87.0.dist-info/METADATA,sha256=b93_7typl8xUkhSFLpatjHa_A375x9frLjecSz83IGE,4104
445
- pulpcore-3.87.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
446
- pulpcore-3.87.0.dist-info/entry_points.txt,sha256=OZven4wzXzQA5b5q9MpP4HUpIPPQCSvIOvkKtNInrK0,452
447
- pulpcore-3.87.0.dist-info/top_level.txt,sha256=6h-Lm3FKQSaT_nL1KSxu_hBnzKE15bcvf_BoU-ea4CI,34
448
- pulpcore-3.87.0.dist-info/RECORD,,
444
+ pulpcore-3.88.0.dist-info/licenses/LICENSE,sha256=dhnHU8rJXUdAIgIjveSKAyYG_KzN5eVG-bxETIGrNW0,17988
445
+ pulpcore-3.88.0.dist-info/METADATA,sha256=j7bAhZIZWFrsl9Qpdw5_lQbIVwKYFssAvhjN3mpCZxU,4104
446
+ pulpcore-3.88.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
447
+ pulpcore-3.88.0.dist-info/entry_points.txt,sha256=OZven4wzXzQA5b5q9MpP4HUpIPPQCSvIOvkKtNInrK0,452
448
+ pulpcore-3.88.0.dist-info/top_level.txt,sha256=6h-Lm3FKQSaT_nL1KSxu_hBnzKE15bcvf_BoU-ea4CI,34
449
+ pulpcore-3.88.0.dist-info/RECORD,,