github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/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/juju/cmd"
    10  	"github.com/juju/juju/cmd/envcmd"
    11  	"github.com/juju/juju/juju"
    12  )
    13  
    14  const removeUserDoc = `
    15  Remove users from an existing environment
    16  
    17  Examples:
    18    juju remove-user foobar
    19  `
    20  
    21  type RemoveUserCommand struct {
    22  	envcmd.EnvCommandBase
    23  	User string
    24  }
    25  
    26  func (c *RemoveUserCommand) Info() *cmd.Info {
    27  	return &cmd.Info{
    28  		Name:    "remove-user",
    29  		Args:    "<username>",
    30  		Purpose: "removes a user",
    31  		Doc:     removeUserDoc,
    32  	}
    33  }
    34  
    35  func (c *RemoveUserCommand) Init(args []string) error {
    36  	if len(args) == 0 {
    37  		return errors.New("no username supplied")
    38  	}
    39  	c.User = args[0]
    40  
    41  	return cmd.CheckEmpty(args[1:])
    42  }
    43  
    44  func (c *RemoveUserCommand) Run(_ *cmd.Context) error {
    45  	client, err := juju.NewUserManagerClient(c.EnvName)
    46  	if err != nil {
    47  		return err
    48  	}
    49  	defer client.Close()
    50  	return client.RemoveUser(c.User)
    51  }