From ec4857da485768db8dadda3511122d136d896dde Mon Sep 17 00:00:00 2001 From: Anusha Ragunathan Date: Wed, 15 Jun 2016 10:29:01 -0700 Subject: [PATCH] Add accept-permissions flag for install. Signed-off-by: Anusha Ragunathan --- api/client/plugin/install.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/api/client/plugin/install.go b/api/client/plugin/install.go index dd38bd27d3..4caf220504 100644 --- a/api/client/plugin/install.go +++ b/api/client/plugin/install.go @@ -13,21 +13,31 @@ import ( "golang.org/x/net/context" ) +type pluginOptions struct { + name string + grantPerms bool +} + func newInstallCommand(dockerCli *client.DockerCli) *cobra.Command { + var options pluginOptions cmd := &cobra.Command{ Use: "install", Short: "Install a plugin", Args: cli.RequiresMinArgs(1), // TODO: allow for set args RunE: func(cmd *cobra.Command, args []string) error { - return runInstall(dockerCli, args[0], args[1:]) + options.name = args[0] + return runInstall(dockerCli, options) }, } + flags := cmd.Flags() + flags.BoolVar(&options.grantPerms, "grant-permissions", true, "grant all permissions necessary to run the plugin") + return cmd } -func runInstall(dockerCli *client.DockerCli, name string, args []string) error { - named, err := reference.ParseNamed(name) // FIXME: validate +func runInstall(dockerCli *client.DockerCli, options pluginOptions) error { + named, err := reference.ParseNamed(options.name) // FIXME: validate if err != nil { return err } @@ -46,6 +56,6 @@ func runInstall(dockerCli *client.DockerCli, name string, args []string) error { if err != nil { return err } - // TODO: pass acceptAllPermissions and noEnable flag - return dockerCli.Client().PluginInstall(ctx, ref.String(), encodedAuth, false, false, dockerCli.In(), dockerCli.Out()) + // TODO: pass noEnable flag + return dockerCli.Client().PluginInstall(ctx, ref.String(), encodedAuth, options.grantPerms, false, dockerCli.In(), dockerCli.Out()) }