From b81f3f8c41795e19ee5c2339be15c78eba0943ed Mon Sep 17 00:00:00 2001 From: Antonio Murdaca Date: Thu, 21 Jan 2016 10:25:41 +0100 Subject: [PATCH] require fully qualified repo name Signed-off-by: Antonio Murdaca --- inspect.go | 28 +++++++++++++++++++++++++++- main.go | 2 +- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/inspect.go b/inspect.go index a412ed02..43c7a0aa 100644 --- a/inspect.go +++ b/inspect.go @@ -8,6 +8,7 @@ import ( "github.com/Sirupsen/logrus" "github.com/codegangsta/cli" "github.com/docker/distribution/digest" + distreference "github.com/docker/distribution/reference" "github.com/docker/docker/api" "github.com/docker/docker/image" "github.com/docker/docker/opts" @@ -54,11 +55,36 @@ type imageInspect struct { Registry string } +func validateName(name string) error { + distref, err := distreference.ParseNamed(name) + if err != nil { + return err + } + hostname, _ := distreference.SplitHostname(distref) + if hostname == "" { + return fmt.Errorf("Please use a fully qualified repository name") + } + return nil +} + func inspect(c *cli.Context) (*imageInspect, error) { - ref, err := reference.ParseNamed(c.Args().First()) + name := c.Args().First() + if err := validateName(name); err != nil { + return nil, err + } + ref, err := reference.ParseNamed(name) if err != nil { return nil, err } + // TODO(runcom) + //var showTags bool + //if reference.IsNameOnly(ref) { + //showTags = true + //logrus.Debug("Using default tag: latest") + //ref = reference.WithDefaultTag(ref) + //} + //_ = showTags + authConfig, err := getAuthConfig(c, ref) if err != nil { return nil, err diff --git a/main.go b/main.go index 39bbb2ed..ad41f799 100644 --- a/main.go +++ b/main.go @@ -11,7 +11,7 @@ import ( const ( version = "0.0.1" - usage = "inspect images" + usage = "inspect images on a registry" ) var inspectCmd = func(c *cli.Context) {