Project

Profile

Help

Maintenance: Planio will be observing a scheduled maintenance window this Sunday, November 10, 2024 from 20:00 UTC until 21:00 UTC to perform important network maintenance in our primary data center. Your Planio account will be unavailable for a few minutes during this maintenance window.

Issue #5211

closed

A list is not accepted for Accept header in docker registry api

Added by jomitsch@redhat.com over 5 years ago. Updated over 4 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Sprint/Milestone:
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Katello
Sprint:
Sprint 57
Quarter:

Description

When calling a registry API endpoint like /v2/myimage/manifests/latest, if you send an Accept header with a list, this error occurs:

Aug 01 20:24:56 pulp3-again.jomitsch.example.com gunicorn[1070]: pulp: pulp_docker.app.registry:WARNING: The requested tag `latest` is of type application/vnd.docker.distribution.manifest.v2+json, but the client only accepts ['application/json, application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.docker.distribution.manifest.v1+prettyjws'].

The Accept header is something like `Accept: application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.docker.distribution.manifest.v1+prettyjws, application/json`

If my python isn't too rusty, it looks like "value" needs to be split on the comma here (assuming the header is correct) https://github.com/pulp/pulp_docker/blob/master/pulp_docker/app/registry.py#L47

I haven't been able to reproduce with curl yet, but here are our headers printed out in ruby

{"VERSION"=>"HTTP/1.1", "HOST"=>"pulp3-again.jomitsch.example.com", "USER-AGENT"=>"docker/1.13.1 go/go1.10.3 kernel/3.10.0-862.2.3.el7.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/1.13.1 \\(linux\\))", "ACCEPT"=>"application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.docker.distribution.manifest.v1+prettyjws, application/json", "AUTHORIZATION"=>"Bearer $2a$09$1b6453892473a467d0737ufZsuql4iq8AdEzTB.1OBc.uiUPfa71m", "ACCEPT-ENCODING"=>"gzip", "X-FORWARDED-PROTO"=>"https", "VIA"=>"1.1 pulp3-again.jomitsch.example.com", "X-FORWARDED-FOR"=>"192.168.121.121", "X-FORWARDED-HOST"=>"pulp3-again.jomitsch.example.com", "X-FORWARDED-SERVER"=>"pulp3-again.jomitsch.example.com", "CONNECTION"=>"Keep-Alive"}

Versions:
using the latest pulp3 code from git in the Katello pulp3 dev env

Also available in: Atom PDF