github.com/rogpeppe/juju@v0.0.0-20140613142852-6337964b789e/cmd/juju/removeuser.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package main
     5  
     6  import (
     7  	"errors"
     8  
     9  	"github.com/juju/cmd"
    10  
    11  	"github.com/juju/juju/cmd/envcmd"
    12  	"github.com/juju/juju/juju"
    13  )
    14  
    15  const removeUserDoc = `
    16  Remove users from an existing environment
    17  
    18  Examples:
    19    juju remove-user foobar
    20  `
    21  
    22  type RemoveUserCommand struct {
    23  	envcmd.EnvCommandBase
    24  	User string
    25  }
    26  
    27  func (c *RemoveUserCommand) Info() *cmd.Info {
    28  	return &cmd.Info{
    29  		Name:    "remove-user",
    30  		Args:    "<username>",
    31  		Purpose: "removes a user",
    32  		Doc:     removeUserDoc,
    33  	}
    34  }
    35  
    36  func (c *RemoveUserCommand) Init(args []string) error {
    37  	if len(args) == 0 {
    38  		return errors.New("no username supplied")
    39  	}
    40  	c.User = args[0]
    41  
    42  	return cmd.CheckEmpty(args[1:])
    43  }
    44  
    45  func (c *RemoveUserCommand) Run(_ *cmd.Context) error {
    46  	client, err := juju.NewUserManagerClient(c.EnvName)
    47  	if err != nil {
    48  		return err
    49  	}
    50  	defer client.Close()
    51  	return client.RemoveUser(c.User)
    52  }