cmd

package
v0.0.0-...-4bd6544 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2016 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeployResources

func DeployResources(args DeployResourcesArgs) (ids map[string]string, err error)

DeployResources uploads the bytes for the given files to the server and creates pending resource metadata for the all resource mentioned in the metadata. It returns a map of resource name to pending resource IDs.

func FormatCharmTabular

func FormatCharmTabular(writer io.Writer, value interface{}) error

FormatCharmTabular returns a tabular summary of charm resources.

func FormatSvcTabular

func FormatSvcTabular(writer io.Writer, value interface{}) error

FormatSvcTabular returns a tabular summary of resources.

Types

type DeployClient

type DeployClient interface {
	// AddPendingResources adds pending metadata for store-based resources.
	AddPendingResources(applicationID string, chID charmstore.CharmID, csMac *macaroon.Macaroon, resources []charmresource.Resource) (ids []string, err error)

	// AddPendingResource uploads data and metadata for a pending resource for the given application.
	AddPendingResource(applicationID string, resource charmresource.Resource, filename string, r io.ReadSeeker) (id string, err error)
}

DeployClient exposes the functionality of the resources API needed for deploy.

type DeployResourcesArgs

type DeployResourcesArgs struct {
	// ApplicationID identifies the application being deployed.
	ApplicationID string

	// CharmID identifies the application's charm.
	CharmID charmstore.CharmID

	// CharmStoreMacaroon is the macaroon to use for the charm when
	// interacting with the charm store.
	CharmStoreMacaroon *macaroon.Macaroon

	// Filenames is the set of resources for which a filename
	// was provided at the command-line.
	Filenames map[string]string

	// Revisions is the set of resources for which a revision
	// was provided at the command-line.
	Revisions map[string]int

	// ResourcesMeta holds the charm metadata for each of the resources
	// that should be added/updated on the controller.
	ResourcesMeta map[string]charmresource.Meta

	// Client is the resources API client to use during deploy.
	Client DeployClient
}

DeployResourcesArgs holds the arguments to DeployResources().

type FormattedCharmResource

type FormattedCharmResource struct {
	// These fields are exported for the sake of serialization.
	Name        string `json:"name" yaml:"name"`
	Type        string `json:"type" yaml:"type"`
	Path        string `json:"path" yaml:"path"`
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	Revision    int    `json:"revision,omitempty" yaml:"revision,omitempty"`
	Fingerprint string `json:"fingerprint" yaml:"fingerprint"`
	Size        int64  `json:"size" yaml:"size"`
	Origin      string `json:"origin" yaml:"origin"`
}

FormattedCharmResource holds the formatted representation of a resource's info.

func FormatCharmResource

func FormatCharmResource(res charmresource.Resource) FormattedCharmResource

FormatCharmResource converts the resource info into a FormattedCharmResource.

type FormattedDetailResource

type FormattedDetailResource struct {
	UnitID   string               `json:"unitID" yaml:"unitID"`
	Unit     FormattedSvcResource `json:"unit" yaml:"unit"`
	Expected FormattedSvcResource `json:"expected" yaml:"expected"`
	Progress int64                `json:"progress,omitempty" yaml:"progress,omitempty"`
	// contains filtered or unexported fields
}

FormattedDetailResource is the data for a single line of tabular output for juju resources <application> --details.

func FormatDetailResource

func FormatDetailResource(tag names.UnitTag, svc, unit resource.Resource, progress int64) (FormattedDetailResource, error)

FormatDetailResource converts the arguments into a FormattedServiceResource.

type FormattedServiceDetails

type FormattedServiceDetails struct {
	Resources []FormattedDetailResource `json:"resources,omitempty" yaml:"resources,omitempty"`
	Updates   []FormattedCharmResource  `json:"updates,omitempty" yaml:"updates,omitempty"`
}

FormattedServiceDetails is the data for the tabular output for juju resources <application> --details.

func FormatServiceDetails

func FormatServiceDetails(sr resource.ServiceResources) (FormattedServiceDetails, error)

FormatServiceDetails converts a ServiceResources value into a formatted value for display on the command line.

type FormattedServiceInfo

type FormattedServiceInfo struct {
	Resources []FormattedSvcResource   `json:"resources,omitempty" yaml:"resources,omitempty"`
	Updates   []FormattedCharmResource `json:"updates,omitempty" yaml:"updates,omitempty"`
}

FormattedServiceInfo holds the formatted representation of the information about an application's resources.

type FormattedSvcResource

type FormattedSvcResource struct {
	// These fields are exported for the sake of serialization.
	ID            string    `json:"resourceid,omitempty" yaml:"resourceid,omitempty"`
	ApplicationID string    `json:"applicationId,omitempty" yaml:"applicationId,omitempty"`
	Name          string    `json:"name" yaml:"name"`
	Type          string    `json:"type" yaml:"type"`
	Path          string    `json:"path" yaml:"path"`
	Description   string    `json:"description,omitempty" yaml:"description,omitempty"`
	Revision      int       `json:"revision,omitempty" yaml:"revision,omitempty"`
	Fingerprint   string    `json:"fingerprint" yaml:"fingerprint"`
	Size          int64     `json:"size" yaml:"size"`
	Origin        string    `json:"origin" yaml:"origin"`
	Used          bool      `json:"used" yaml:"used"`
	Timestamp     time.Time `json:"timestamp,omitempty" yaml:"timestamp,omitempty"`
	Username      string    `json:"username,omitempty" yaml:"username,omitempty"`
	// contains filtered or unexported fields
}

FormattedSvcResource holds the formatted representation of a resource's info.

func FormatSvcResource

func FormatSvcResource(res resource.Resource) FormattedSvcResource

FormatSvcResource converts the resource info into a FormattedServiceResource.

type FormattedUnitDetails

type FormattedUnitDetails []FormattedDetailResource

FormattedDetailResource is the data for the tabular output for juju resources <unit> --details.

type FormattedUnitResource

type FormattedUnitResource FormattedSvcResource

FormattedUnitResource holds the formatted representation of a resource's info.

type ListCharmResourcesCommand

type ListCharmResourcesCommand struct {
	modelcmd.ModelCommandBase

	// ResourceLister is called by Run to list charm resources. The
	// default implementation uses juju/juju/charmstore.Client, but
	// it may be set to mock out the call to that method.
	ResourceLister ResourceLister
	// contains filtered or unexported fields
}

ListCharmResourcesCommand implements the "juju charm resources" command.

func NewListCharmResourcesCommand

func NewListCharmResourcesCommand() *ListCharmResourcesCommand

NewListCharmResourcesCommand returns a new command that lists resources defined by a charm.

func (*ListCharmResourcesCommand) Info

func (c *ListCharmResourcesCommand) Info() *cmd.Info

Info implements cmd.Command.

func (*ListCharmResourcesCommand) Init

func (c *ListCharmResourcesCommand) Init(args []string) error

Init implements cmd.Command.

func (*ListCharmResourcesCommand) ListResources

ListCharmResources implements CharmResourceLister by getting the charmstore client from the command's ModelCommandBase.

func (*ListCharmResourcesCommand) Run

Run implements cmd.Command.

func (*ListCharmResourcesCommand) SetFlags

func (c *ListCharmResourcesCommand) SetFlags(f *gnuflag.FlagSet)

SetFlags implements cmd.Command.

type ReadSeekCloser

type ReadSeekCloser interface {
	io.ReadCloser
	io.Seeker
}

ReadSeekCloser combines 2 interfaces.

type ResourceLister

type ResourceLister interface {
	ListResources(ids []charmstore.CharmID) ([][]charmresource.Resource, error)
}

CharmResourceLister lists resources for the given charm ids.

type ShowServiceClient

type ShowServiceClient interface {
	// ListResources returns info about resources for applications in the model.
	ListResources(services []string) ([]resource.ServiceResources, error)
	// Close closes the connection.
	Close() error
}

ShowServiceClient has the API client methods needed by ShowServiceCommand.

type ShowServiceCommand

type ShowServiceCommand struct {
	modelcmd.ModelCommandBase
	// contains filtered or unexported fields
}

ShowServiceCommand implements the upload command.

func NewShowServiceCommand

func NewShowServiceCommand(deps ShowServiceDeps) *ShowServiceCommand

NewShowServiceCommand returns a new command that lists resources defined by a charm.

func (*ShowServiceCommand) Info

func (c *ShowServiceCommand) Info() *cmd.Info

Info implements cmd.Command.Info.

func (*ShowServiceCommand) Init

func (c *ShowServiceCommand) Init(args []string) error

Init implements cmd.Command.Init. It will return an error satisfying errors.BadRequest if you give it an incorrect number of arguments.

func (*ShowServiceCommand) Run

func (c *ShowServiceCommand) Run(ctx *cmd.Context) error

Run implements cmd.Command.Run.

func (*ShowServiceCommand) SetFlags

func (c *ShowServiceCommand) SetFlags(f *gnuflag.FlagSet)

SetFlags implements cmd.Command.SetFlags.

type ShowServiceDeps

type ShowServiceDeps struct {
	// NewClient returns the value that wraps the API for showing application
	// resources from the server.
	NewClient func(*ShowServiceCommand) (ShowServiceClient, error)
}

ShowServiceDeps is a type that contains external functions that ShowService depends on to function.

type UploadClient

type UploadClient interface {
	// Upload sends the resource to Juju.
	Upload(service, name, filename string, resource io.ReadSeeker) error

	// Close closes the client.
	Close() error
}

UploadClient has the API client methods needed by UploadCommand.

type UploadCommand

type UploadCommand struct {
	modelcmd.ModelCommandBase
	// contains filtered or unexported fields
}

UploadCommand implements the upload command.

func NewUploadCommand

func NewUploadCommand(deps UploadDeps) *UploadCommand

NewUploadCommand returns a new command that lists resources defined by a charm.

func (*UploadCommand) Info

func (c *UploadCommand) Info() *cmd.Info

Info implements cmd.Command.Info

func (*UploadCommand) Init

func (c *UploadCommand) Init(args []string) error

Init implements cmd.Command.Init. It will return an error satisfying errors.BadRequest if you give it an incorrect number of arguments.

func (*UploadCommand) Run

func (c *UploadCommand) Run(*cmd.Context) error

Run implements cmd.Command.Run.

type UploadDeps

type UploadDeps struct {
	// NewClient returns the value that wraps the API for uploading to the server.
	NewClient func(*UploadCommand) (UploadClient, error)

	// OpenResource handles creating a reader from the resource path.
	OpenResource func(path string) (ReadSeekCloser, error)
}

UploadDeps is a type that contains external functions that Upload depends on to function.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL