Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddApplicationOfferArgs ¶
type AddApplicationOfferArgs struct {
// OfferName is the name of the offer.
OfferName string
// ApplicationName is the name of the application to which the offer pertains.
ApplicationName string
// ApplicationDescription is a description of the application's functionality,
// typically copied from the charm metadata.
ApplicationDescription string
// Endpoints is the collection of endpoint names offered (internal->published).
// The map allows for advertised endpoint names to be aliased.
Endpoints map[string]string
// Icon is an icon to display when browsing the ApplicationOffers, which by default
// comes from the charm.
Icon []byte
}
AddApplicationOfferArgs contain parameters used to create an application offer.
type ApplicationOffer ¶
type ApplicationOffer struct {
// OfferName is the name of the offer.
OfferName string
// ApplicationName is the name of the application to which the offer pertains.
ApplicationName string
// ApplicationDescription is a description of the application's functionality,
// typically copied from the charm metadata.
ApplicationDescription string
// Endpoints is the collection of endpoint names offered (internal->published).
// The map allows for advertised endpoint names to be aliased.
Endpoints map[string]charm.Relation
}
ApplicationOffer holds the details of an application offered by this model.
func (*ApplicationOffer) String ¶
func (s *ApplicationOffer) String() string
String returns the offered application name.
type ApplicationOfferDetails ¶
type ApplicationOfferDetails struct {
// OfferName is the name of the offer
OfferName string
// ApplicationName is the application name to which the offer pertains.
ApplicationName string
// OfferURL is the URL where the offer can be located.
OfferURL string
// CharmName is a name of a charm for remote application.
CharmName string
// Endpoints are the charm endpoints supported by the application.
// TODO(wallyworld) - do not use charm.Relation here
Endpoints []charm.Relation
// ConnectedCount are the number of users that are consuming the application.
ConnectedCount int
}
ApplicationOfferDetails represents a remote application used when vendor lists their own applications.
type ApplicationOfferDetailsResult ¶
type ApplicationOfferDetailsResult struct {
// Result contains remote application information.
Result *ApplicationOfferDetails
// Error contains error related to this item.
Error error
}
ApplicationOfferDetailsResult is a result of listing a remote application.
type ApplicationOfferFilter ¶
type ApplicationOfferFilter struct {
// OfferName is the name of the model hosting the offer.
ModelName string
// OfferName is the name of the offer.
OfferName string
// ApplicationName is the name of the application to which the offer pertains.
ApplicationName string
// ApplicationDescription is a description of the application's functionality,
// typically copied from the charm metadata.
ApplicationDescription string
// Endpoint contains an endpoint filter criteria.
Endpoints []EndpointFilterTerm
// AllowedUsers are the users allowed to consume the application.
AllowedUsers []string
}
ApplicationOfferFilter is used to query applications offered by this model.
type ApplicationOffers ¶
type ApplicationOffers interface {
// AddOffer adds a new application offer to the directory.
AddOffer(offer AddApplicationOfferArgs) (*ApplicationOffer, error)
// UpdateOffer replaces an existing offer at the same URL.
UpdateOffer(offer AddApplicationOfferArgs) (*ApplicationOffer, error)
// ListOffers returns the offers satisfying the specified filter.
ListOffers(filter ...ApplicationOfferFilter) ([]ApplicationOffer, error)
// Remove removes the application offer at the specified URL.
Remove(offerName string) error
}
An ApplicationOffers instance holds application offers from a model.
type ApplicationURL ¶
type ApplicationURL struct {
// Source represents where the offer is hosted.
// If empty, the model is another model in the same controller.
Source string // "<controller-name>" or "<jaas>" or ""
// User is the user whose namespace in which the offer is made.
// Where a model is specified, the user is the model owner.
User string
// ModelName is the name of the model providing the exported endpoints.
// It is only used for local URLs or for specifying models in the same
// controller.
ModelName string
// ApplicationName is the name of the application providing the exported endpoints.
ApplicationName string
}
ApplicationURL represents the location of an offered application and its associated exported endpoints.
func ParseApplicationURL ¶
func ParseApplicationURL(urlStr string) (*ApplicationURL, error)
ParseApplicationURL parses the specified URL string into an ApplicationURL. The URL string is of one of the forms:
<model-name>.<application-name> <model-name>.<application-name>:<relation-name> <user>/<model-name>.<application-name> <user>/<model-name>.<application-name>:<relation-name> <controller>:<user>/<model-name>.<application-name> <controller>:<user>/<model-name>.<application-name>:<relation-name>
func (*ApplicationURL) HasEndpoint ¶
func (u *ApplicationURL) HasEndpoint() bool
HasEndpoint returns whether this application URL includes an endpoint name in the application name.
func (*ApplicationURL) Path ¶
func (u *ApplicationURL) Path() string
Path returns the path component of the URL.
func (*ApplicationURL) String ¶
func (u *ApplicationURL) String() string
type ApplicationURLParts ¶
type ApplicationURLParts ApplicationURL
ApplicationURLParts contains various attributes of a URL.
func ParseApplicationURLParts ¶
func ParseApplicationURLParts(urlStr string) (*ApplicationURLParts, error)
ParseApplicationURLParts parses a partial URL, filling out what parts are supplied. This method is used to generate a filter used to query matching application URLs.
type EndpointFilterTerm ¶
type EndpointFilterTerm struct {
// Name is an endpoint name.
Name string
// Interface is an endpoint interface.
Interface string
// Role is an endpoint role.
Role charm.RelationRole
}
EndpointFilterTerm represents a remote endpoint filter.
type RemoteApplication ¶
type RemoteApplication struct {
ApplicationOffer
// ConnectedUsers are the users that are consuming the application.
ConnectedUsers []string
}
RemoteApplication represents a remote application.