mirror of
https://github.com/genuinetools/reg.git
synced 2024-05-12 09:28:32 -04:00
instead of using a bool to check for v2, just test the type of the response interface. fixes #132 (#156)
This commit is contained in:
parent
d6e3a0aa00
commit
67d1af130d
|
@ -19,7 +19,7 @@ func (r *Registry) Catalog(u string) ([]string, error) {
|
|||
r.Logf("registry.catalog url=%s", uri)
|
||||
|
||||
var response catalogResponse
|
||||
h, err := r.getJSON(uri, &response, false)
|
||||
h, err := r.getJSON(uri, &response)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ func (r *Registry) ManifestList(repository, ref string) (manifestlist.ManifestLi
|
|||
r.Logf("registry.manifests uri=%s repository=%s ref=%s", uri, repository, ref)
|
||||
|
||||
var m manifestlist.ManifestList
|
||||
if _, err := r.getJSON(uri, &m, true); err != nil {
|
||||
if _, err := r.getJSON(uri, &m); err != nil {
|
||||
r.Logf("registry.manifests response=%v", m)
|
||||
return m, err
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ func (r *Registry) ManifestV2(repository, ref string) (schema2.Manifest, error)
|
|||
r.Logf("registry.manifests uri=%s repository=%s ref=%s", uri, repository, ref)
|
||||
|
||||
var m schema2.Manifest
|
||||
if _, err := r.getJSON(uri, &m, true); err != nil {
|
||||
if _, err := r.getJSON(uri, &m); err != nil {
|
||||
r.Logf("registry.manifests response=%v", m)
|
||||
return m, err
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ func (r *Registry) ManifestV1(repository, ref string) (schema1.SignedManifest, e
|
|||
r.Logf("registry.manifests uri=%s repository=%s ref=%s", uri, repository, ref)
|
||||
|
||||
var m schema1.SignedManifest
|
||||
if _, err := r.getJSON(uri, &m, false); err != nil {
|
||||
if _, err := r.getJSON(uri, &m); err != nil {
|
||||
r.Logf("registry.manifests response=%v", m)
|
||||
return m, err
|
||||
}
|
||||
|
|
|
@ -124,14 +124,19 @@ func (r *Registry) url(pathTemplate string, args ...interface{}) string {
|
|||
return url
|
||||
}
|
||||
|
||||
func (r *Registry) getJSON(url string, response interface{}, addV2Header bool) (http.Header, error) {
|
||||
func (r *Registry) getJSON(url string, response interface{}) (http.Header, error) {
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if addV2Header {
|
||||
req.Header.Add("Accept", fmt.Sprintf("%s,%s;q=0.9", schema2.MediaTypeManifest, manifestlist.MediaTypeManifestList))
|
||||
|
||||
switch response.(type) {
|
||||
case *schema2.Manifest:
|
||||
req.Header.Add("Accept", fmt.Sprintf("%s;q=0.9", schema2.MediaTypeManifest))
|
||||
case *manifestlist.ManifestList:
|
||||
req.Header.Add("Accept", fmt.Sprintf("%s;q=0.9", manifestlist.MediaTypeManifestList))
|
||||
}
|
||||
|
||||
resp, err := r.Client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -10,7 +10,7 @@ func (r *Registry) Tags(repository string) ([]string, error) {
|
|||
r.Logf("registry.tags url=%s repository=%s", url, repository)
|
||||
|
||||
var response tagsResponse
|
||||
if _, err := r.getJSON(url, &response, false); err != nil {
|
||||
if _, err := r.getJSON(url, &response); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue