Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetResource ¶
func GetResource(args GetResourceArgs) (resource.Resource, io.ReadCloser, error)
GetResource returns a reader for the resource's data. That data is streamed from the charm store.
If a cache is set up then the resource is read from there. If the resource is not in the cache at all then errors.NotFound is returned. If only the resource's details are in the cache (but not the actual file) then the file is read from the charm store. In that case the cache is updated to contain the file too.
Types ¶
type EntityCache ¶
type EntityCache interface { // GetResource returns the resource data for the identified resource. GetResource(name string) (resource.Resource, error) // SetResource stores the resource in the local cache. SetResource(res charmresource.Resource, reader io.Reader) (resource.Resource, error) // OpenResource returns metadata about the resource, and a reader // for the resource. OpenResource(name string) (resource.Resource, io.ReadCloser, error) }
EntityCache exposes the functionality needed to cache data from the charm store. The operations apply to a single application (or unit).
type GetResourceArgs ¶
type GetResourceArgs struct { // Client is the charm store client to use. Client StoreResourceGetter // EntityCache is the charm store cache to use. It is optional. Cache EntityCache // CharmID indicates the charm for which to get the resource. CharmID charmstore.CharmID // Name is the name of the resource. Name string }
GetResourceArgs holds the arguments to GetResource().
type StoreResourceGetter ¶
type StoreResourceGetter interface { // GetResource returns a reader for the resource's data. That data // is streamed from the charm store. The charm's revision, if any, // is ignored. If the identified resource is not in the charm store // then errors.NotFound is returned. // // But if you write any code that assumes a NotFound error returned // from this methid means that the resource was not found, you fail // basic logic. GetResource(charmstore.ResourceRequest) (charmstore.ResourceData, error) }
StoreResourceGetter provides the functionality for getting a resource file from the charm store.