Skip to content

Commit

Permalink
Detect non-plugin content during install and error out.
Browse files Browse the repository at this point in the history
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
  • Loading branch information
anusha-ragunathan committed Jul 7, 2016
1 parent cbc4fd2 commit d32df6d
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 4 deletions.
7 changes: 7 additions & 0 deletions integration-cli/docker_cli_plugins_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,10 @@ func (s *DockerSuite) TestPluginInstallDisable(c *check.C) {
c.Assert(err, checker.IsNil)
c.Assert(out, checker.Contains, nameWithTag)
}

func (s *DockerSuite) TestPluginInstallImage(c *check.C) {
testRequires(c, DaemonIsLinux, ExperimentalDaemon)
out, _, err := dockerCmdWithError("plugin", "install", "redis")
c.Assert(err, checker.NotNil)
c.Assert(out, checker.Contains, "content is not a plugin")
}
5 changes: 4 additions & 1 deletion plugin/distribution/pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ func Pull(name string, rs registry.Service, metaheader http.Header, authConfig *
}
if !confirmedV2 {
logrus.Debugf("pull.go: !confirmedV2")
return nil, ErrUnSupportedRegistry
return nil, ErrUnsupportedRegistry
}
logrus.Debugf("Trying to pull %s from %s %s", repoInfo.Name(), endpoint.URL, endpoint.Version)
break
Expand Down Expand Up @@ -143,6 +143,9 @@ func Pull(name string, rs registry.Service, metaheader http.Header, authConfig *
logrus.Debugf("pull.go: error in json.Unmarshal(): %v", err)
return nil, err
}
if m.Config.MediaType != MediaTypeConfig {
return nil, ErrUnsupportedMediaType
}

pd := &pullData{
repository: repository,
Expand Down
2 changes: 1 addition & 1 deletion plugin/distribution/push.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func Push(name string, rs registry.Service, metaHeader http.Header, authConfig *
return "", err
}
if !confirmedV2 {
return "", ErrUnSupportedRegistry
return "", ErrUnsupportedRegistry
}
logrus.Debugf("Trying to push %s to %s %s", repoInfo.Name(), endpoint.URL, endpoint.Version)
// This means that we found an endpoint. and we are ready to push
Expand Down
7 changes: 5 additions & 2 deletions plugin/distribution/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ package distribution

import "errors"

// ErrUnSupportedRegistry indicates that the registry does not support v2 protocol
var ErrUnSupportedRegistry = errors.New("Only V2 repositories are supported for plugin distribution")
// ErrUnsupportedRegistry indicates that the registry does not support v2 protocol
var ErrUnsupportedRegistry = errors.New("only V2 repositories are supported for plugin distribution")

// ErrUnsupportedMediaType indicates we are pulling content that's not a plugin
var ErrUnsupportedMediaType = errors.New("content is not a plugin")

// Plugin related media types
const (
Expand Down

0 comments on commit d32df6d

Please sign in to comment.