From e2c0e438bc7fdb8f83f3e0a4457f3bd1460ef2fd Mon Sep 17 00:00:00 2001 From: Tanushree Sharma Date: Thu, 23 May 2019 09:35:24 -0400 Subject: [PATCH 01/18] changed local path --- docker/dockercli/dockercli.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/dockercli/dockercli.go b/docker/dockercli/dockercli.go index d8d5f98..f9f4d1f 100644 --- a/docker/dockercli/dockercli.go +++ b/docker/dockercli/dockercli.go @@ -72,7 +72,7 @@ func saveImage(imageName string, fo *os.File) error { } func save(imageName string) (distribution.Manifest, error) { - path := config.TmpLocal() + "/" + strings.Split(imageName, ":")[0] + "/blobs" + path := config.TmpLocal() + "/docker.io/library/" + strings.Split(imageName, ":")[0] + "/blobs" if _, err := os.Stat(path); os.IsExist(err) { err := os.RemoveAll(path) From a84bbbc3229118ec1f26054b86ca2a3fa585835b Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Fri, 24 May 2019 17:55:17 -0400 Subject: [PATCH 02/18] Update dockercli.go --- docker/dockercli/dockercli.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/dockercli/dockercli.go b/docker/dockercli/dockercli.go index f9f4d1f..d8d5f98 100644 --- a/docker/dockercli/dockercli.go +++ b/docker/dockercli/dockercli.go @@ -72,7 +72,7 @@ func saveImage(imageName string, fo *os.File) error { } func save(imageName string) (distribution.Manifest, error) { - path := config.TmpLocal() + "/docker.io/library/" + strings.Split(imageName, ":")[0] + "/blobs" + path := config.TmpLocal() + "/" + strings.Split(imageName, ":")[0] + "/blobs" if _, err := os.Stat(path); os.IsExist(err) { err := os.RemoveAll(path) From 2fc91891f0d67e78844516b0a3a7cbefac71e5fa Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Mon, 27 May 2019 08:41:03 -0400 Subject: [PATCH 03/18] Update layering.go changed local path --- clair/layering.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clair/layering.go b/clair/layering.go index 358df0e..d4a5cd4 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -61,7 +61,8 @@ func (layers *layering) pushAll() error { //FIXME Update to TLS if config.IsLocal { - local := layers.hURL + "/" + layers.image.Hostname() + // local := layers.hURL + "/" + layers.image.Hostname() + local := layers.hURL + "" + layers.image.Hostname() payload.Layer.Path = strings.Replace(payload.Layer.Path, u.String(), local, 1) payload.Layer.Path += "/layer.tar" } From 657b337e3c3cae9a8376ed0dac3a2e037248d556 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Mon, 27 May 2019 13:06:51 -0400 Subject: [PATCH 04/18] Update layering.go --- clair/layering.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clair/layering.go b/clair/layering.go index d4a5cd4..c2c735c 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -61,8 +61,8 @@ func (layers *layering) pushAll() error { //FIXME Update to TLS if config.IsLocal { - // local := layers.hURL + "/" + layers.image.Hostname() - local := layers.hURL + "" + layers.image.Hostname() + local := layers.hURL + "/" + layers.image.Hostname() + //local := layers.hURL + "" + layers.image.Hostname() payload.Layer.Path = strings.Replace(payload.Layer.Path, u.String(), local, 1) payload.Layer.Path += "/layer.tar" } From b5a01604e87bc0e286d6e8fa882d785a550aaabf Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Mon, 27 May 2019 15:11:14 -0400 Subject: [PATCH 05/18] added print statement for debugging --- docker/dockercli/dockercli.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docker/dockercli/dockercli.go b/docker/dockercli/dockercli.go index d8d5f98..9e8f023 100644 --- a/docker/dockercli/dockercli.go +++ b/docker/dockercli/dockercli.go @@ -27,7 +27,7 @@ var log = capnslog.NewPackageLogger("github.com/jgsqware/clairctl", "dockercli") //GetLocalManifest retrieve manifest for local image func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, distribution.Manifest, error) { - + fmt.Printf("1--get local manifest image name is %s\n", imageName) n, err := reference.ParseNamed(imageName) if err != nil { return nil, nil, err @@ -35,8 +35,11 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, var image reference.NamedTagged if reference.IsNameOnly(n) { image = reference.WithDefaultTag(n).(reference.NamedTagged) + fmt.Printf("2--ref was true, %s image\n", image) } else { image = n.(reference.NamedTagged) + fmt.Printf("2--ref was false, %s image\n", image) + } if err != nil { return nil, nil, err @@ -44,16 +47,25 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, var manifest distribution.Manifest if withExport { manifest, err = save(image.Name() + ":" + image.Tag()) + fmt.Printf("type of manifest is %T\n", manifest) + fmt.Printf("5--withExport, manifest equals %s\n", manifest) + fmt.Printf("6--err equals %s\n", err) } else { manifest, err = historyFromCommand(image.Name() + ":" + image.Tag()) + fmt.Printf("!withExport, manifest equals %s\n", manifest) + } if err != nil { + fmt.Printf("error not nil\n") return nil, schema1.SignedManifest{}, err } m := manifest.(schema1.SignedManifest) m.Name = image.Name() m.Tag = image.Tag() + fmt.Printf("7--image is %s\n", image) + fmt.Printf("8--manifest is %s\n", m) + return image, m, err } @@ -72,8 +84,9 @@ func saveImage(imageName string, fo *os.File) error { } func save(imageName string) (distribution.Manifest, error) { + fmt.Printf("3--image name is %s\n", imageName) path := config.TmpLocal() + "/" + strings.Split(imageName, ":")[0] + "/blobs" - + fmt.Printf("4--path is %s\n", path) if _, err := os.Stat(path); os.IsExist(err) { err := os.RemoveAll(path) if err != nil { @@ -92,6 +105,7 @@ func save(imageName string) (distribution.Manifest, error) { cli, err := client.NewEnvClient() if err != nil { panic(err) + fmt.Printf("err is %s\n", err) } img, err := cli.ImageSave(context.Background(), []string{imageName}) From cc9f6808d3db88a25f3cfdefac9e7d5831f3aaf1 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Mon, 27 May 2019 15:14:23 -0400 Subject: [PATCH 06/18] added print statements for debugging --- server/server.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/server.go b/server/server.go index c4346f1..52b4ead 100644 --- a/server/server.go +++ b/server/server.go @@ -58,7 +58,8 @@ func restrictedFileServer(path string) http.Handler { if _, err := os.Stat(path); os.IsNotExist(err) { os.Mkdir(path, 0777) } - + fmt.Printf("#################out") + fmt.Printf("path is %s\n", path) fc := func(w http.ResponseWriter, r *http.Request) { http.FileServer(http.Dir(path)).ServeHTTP(w, r) } From 2f0270c6128bd955f109c7636700a9d3f5706017 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 11:49:29 -0400 Subject: [PATCH 07/18] Change local url --- clair/layering.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clair/layering.go b/clair/layering.go index c2c735c..460efa0 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -61,8 +61,8 @@ func (layers *layering) pushAll() error { //FIXME Update to TLS if config.IsLocal { - local := layers.hURL + "/" + layers.image.Hostname() - //local := layers.hURL + "" + layers.image.Hostname() + //local := layers.hURL + "/" + layers.image.Hostname() + local := layers.hURL payload.Layer.Path = strings.Replace(payload.Layer.Path, u.String(), local, 1) payload.Layer.Path += "/layer.tar" } From 026dbedc2f73515d472a2788b0b8381e470085b6 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 11:56:49 -0400 Subject: [PATCH 08/18] Update dockercli.go --- docker/dockercli/dockercli.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/docker/dockercli/dockercli.go b/docker/dockercli/dockercli.go index 9e8f023..55a3176 100644 --- a/docker/dockercli/dockercli.go +++ b/docker/dockercli/dockercli.go @@ -5,7 +5,6 @@ import ( "compress/gzip" "context" "encoding/json" - "fmt" "io" "os" "strings" @@ -27,7 +26,6 @@ var log = capnslog.NewPackageLogger("github.com/jgsqware/clairctl", "dockercli") //GetLocalManifest retrieve manifest for local image func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, distribution.Manifest, error) { - fmt.Printf("1--get local manifest image name is %s\n", imageName) n, err := reference.ParseNamed(imageName) if err != nil { return nil, nil, err @@ -35,10 +33,8 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, var image reference.NamedTagged if reference.IsNameOnly(n) { image = reference.WithDefaultTag(n).(reference.NamedTagged) - fmt.Printf("2--ref was true, %s image\n", image) } else { image = n.(reference.NamedTagged) - fmt.Printf("2--ref was false, %s image\n", image) } if err != nil { @@ -47,24 +43,17 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, var manifest distribution.Manifest if withExport { manifest, err = save(image.Name() + ":" + image.Tag()) - fmt.Printf("type of manifest is %T\n", manifest) - fmt.Printf("5--withExport, manifest equals %s\n", manifest) - fmt.Printf("6--err equals %s\n", err) } else { manifest, err = historyFromCommand(image.Name() + ":" + image.Tag()) - fmt.Printf("!withExport, manifest equals %s\n", manifest) } if err != nil { - fmt.Printf("error not nil\n") return nil, schema1.SignedManifest{}, err } m := manifest.(schema1.SignedManifest) m.Name = image.Name() m.Tag = image.Tag() - fmt.Printf("7--image is %s\n", image) - fmt.Printf("8--manifest is %s\n", m) return image, m, err } @@ -84,9 +73,7 @@ func saveImage(imageName string, fo *os.File) error { } func save(imageName string) (distribution.Manifest, error) { - fmt.Printf("3--image name is %s\n", imageName) path := config.TmpLocal() + "/" + strings.Split(imageName, ":")[0] + "/blobs" - fmt.Printf("4--path is %s\n", path) if _, err := os.Stat(path); os.IsExist(err) { err := os.RemoveAll(path) if err != nil { @@ -139,7 +126,6 @@ func save(imageName string) (distribution.Manifest, error) { if n == 0 { break } - // write a chunk if _, err := fo.Write(buf[:n]); err != nil { log.Error(err) From 61230c1c34b603074017651b99346a799ead9088 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 12:01:39 -0400 Subject: [PATCH 09/18] Update dockercli.go --- docker/dockercli/dockercli.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/dockercli/dockercli.go b/docker/dockercli/dockercli.go index 55a3176..3b84600 100644 --- a/docker/dockercli/dockercli.go +++ b/docker/dockercli/dockercli.go @@ -5,6 +5,7 @@ import ( "compress/gzip" "context" "encoding/json" + "fmt" "io" "os" "strings" @@ -45,7 +46,6 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, manifest, err = save(image.Name() + ":" + image.Tag()) } else { manifest, err = historyFromCommand(image.Name() + ":" + image.Tag()) - } if err != nil { @@ -92,7 +92,6 @@ func save(imageName string) (distribution.Manifest, error) { cli, err := client.NewEnvClient() if err != nil { panic(err) - fmt.Printf("err is %s\n", err) } img, err := cli.ImageSave(context.Background(), []string{imageName}) From 0e3d17e41cffdfa233423e27e121a7d3479a7f77 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 12:02:27 -0400 Subject: [PATCH 10/18] Update server.go --- server/server.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/server.go b/server/server.go index 52b4ead..f2b8815 100644 --- a/server/server.go +++ b/server/server.go @@ -58,8 +58,6 @@ func restrictedFileServer(path string) http.Handler { if _, err := os.Stat(path); os.IsNotExist(err) { os.Mkdir(path, 0777) } - fmt.Printf("#################out") - fmt.Printf("path is %s\n", path) fc := func(w http.ResponseWriter, r *http.Request) { http.FileServer(http.Dir(path)).ServeHTTP(w, r) } From 6d02fa5a72ecb90fe2fe88e3d24d708bbe95c9ed Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 13:27:26 -0400 Subject: [PATCH 11/18] Added print statements --- clair/layering.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clair/layering.go b/clair/layering.go index 460efa0..62095bb 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -63,6 +63,10 @@ func (layers *layering) pushAll() error { if config.IsLocal { //local := layers.hURL + "/" + layers.image.Hostname() local := layers.hURL + fmt.Printf("!!!!!!!!!local url is %s\n", local) + fmt.Printf("image hostname is %s\n", layers.image.Hostname()) + fmt.Printf("local url without layers.image.Hostname is %s\n", layers.hURL) + payload.Layer.Path = strings.Replace(payload.Layer.Path, u.String(), local, 1) payload.Layer.Path += "/layer.tar" } @@ -70,6 +74,7 @@ func (layers *layering) pushAll() error { if err := pushLayer(payload); err != nil { log.Infof("adding layer %d/%d [%v]: %v", index+1, layerCount, lUID, err) if err != ErrUnanalizedLayer { + fmt.Printf("ERROR ADDING LAYER\n") return err } layers.parentID = "" From 58ab61a3a6c797bbe273d9092ea149eb41c54f11 Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 13:35:55 -0400 Subject: [PATCH 12/18] Added print statemetnts --- clair/push.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clair/push.go b/clair/push.go index 537c495..b750555 100644 --- a/clair/push.go +++ b/clair/push.go @@ -63,6 +63,7 @@ func pushLayer(layer v1.LayerEnvelope) error { } lJSON, err := json.Marshal(layer) + fmt.Printf("lJSON is %s\n", lJSON) if err != nil { return fmt.Errorf("marshalling layer: %v", err) } @@ -124,7 +125,7 @@ func blobsURI(registry string, name string, digest string) string { } func insertRegistryMapping(layerDigest string, registryURI string) { - + fmt.Printf("lJSON is %s\n", lJSON) hostURL, _ := dockerdist.GetPushURL(registryURI) log.Debugf("Saving %s[%s]", layerDigest, hostURL.String()) registryMapping[layerDigest] = hostURL.String() From 50faac5197a23a60e37df72cfdcf10f4721a3c3c Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 13:39:39 -0400 Subject: [PATCH 13/18] Added print statements --- clair/push.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clair/push.go b/clair/push.go index b750555..360d044 100644 --- a/clair/push.go +++ b/clair/push.go @@ -125,7 +125,7 @@ func blobsURI(registry string, name string, digest string) string { } func insertRegistryMapping(layerDigest string, registryURI string) { - fmt.Printf("lJSON is %s\n", lJSON) + fmt.Printf("****REIGSTRY URI IS %s\n", registryURI) hostURL, _ := dockerdist.GetPushURL(registryURI) log.Debugf("Saving %s[%s]", layerDigest, hostURL.String()) registryMapping[layerDigest] = hostURL.String() From c442b25387ed05d3004aa3bc0db2a41acb96998f Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 15:26:26 -0400 Subject: [PATCH 14/18] Update push.go --- clair/push.go | 1 - 1 file changed, 1 deletion(-) diff --git a/clair/push.go b/clair/push.go index 360d044..1d4f55a 100644 --- a/clair/push.go +++ b/clair/push.go @@ -63,7 +63,6 @@ func pushLayer(layer v1.LayerEnvelope) error { } lJSON, err := json.Marshal(layer) - fmt.Printf("lJSON is %s\n", lJSON) if err != nil { return fmt.Errorf("marshalling layer: %v", err) } From 5b9af214457e20e2ab5282e54e90d8ce9f6d360e Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Tue, 28 May 2019 15:27:32 -0400 Subject: [PATCH 15/18] Update layering.go --- clair/layering.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/clair/layering.go b/clair/layering.go index 62095bb..460efa0 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -63,10 +63,6 @@ func (layers *layering) pushAll() error { if config.IsLocal { //local := layers.hURL + "/" + layers.image.Hostname() local := layers.hURL - fmt.Printf("!!!!!!!!!local url is %s\n", local) - fmt.Printf("image hostname is %s\n", layers.image.Hostname()) - fmt.Printf("local url without layers.image.Hostname is %s\n", layers.hURL) - payload.Layer.Path = strings.Replace(payload.Layer.Path, u.String(), local, 1) payload.Layer.Path += "/layer.tar" } @@ -74,7 +70,6 @@ func (layers *layering) pushAll() error { if err := pushLayer(payload); err != nil { log.Infof("adding layer %d/%d [%v]: %v", index+1, layerCount, lUID, err) if err != ErrUnanalizedLayer { - fmt.Printf("ERROR ADDING LAYER\n") return err } layers.parentID = "" From e92e0809bb69c0aaeac969b75c6d6b53c6fce2ff Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Wed, 29 May 2019 11:58:04 -0400 Subject: [PATCH 16/18] Update layering.go --- clair/layering.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clair/layering.go b/clair/layering.go index 460efa0..3000414 100644 --- a/clair/layering.go +++ b/clair/layering.go @@ -59,9 +59,9 @@ func (layers *layering) pushAll() error { Format: "Docker", }} - //FIXME Update to TLS if config.IsLocal { - //local := layers.hURL + "/" + layers.image.Hostname() + // Fixed local path issue that arose when docker image provided was tagged + // Deleted portion of local URL that was adding '/docker.io/'to the path local := layers.hURL payload.Layer.Path = strings.Replace(payload.Layer.Path, u.String(), local, 1) payload.Layer.Path += "/layer.tar" From 1a3ae5f3e813cab68e823b09b18b921ce148fc1d Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Wed, 29 May 2019 11:59:12 -0400 Subject: [PATCH 17/18] Update push.go --- clair/push.go | 1 - 1 file changed, 1 deletion(-) diff --git a/clair/push.go b/clair/push.go index 1d4f55a..6db1807 100644 --- a/clair/push.go +++ b/clair/push.go @@ -124,7 +124,6 @@ func blobsURI(registry string, name string, digest string) string { } func insertRegistryMapping(layerDigest string, registryURI string) { - fmt.Printf("****REIGSTRY URI IS %s\n", registryURI) hostURL, _ := dockerdist.GetPushURL(registryURI) log.Debugf("Saving %s[%s]", layerDigest, hostURL.String()) registryMapping[layerDigest] = hostURL.String() From d735344b72531b8543fe8cc33b8b8c4b423677fa Mon Sep 17 00:00:00 2001 From: tanushree-agilicus <50339357+tanushree-agilicus@users.noreply.github.com> Date: Wed, 29 May 2019 12:09:04 -0400 Subject: [PATCH 18/18] Update dockercli.go --- docker/dockercli/dockercli.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docker/dockercli/dockercli.go b/docker/dockercli/dockercli.go index 3b84600..c496e95 100644 --- a/docker/dockercli/dockercli.go +++ b/docker/dockercli/dockercli.go @@ -10,7 +10,7 @@ import ( "os" "strings" "syscall" - + "github.com/artyom/untar" "github.com/coreos/pkg/capnslog" "github.com/docker/distribution" @@ -27,6 +27,7 @@ var log = capnslog.NewPackageLogger("github.com/jgsqware/clairctl", "dockercli") //GetLocalManifest retrieve manifest for local image func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, distribution.Manifest, error) { + n, err := reference.ParseNamed(imageName) if err != nil { return nil, nil, err @@ -35,8 +36,7 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, if reference.IsNameOnly(n) { image = reference.WithDefaultTag(n).(reference.NamedTagged) } else { - image = n.(reference.NamedTagged) - + image = n.(reference.NamedTagged) } if err != nil { return nil, nil, err @@ -54,7 +54,6 @@ func GetLocalManifest(imageName string, withExport bool) (reference.NamedTagged, m := manifest.(schema1.SignedManifest) m.Name = image.Name() m.Tag = image.Tag() - return image, m, err } @@ -74,6 +73,7 @@ func saveImage(imageName string, fo *os.File) error { func save(imageName string) (distribution.Manifest, error) { path := config.TmpLocal() + "/" + strings.Split(imageName, ":")[0] + "/blobs" + if _, err := os.Stat(path); os.IsExist(err) { err := os.RemoveAll(path) if err != nil { @@ -125,6 +125,7 @@ func save(imageName string) (distribution.Manifest, error) { if n == 0 { break } + // write a chunk if _, err := fo.Write(buf[:n]); err != nil { log.Error(err)