Story #8083
closedAs a user, I can specify `headers` as an option for all remote types
100%
Description
Use Cases¶
-
For RPM content, oracle linux needs headers sent for the server to respond properly. You can see this work started in these PR: https://github.com/pulp/pulpcore/pull/1041 and https://github.com/pulp/pulp_rpm/pull/1896/
-
For syncing content using Alternate Content Sources from Pulp instances in EC2, e.g. RHUI servers it also requires headers to be sent with downloads.
Solution¶
Given that there are two use cases for headers, and headers are a generic HTTP downloading concept, let's add them to Remote and have the DownloaderFactory create downloaders with them.
These headers are ultimately passed to aiohttp as a dictionary per their docs so let's store the field in DRF as a DictField. Probably defined as DictField(child=CharField())
.
That means on Remote
the new field would be:
headers = models.JsonField(null=True)
Related issues
Updated by daviddavis almost 4 years ago
- Groomed changed from No to Yes
- Sprint Candidate changed from No to Yes
Added by ThikaXer almost 4 years ago
Updated by ThikaXer almost 4 years ago
- Status changed from NEW to MODIFIED
- % Done changed from 0 to 100
Applied in changeset pulpcore|032f3361069649e1c54311d0de23c1b19aa46f2e.
Updated by pulpbot almost 4 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Updated by quba42 almost 4 years ago
- Blocks Story #7905: As a user I want to synchronise oracle ropositories via ULN added
Add headers option in aiohttp client session
Aiohttp client session now supports a headers field. Headers should be provided as a dictionary or a JSON field. Headers can be set for entire client seession or for requests.
fixes #8083