~juju-qa/ubuntu/yakkety/juju/juju-1.25.8

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/cmd/juju/cachedimages/cachedimages.go

  • Committer: Nicholas Skaggs
  • Date: 2016-12-02 17:28:37 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161202172837-jkrbdlyjcxtrii2n
Initial commit of 1.25.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2015 Canonical Ltd.
 
2
// Licensed under the AGPLv3, see LICENCE file for details.
 
3
 
 
4
package cachedimages
 
5
 
 
6
import (
 
7
        "github.com/juju/cmd"
 
8
 
 
9
        "github.com/juju/juju/api/imagemanager"
 
10
        "github.com/juju/juju/cmd/envcmd"
 
11
)
 
12
 
 
13
const cachedimagesCommandDoc = `
 
14
"juju cached-images" is used to manage the cached os images in
 
15
the Juju environment.
 
16
`
 
17
 
 
18
const cachedImagesCommandPurpose = "manage cached os images"
 
19
 
 
20
// NewSuperCommand creates the user supercommand and registers the subcommands
 
21
// that it supports.
 
22
func NewSuperCommand() cmd.Command {
 
23
        usercmd := cmd.NewSuperCommand(cmd.SuperCommandParams{
 
24
                Name:        "cached-images",
 
25
                Doc:         cachedimagesCommandDoc,
 
26
                UsagePrefix: "juju",
 
27
                Purpose:     cachedImagesCommandPurpose,
 
28
        })
 
29
        usercmd.Register(envcmd.Wrap(&DeleteCommand{}))
 
30
        usercmd.Register(envcmd.Wrap(&ListCommand{}))
 
31
        return usercmd
 
32
}
 
33
 
 
34
// CachedImagesCommandBase is a helper base structure that has a method to get the
 
35
// image manager client.
 
36
type CachedImagesCommandBase struct {
 
37
        envcmd.EnvCommandBase
 
38
}
 
39
 
 
40
// NewImagesManagerClient returns a imagemanager client for the root api endpoint
 
41
// that the environment command returns.
 
42
func (c *CachedImagesCommandBase) NewImagesManagerClient() (*imagemanager.Client, error) {
 
43
        root, err := c.NewAPIRoot()
 
44
        if err != nil {
 
45
                return nil, err
 
46
        }
 
47
        return imagemanager.NewClient(root), nil
 
48
}