From 06e4bad2780e29166e6e46697e25860a4c2f4bc6 Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Sat, 2 Jan 2021 07:57:31 -0500 Subject: [PATCH] thread contexts through --- cmd/buildpack/main.go | 6 +++--- cmd/flatten/main.go | 4 ++-- cmd/kaniko/main.go | 6 +++--- cmd/mirror/main.go | 4 ++-- cmd/viz/main.go | 13 +++++++------ 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/cmd/buildpack/main.go b/cmd/buildpack/main.go index fba8319..983ff32 100644 --- a/cmd/buildpack/main.go +++ b/cmd/buildpack/main.go @@ -151,7 +151,7 @@ func (s *server) serveBuildpackManifest(w http.ResponseWriter, r *http.Request) } // Serve new image manifest. - img, err := s.getImage(image) + img, err := s.getImage(ctx, image) if err != nil { s.error.Println("ERROR:", err) serve.Error(w, err) @@ -279,7 +279,7 @@ EOF`, tok.AccessToken), return image, nil } -func (s *server) getImage(image string) (v1.Image, error) { +func (s *server) getImage(ctx context.Context, image string) (v1.Image, error) { ref, err := name.NewTag(image, name.WeakValidation) if err != nil { return nil, err @@ -288,5 +288,5 @@ func (s *server) getImage(image string) (v1.Image, error) { if err != nil { return nil, err } - return remote.Image(ref, remote.WithAuth(authn)) + return remote.Image(ref, remote.WithAuth(authn), remote.WithContext(ctx)) } diff --git a/cmd/flatten/main.go b/cmd/flatten/main.go index 3d0cca0..fecfb84 100644 --- a/cmd/flatten/main.go +++ b/cmd/flatten/main.go @@ -118,7 +118,7 @@ func (s *server) serveFlattenManifest(w http.ResponseWriter, r *http.Request) { switch d.MediaType { case types.DockerManifestList: - idx, err := remote.Index(ref) + idx, err := remote.Index(ref, remote.WithContext(ctx)) if err != nil { s.error.Printf("ERROR (remote.Index): %v", err) serve.Error(w, err) @@ -169,7 +169,7 @@ func (s *server) serveFlattenManifest(w http.ResponseWriter, r *http.Request) { } case types.DockerManifestSchema2: - img, err := remote.Image(ref) + img, err := remote.Image(ref, remote.WithContext(ctx)) if err != nil { s.error.Printf("ERROR (remote.Image): %v", err) serve.Error(w, err) diff --git a/cmd/kaniko/main.go b/cmd/kaniko/main.go index 037c367..f9998e7 100644 --- a/cmd/kaniko/main.go +++ b/cmd/kaniko/main.go @@ -145,7 +145,7 @@ func (s *server) serveKanikoManifest(w http.ResponseWriter, r *http.Request) { } // Serve new image manifest. - img, err := s.getImage(image) + img, err := s.getImage(ctx, image) if err != nil { s.error.Println("ERROR:", err) serve.Error(w, err) @@ -269,7 +269,7 @@ EOF`, tok.AccessToken), return image, nil } -func (s *server) getImage(image string) (v1.Image, error) { +func (s *server) getImage(ctx context.Context, image string) (v1.Image, error) { ref, err := name.NewTag(image, name.WeakValidation) if err != nil { return nil, err @@ -278,5 +278,5 @@ func (s *server) getImage(image string) (v1.Image, error) { if err != nil { return nil, err } - return remote.Image(ref, remote.WithAuth(authn)) + return remote.Image(ref, remote.WithAuth(authn), remote.WithContext(ctx)) } diff --git a/cmd/mirror/main.go b/cmd/mirror/main.go index 37221f0..629e0dd 100644 --- a/cmd/mirror/main.go +++ b/cmd/mirror/main.go @@ -110,7 +110,7 @@ func (s *server) serveMirrorManifest(w http.ResponseWriter, r *http.Request) { case types.DockerManifestList: // If the image is a manifest list, fetch and mirror // the image index. - idx, err := remote.Index(ref) + idx, err := remote.Index(ref, remote.WithContext(ctx)) if err != nil { s.error.Printf("ERROR (remote.Index): %v", err) serve.Error(w, err) @@ -124,7 +124,7 @@ func (s *server) serveMirrorManifest(w http.ResponseWriter, r *http.Request) { case types.DockerManifestSchema2: // If it's a simple image, fetch and mirror its // manifest. - img, err := remote.Image(ref) + img, err := remote.Image(ref, remote.WithContext(ctx)) if err != nil { s.error.Printf("ERROR (remote.Image): %v", err) serve.Error(w, err) diff --git a/cmd/viz/main.go b/cmd/viz/main.go index 58fb767..dc92e12 100644 --- a/cmd/viz/main.go +++ b/cmd/viz/main.go @@ -1,6 +1,7 @@ package main import ( + "context" "fmt" "io" "log" @@ -37,6 +38,7 @@ type server struct { } func (s *server) ServeHTTP(w http.ResponseWriter, r *http.Request) { + ctx := r.Context() s.info.Println("handler:", r.Method, r.URL) if r.Method != http.MethodPost { http.Error(w, "must be post", http.StatusMethodNotAllowed) @@ -44,14 +46,13 @@ func (s *server) ServeHTTP(w http.ResponseWriter, r *http.Request) { } r.ParseForm() - log.Println(r.Form) // TODO refs, err := images(r.FormValue("images")) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } - d, err := genDot(refs) + d, err := genDot(ctx, refs) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return @@ -86,7 +87,7 @@ func images(s string) ([]name.Reference, error) { return refs, nil } -func genDot(refs []name.Reference) (string, error) { +func genDot(ctx context.Context, refs []name.Reference) (string, error) { g := dot.NewGraph("images") g.SetType(dot.DIGRAPH) @@ -98,7 +99,7 @@ func genDot(refs []name.Reference) (string, error) { edges := map[string]bool{} for _, ref := range refs { - layers, err := getLayers(ref) + layers, err := getLayers(ctx, ref) if err != nil { return "", fmt.Errorf("Failed to get layers for %q, ignoring: %v\n", ref, err) } @@ -152,8 +153,8 @@ func short(layer v1.Descriptor) string { return fmt.Sprintf("%s\n%s", layer.Digest.String()[7:19], humanize.Bytes(uint64(layer.Size))) } -func getLayers(ref name.Reference) ([]v1.Descriptor, error) { - i, err := remote.Image(ref) +func getLayers(ctx context.Context, ref name.Reference) ([]v1.Descriptor, error) { + i, err := remote.Image(ref, remote.WithContext(ctx)) if err != nil { return nil, fmt.Errorf("remote.Image: %v", err) }