Documentation ¶
Index ¶
- func DeployResources(args DeployResourcesArgs) (ids map[string]string, err error)
- func FormatAppTabular(writer io.Writer, value interface{}) error
- func FormatCharmTabular(writer io.Writer, value interface{}) error
- func NewCharmResourcesCommand() modelcmd.ModelCommand
- func NewCharmResourcesCommandWithClient(client ResourceLister) modelcmd.ModelCommand
- func NewListCommand(deps ListDeps) modelcmd.ModelCommand
- func NewUploadCommand(deps UploadDeps) modelcmd.ModelCommand
- func OpenResource(resValue string, resType charmresource.Type, osOpen osOpenFunc) (modelcmd.ReadSeekCloser, error)
- type APIRoot
- type BakeryClient
- type CharmID
- type CharmResourceLister
- type CharmResourcesCommand
- type CharmStoreResourceLister
- type CharmhubResourceLister
- type ControllerAPIRoot
- type CreateResourceListener
- type DeployClient
- type DeployResourcesArgs
- type FormattedAppResource
- type FormattedApplicationDetails
- type FormattedApplicationInfo
- type FormattedCharmResource
- type FormattedDetailResource
- type FormattedUnitDetails
- type ListClient
- type ListCommand
- type ListDeps
- type ResourceLister
- type ResourceListerDependencies
- type UploadClient
- type UploadCommand
- type UploadDeps
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 FormatAppTabular ¶
FormatAppTabular returns a tabular summary of resources.
func FormatCharmTabular ¶
FormatCharmTabular returns a tabular summary of charm resources.
func NewCharmResourcesCommand ¶
func NewCharmResourcesCommand() modelcmd.ModelCommand
NewCharmResourcesCommand returns a new command that lists resources defined by a charm.
func NewCharmResourcesCommandWithClient ¶
func NewCharmResourcesCommandWithClient(client ResourceLister) modelcmd.ModelCommand
NewCharmResourcesCommandWithClient returns a new command that lists resources defined by a charm.
func NewListCommand ¶
func NewListCommand(deps ListDeps) modelcmd.ModelCommand
NewListCommand returns a new command that lists resources defined by a charm.
func NewUploadCommand ¶
func NewUploadCommand(deps UploadDeps) modelcmd.ModelCommand
NewUploadCommand returns a new command that lists resources defined by a charm.
func OpenResource ¶
func OpenResource(resValue string, resType charmresource.Type, osOpen osOpenFunc) (modelcmd.ReadSeekCloser, error)
Types ¶
type APIRoot ¶
type APIRoot = func() (api.Connection, error)
APIRoot defines a way to create a new API root.
type BakeryClient ¶
type BakeryClient = func() (*httpbakery.Client, error)
BakeryClient defines a way to create a bakery client.
type CharmID ¶
type CharmID struct { // URL is the url of the charm. URL *charm.URL // Channel is the channel in which the charm was published. Channel charm.Channel }
CharmID represents the charm identifier.
type CharmResourceLister ¶
type CharmResourceLister interface {
ListCharmResources(curl *charm.URL, origin apicharm.Origin) ([]charmresource.Resource, error)
}
CharmResourceLister lists the resource of a charm.
type CharmResourcesCommand ¶
type CharmResourcesCommand struct {
// contains filtered or unexported fields
}
CharmResourcesCommand implements the "juju charm-resources" command.
func (*CharmResourcesCommand) Info ¶
func (c *CharmResourcesCommand) Info() *cmd.Info
Info implements cmd.Command.
func (*CharmResourcesCommand) Init ¶
func (c *CharmResourcesCommand) Init(args []string) error
Init implements cmd.Command.
func (*CharmResourcesCommand) Run ¶
func (c *CharmResourcesCommand) Run(ctx *cmd.Context) error
Run implements cmd.Command.
func (*CharmResourcesCommand) SetFlags ¶
func (c *CharmResourcesCommand) SetFlags(f *gnuflag.FlagSet)
SetFlags implements cmd.Command.
type CharmStoreResourceLister ¶
type CharmStoreResourceLister struct { BakeryClientFn BakeryClient ControllerAPIRootFn ControllerAPIRoot }
CharmStoreResourceLister defines a charm store resource lister.
func (*CharmStoreResourceLister) ListResources ¶
func (c *CharmStoreResourceLister) ListResources(ids []CharmID) ([][]charmresource.Resource, error)
ListResources implements CharmResourceLister.
type CharmhubResourceLister ¶
type CharmhubResourceLister struct {
APIRootFn APIRoot
}
CharmhubResourceLister defines a charm hub resource lister.
func (*CharmhubResourceLister) ListResources ¶
func (c *CharmhubResourceLister) ListResources(ids []CharmID) ([][]charmresource.Resource, error)
ListResources implements CharmResourceLister.
type ControllerAPIRoot ¶
type ControllerAPIRoot = func() (api.Connection, error)
ControllerAPIRoot defines a way to create a new controller API root.
type CreateResourceListener ¶
type CreateResourceListener = func(string, ResourceListerDependencies) (ResourceLister, error)
CreateResourceListener defines a factory function to create a resource lister.
type DeployClient ¶
type DeployClient interface { // AddPendingResources adds pending metadata for store-based resources. AddPendingResources(applicationID string, chID apiresources.CharmID, csMac *macaroon.Macaroon, resources []charmresource.Resource) (ids []string, err error) // UploadPendingResource uploads data and metadata for a pending resource for the given application. UploadPendingResource(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 apiresources.CharmID // CharmStoreMacaroon is the macaroon to use for the charm when // interacting with the charm store. CharmStoreMacaroon *macaroon.Macaroon // ResourceValues is the set of resources for which a value // was provided at the command-line. ResourceValues 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 // Filesystem provides access to the filesystem. Filesystem modelcmd.Filesystem }
DeployResourcesArgs holds the arguments to DeployResources().
type FormattedAppResource ¶
type FormattedAppResource 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 string `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"` CombinedRevision string `json:"-"` UsedYesNo string `json:"-"` CombinedOrigin string `json:"-"` }
FormattedAppResource holds the formatted representation of a resource's info.
func FormatAppResource ¶
func FormatAppResource(res resource.Resource) FormattedAppResource
FormatAppResource converts the resource info into a FormattedAppResource.
type FormattedApplicationDetails ¶
type FormattedApplicationDetails struct { Resources []FormattedDetailResource `json:"resources,omitempty" yaml:"resources,omitempty"` Updates []FormattedCharmResource `json:"updates,omitempty" yaml:"updates,omitempty"` }
FormattedApplicationDetails is the data for the tabular output for juju resources <application> --details.
func FormatApplicationDetails ¶
func FormatApplicationDetails(sr resource.ApplicationResources) (FormattedApplicationDetails, error)
FormatApplicationDetails converts a ApplicationResources value into a formatted value for display on the command line.
type FormattedApplicationInfo ¶
type FormattedApplicationInfo struct { Resources []FormattedAppResource `json:"resources,omitempty" yaml:"resources,omitempty"` Updates []FormattedCharmResource `json:"updates,omitempty" yaml:"updates,omitempty"` }
FormattedApplicationInfo holds the formatted representation of the information about an application's resources.
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 FormattedAppResource `json:"unit" yaml:"unit"` Expected FormattedAppResource `json:"expected" yaml:"expected"` Progress int64 `json:"progress,omitempty" yaml:"progress,omitempty"` UnitNumber int `json:"-"` RevProgress string `json:"-"` }
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
FormatDetailResource converts the arguments into a FormattedApplicationResource.
type FormattedUnitDetails ¶
type FormattedUnitDetails []FormattedDetailResource
FormattedDetailResource is the data for the tabular output for juju resources <unit> --details.
type ListClient ¶
type ListClient interface { // ListResources returns info about resources for applications in the model. ListResources(applications []string) ([]resource.ApplicationResources, error) // Close closes the connection. Close() error }
ListClient has the API client methods needed by ListCommand.
type ListCommand ¶
type ListCommand struct { modelcmd.ModelCommandBase // contains filtered or unexported fields }
ListCommand discovers and lists application or unit resources.
func (*ListCommand) Init ¶
func (c *ListCommand) 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 (*ListCommand) Run ¶
func (c *ListCommand) Run(ctx *cmd.Context) error
Run implements cmd.Command.Run.
func (*ListCommand) SetFlags ¶
func (c *ListCommand) SetFlags(f *gnuflag.FlagSet)
SetFlags implements cmd.Command.SetFlags.
type ListDeps ¶
type ListDeps struct { // NewClient returns the value that wraps the API for showing // resources from the server. NewClient func(*ListCommand) (ListClient, error) }
ListDeps is a type that contains external functions that List needs.
type ResourceLister ¶
type ResourceLister interface {
ListResources(ids []CharmID) ([][]charmresource.Resource, error)
}
ResourceLister lists resources for the given charm ids.
type ResourceListerDependencies ¶
type ResourceListerDependencies interface { BakeryClient() (*httpbakery.Client, error) NewControllerAPIRoot() (api.Connection, error) NewAPIRoot() (api.Connection, error) }
ResourceListerDependencies defines the dependencies to create a store dependant resource lister.
type UploadClient ¶
type UploadClient interface { // Upload sends the resource to Juju. Upload(application, name, filename string, resource io.ReadSeeker) error // ListResources returns info about resources for applications in the model. ListResources(applications []string) ([]resource.ApplicationResources, 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 (*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) }
UploadDeps is a type that contains external functions that Upload depends on to function.