Actions
Issue #5210
closedpulp task status and version details returns 'serialized' ruby hashes in ruby bindings
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
API Bindings, Katello
Sprint:
Sprint 57
Quarter:
Description
When fetching a task with the current bindings (), we get something like this:
{
"_href":"/pulp/api/v3/tasks/3ba12450-d2dc-4fa9-9366-7d85990de332/",
"_created":"2019-08-01T19:12:06.762+00:00",
"state":"failed",
"name":"pulp_file.app.tasks.synchronizing.synchronize",
"started_at":"2019-08-01T19:12:06.863+00:00",
"finished_at":"2019-08-01T19:12:07.083+00:00",
"non_fatal_errors":"[]",
"error":"{:code=\u003enil, :description=\u003e\"404, message='Not Found'\", :traceback=\u003e\" File \\\"/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py\\\", line 822, in perform_job\\n rv = job.perform()\\n File \\\"/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py\\\", line 605, in perform\\n self._result = self._execute()\\n File \\\"/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py\\\", line 611, in _execute\\n return self.func(*self.args, **self.kwargs)\\n File \\\"/usr/local/lib/pulp/src/pulp-file/pulp_file/app/tasks/synchronizing.py\\\", line 45, in synchronize\\n dv.create()\\n File \\\"/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/declarative_version.py\\\", line 169, in create\\n loop.run_until_complete(pipeline)\\n File \\\"/usr/lib64/python3.6/asyncio/base_events.py\\\", line 484, in run_until_complete\\n return future.result()\\n File \\\"/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/api.py\\\", line 209, in create_pipeline\\n await asyncio.gather(*futures)\\n File \\\"/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/api.py\\\", line 43, in __call__\\n await self.run()\\n File \\\"/usr/local/lib/pulp/src/pulp-file/pulp_file/app/tasks/synchronizing.py\\\", line 73, in run\\n result = await downloader.run()\\n File \\\"/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/download/base.py\\\", line 212, in run\\n return await self._run(extra_data=extra_data)\\n File \\\"/usr/local/lib/pulp/lib64/python3.6/site-packages/backoff/_async.py\\\", line 131, in retry\\n ret = await target(*args, **kwargs)\\n File \\\"/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/download/http.py\\\", line 183, in _run\\n response.raise_for_status()\\n File \\\"/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client_reqrep.py\\\", line 942, in raise_for_status\\n headers=self.headers)\\n\"}",
"worker":"/pulp/api/v3/workers/5e3c86c3-8975-40ee-a8a0-e320ee0b9791/",
"spawned_tasks":[
],
"progress_reports":[
{
"message":"Downloading Metadata",
"state":"failed",
"done":0
},
{
"message":"Downloading Artifacts",
"state":"canceled",
"done":0
},
{
"message":"Associating Content",
"state":"canceled",
"done":0
}
],
"created_resources":[
]
}
Notice that 'error' is a ruby hash that has had 'to_string' called on it, instead of serialized as json.
We see the same thing when fetching a repository version, notice the content summary:
v = '/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/'
puts PulpcoreClient::RepositoriesVersionsApi.new(PulpcoreClient::ApiClient.new(SmartProxy.first.pulp3_configuration(PulpcoreClient::Configuration))).read(v).to_json
{
"_href":"/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/",
"_created":"2019-07-26T15:00:32.181+00:00",
"number":2,
"content_summary":"{:added=\u003e{:\"docker.manifest\"=\u003e{:count=\u003e1, :href=\u003e\"/pulp/api/v3/content/docker/manifests/?repository_version_added=/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/\"}, :\"docker.manifest-blob\"=\u003e{:count=\u003e4, :href=\u003e\"/pulp/api/v3/content/docker/blobs/?repository_version_added=/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/\"}, :\"docker.manifest-tag\"=\u003e{:count=\u003e1, :href=\u003e\"/pulp/api/v3/content/docker/manifest-tags/?repository_version_added=/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/\"}}, :removed=\u003e{}, :present=\u003e{:\"docker.manifest\"=\u003e{:count=\u003e1, :href=\u003e\"/pulp/api/v3/content/docker/manifests/?repository_version=/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/\"}, :\"docker.manifest-blob\"=\u003e{:count=\u003e4, :href=\u003e\"/pulp/api/v3/content/docker/blobs/?repository_version=/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/\"}, :\"docker.manifest-tag\"=\u003e{:count=\u003e1, :href=\u003e\"/pulp/api/v3/content/docker/manifest-tags/?repository_version=/pulp/api/v3/repositories/de0f6d94-d892-46c2-aa85-996728061692/versions/2/\"}}}"
Actions
defining ContentSummarySerializer
re #5210