Browse Source

Add accept-permissions flag for install.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
Anusha Ragunathan 9 years ago
parent
commit
ec4857da48
1 changed files with 15 additions and 5 deletions
  1. 15 5
      api/client/plugin/install.go

+ 15 - 5
api/client/plugin/install.go

@@ -13,21 +13,31 @@ import (
 	"golang.org/x/net/context"
 	"golang.org/x/net/context"
 )
 )
 
 
+type pluginOptions struct {
+	name       string
+	grantPerms bool
+}
+
 func newInstallCommand(dockerCli *client.DockerCli) *cobra.Command {
 func newInstallCommand(dockerCli *client.DockerCli) *cobra.Command {
+	var options pluginOptions
 	cmd := &cobra.Command{
 	cmd := &cobra.Command{
 		Use:   "install",
 		Use:   "install",
 		Short: "Install a plugin",
 		Short: "Install a plugin",
 		Args:  cli.RequiresMinArgs(1), // TODO: allow for set args
 		Args:  cli.RequiresMinArgs(1), // TODO: allow for set args
 		RunE: func(cmd *cobra.Command, args []string) error {
 		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
 	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 {
 	if err != nil {
 		return err
 		return err
 	}
 	}
@@ -46,6 +56,6 @@ func runInstall(dockerCli *client.DockerCli, name string, args []string) error {
 	if err != nil {
 	if err != nil {
 		return err
 		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())
 }
 }