Documentation ¶
Index ¶
- Constants
- Variables
- func IsContainerMachine(id string) bool
- func IsValidAction(id string) bool
- func IsValidApplication(name string) bool
- func IsValidApplicationOffer(name string) bool
- func IsValidCAASModel(id string) bool
- func IsValidCAASModelName(name string) bool
- func IsValidCharm(url string) bool
- func IsValidCloud(id string) bool
- func IsValidCloudCredential(id string) bool
- func IsValidCloudCredentialName(name string) bool
- func IsValidController(id string) bool
- func IsValidControllerAgent(id string) bool
- func IsValidControllerName(name string) bool
- func IsValidEnvironment(id string) bool
- func IsValidFilesystem(id string) bool
- func IsValidIPAddress(id string) bool
- func IsValidMachine(id string) bool
- func IsValidModel(id string) bool
- func IsValidModelName(name string) bool
- func IsValidPayload(id string) bool
- func IsValidRelation(key string) bool
- func IsValidSpace(name string) bool
- func IsValidStorage(id string) bool
- func IsValidSubnet(cidr string) bool
- func IsValidUnit(name string) bool
- func IsValidUser(id string) bool
- func IsValidUserDomain(domain string) bool
- func IsValidUserName(name string) bool
- func IsValidVolume(id string) bool
- func ReadableString(tag Tag) string
- func StorageName(id string) (string, error)
- func TagKind(tag string) (string, error)
- func UnitApplication(unitName string) (string, error)
- type ActionTag
- type ApplicationOfferTag
- type ApplicationTag
- type CAASModelTag
- type CharmTag
- type CloudCredentialTag
- type CloudTag
- type ControllerAgentTag
- type ControllerTag
- type EnvironTag
- type FilesystemTag
- type IPAddressTag
- type MachineTag
- type ModelTag
- type PayloadTag
- type RelationTag
- type Set
- func (t Set) Add(value Tag)
- func (t Set) Contains(value Tag) bool
- func (t Set) Difference(other Set) Set
- func (t Set) Intersection(other Set) Set
- func (t Set) IsEmpty() bool
- func (t Set) Remove(value Tag)
- func (t Set) Size() int
- func (t Set) SortedValues() []Tag
- func (t Set) Union(other Set) Set
- func (t Set) Values() []Tag
- type SpaceTag
- type StorageTag
- type SubnetTag
- type Tag
- type UnitTag
- type UserTag
- type VolumeTag
Examples ¶
Constants ¶
const ( ApplicationSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)" NumberSnippet = "(?:0|[1-9][0-9]*)" )
const ( ContainerTypeSnippet = "[a-z]+" ContainerSnippet = "/" + ContainerTypeSnippet + "/" + NumberSnippet + "" MachineSnippet = NumberSnippet + "(?:" + ContainerSnippet + ")*" )
const ( SpaceTagKind = "space" SpaceSnippet = "(?:[a-z0-9]+(?:-[a-z0-9]+)*)" )
const ( StorageTagKind = "storage" // StorageNameSnippet is the regular expression that describes valid // storage names (without the storage instance sequence number). StorageNameSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)" )
const ( UserTagKind = "user" LocalUserDomain = "local" )
const ActionTagKind = "action"
const (
ApplicationOfferSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)"
)
const ApplicationOfferTagKind = "applicationoffer"
const ApplicationTagKind = "application"
const CAASModelTagKind = "caasmodel"
const CharmTagKind = "charm"
CharmTagKind specifies charm tag kind
const CloudCredentialTagKind = "cloudcred"
const CloudTagKind = "cloud"
const ControllerAgentTagKind = "controller"
ControllerAgentTagKind indicates that a tag belongs to a controller agent.
const ControllerTagKind = "controller"
ControllerTagKind indicates that a tag belongs to a controller.
const EnvironTagKind = "environment"
EnvironTagKind is DEPRECATED: model tags are used instead.
const FilesystemTagKind = "filesystem"
const IPAddressTagKind = "ipaddress"
const MachineTagKind = "machine"
const ModelTagKind = "model"
const ( // PayloadTagKind is used as the prefix for the string // representation of payload tags. PayloadTagKind = "payload" )
const RelationSnippet = "[a-z][a-z0-9]*(?:[_-][a-z0-9]+)*"
const RelationTagKind = "relation"
const SubnetTagKind = "subnet"
const UnitSnippet = "(" + ApplicationSnippet + ")/" + NumberSnippet
UnitSnippet defines the regexp for a valid Unit Id.
const UnitTagKind = "unit"
const VolumeTagKind = "volume"
Variables ¶
var ( // SeriesSnippet is a regular expression representing series SeriesSnippet = "[a-z]+([a-z0-9]+)?" // CharmNameSnippet is a regular expression representing charm name CharmNameSnippet = "[a-z][a-z0-9]*(-[a-z0-9]*[a-z][a-z0-9]*)*" )
Functions ¶
func IsContainerMachine ¶
IsContainerMachine returns whether id is a valid container machine id.
func IsValidAction ¶
IsValidAction returns whether id is a valid action id (UUID).
func IsValidApplication ¶
IsValidApplication returns whether name is a valid application name.
func IsValidApplicationOffer ¶
IsValidApplicationOffer returns whether name is a valid application offer name.
func IsValidCAASModel ¶
IsValidCAASModel returns whether id is a valid CAAS model UUID.
func IsValidCAASModelName ¶
IsValidCAASModelName returns whether name is a valid string safe for a CAAS model name.
func IsValidCharm ¶
IsValidCharm returns whether name is a valid charm url.
func IsValidCloud ¶
IsValidCloud returns whether id is a valid cloud ID.
func IsValidCloudCredential ¶
IsValidCloudCredential returns whether id is a valid cloud credential ID.
func IsValidCloudCredentialName ¶
IsValidCloudCredentialName returns whether name is a valid cloud credential name.
func IsValidController ¶
IsValidController returns whether id is a valid controller UUID.
func IsValidControllerAgent ¶
IsValidControllerAgent returns whether id is a valid controller agent id.
func IsValidControllerName ¶
IsValidControllerName returns whether name is a valid string safe for a controller name.
func IsValidEnvironment ¶
IsValidEnvironment returns whether id is a valid environment UUID.
func IsValidFilesystem ¶
IsValidFilesystem returns whether id is a valid filesystem id.
func IsValidIPAddress ¶
IsValidIPAddress returns whether id is a valid IP address ID. Here it simply is checked if it is a valid UUID.
func IsValidMachine ¶
IsValidMachine returns whether id is a valid machine id.
func IsValidModel ¶
IsValidModel returns whether id is a valid model UUID.
func IsValidModelName ¶
IsValidModelName returns whether name is a valid string safe for a model name.
func IsValidPayload ¶
IsValidPayload returns whether id is a valid Juju ID for a charm payload. The ID must be a valid alpha-numeric (plus hyphens).
func IsValidRelation ¶
IsValidRelation returns whether key is a valid relation key.
func IsValidSpace ¶
IsValidSpace reports whether name is a valid space name.
func IsValidStorage ¶
IsValidStorage returns whether id is a valid storage instance ID.
func IsValidSubnet ¶
IsValidSubnet returns whether cidr is a valid subnet CIDR.
func IsValidUnit ¶
IsValidUnit returns whether name is a valid unit name.
func IsValidUser ¶
IsValidUser returns whether id is a valid user id. Valid users may or may not be qualified with an @domain suffix. Examples of valid users include bob, bob@local, bob@somewhere-else, 0-a-f@123.
func IsValidUserDomain ¶
IsValidUserDomain returns whether the given user domain is valid.
func IsValidUserName ¶
IsValidUserName returns whether the given name is a valid name part of a user. That is, usernames with a domain suffix will return false.
func IsValidVolume ¶
IsValidVolume returns whether id is a valid volume ID.
func ReadableString ¶
ReadableString returns a human-readable string from the tag passed in. It currently supports unit and machine tags. Support for additional types can be added in as needed.
func StorageName ¶
StorageName returns the storage name from a storage instance ID. StorageName returns an error if "id" is not a valid storage instance ID.
func TagKind ¶
TagKind returns one of the *TagKind constants for the given tag, or an error if none matches.
func UnitApplication ¶
UnitApplication returns the name of the application that the unit is associated with. It returns an error if unitName is not a valid unit name.
Types ¶
type ActionTag ¶
func NewActionTag ¶
NewActionTag returns the tag of an action with the given id (UUID).
func ParseActionTag ¶
ParseActionTag parses an action tag string.
type ApplicationOfferTag ¶
type ApplicationOfferTag struct {
Name string
}
func NewApplicationOfferTag ¶
func NewApplicationOfferTag(applicationOfferName string) ApplicationOfferTag
NewApplicationOfferTag returns the tag for the application with the given name.
func ParseApplicationOfferTag ¶
func ParseApplicationOfferTag(applicationOfferTag string) (ApplicationOfferTag, error)
ParseApplicationOfferTag parses a application tag string.
func (ApplicationOfferTag) Id ¶
func (t ApplicationOfferTag) Id() string
func (ApplicationOfferTag) Kind ¶
func (t ApplicationOfferTag) Kind() string
func (ApplicationOfferTag) String ¶
func (t ApplicationOfferTag) String() string
type ApplicationTag ¶
type ApplicationTag struct {
Name string
}
func NewApplicationTag ¶
func NewApplicationTag(applicationName string) ApplicationTag
NewApplicationTag returns the tag for the application with the given name.
func ParseApplicationTag ¶
func ParseApplicationTag(applicationTag string) (ApplicationTag, error)
ParseApplicationTag parses a application tag string.
func (ApplicationTag) Id ¶
func (t ApplicationTag) Id() string
func (ApplicationTag) Kind ¶
func (t ApplicationTag) Kind() string
func (ApplicationTag) String ¶
func (t ApplicationTag) String() string
type CAASModelTag ¶
type CAASModelTag struct {
// contains filtered or unexported fields
}
CAASModelTag represents a tag used to describe a model.
func NewCAASModelTag ¶
func NewCAASModelTag(uuid string) CAASModelTag
NewCAASModelTag returns the tag of a CAAS model with the given CAAS model UUID.
func ParseCAASModelTag ¶
func ParseCAASModelTag(caasModelTag string) (CAASModelTag, error)
ParseCAASModelTag parses a CAAS model tag string.
func (CAASModelTag) Id ¶
func (t CAASModelTag) Id() string
func (CAASModelTag) Kind ¶
func (t CAASModelTag) Kind() string
func (CAASModelTag) String ¶
func (t CAASModelTag) String() string
type CharmTag ¶
type CharmTag struct {
// contains filtered or unexported fields
}
CharmTag represents tag for charm using charm's URL
func NewCharmTag ¶
NewCharmTag returns the tag for the charm with the given url. It will panic if the given charm url is not valid.
func ParseCharmTag ¶
ParseCharmTag parses a charm tag string.
type CloudCredentialTag ¶
type CloudCredentialTag struct {
// contains filtered or unexported fields
}
func NewCloudCredentialTag ¶
func NewCloudCredentialTag(id string) CloudCredentialTag
NewCloudCredentialTag returns the tag for the cloud with the given ID. It will panic if the given cloud ID is not valid.
func ParseCloudCredentialTag ¶
func ParseCloudCredentialTag(s string) (CloudCredentialTag, error)
ParseCloudCredentialTag parses a cloud tag string.
func (CloudCredentialTag) Cloud ¶
func (t CloudCredentialTag) Cloud() CloudTag
Cloud returns the tag of the cloud to which the credential pertains.
func (CloudCredentialTag) Id ¶
func (t CloudCredentialTag) Id() string
Id implements Tag.Id. It returns the empty string if t is zero.
func (CloudCredentialTag) IsZero ¶
func (t CloudCredentialTag) IsZero() bool
IsZero reports whether t is zero.
func (CloudCredentialTag) Kind ¶
func (t CloudCredentialTag) Kind() string
Kind is part of the Tag interface.
func (CloudCredentialTag) Name ¶
func (t CloudCredentialTag) Name() string
Name returns the cloud credential name, excluding the cloud and owner qualifiers.
func (CloudCredentialTag) Owner ¶
func (t CloudCredentialTag) Owner() UserTag
Owner returns the tag of the user that owns the credential.
func (CloudCredentialTag) String ¶
func (t CloudCredentialTag) String() string
String implements Tag.String. It returns the empty string if t is zero.
type CloudTag ¶
type CloudTag struct {
// contains filtered or unexported fields
}
func NewCloudTag ¶
NewCloudTag returns the tag for the cloud with the given ID. It will panic if the given cloud ID is not valid.
func ParseCloudTag ¶
ParseCloudTag parses a cloud tag string.
type ControllerAgentTag ¶
type ControllerAgentTag struct {
// contains filtered or unexported fields
}
ControllerAgentTag represents a tag used to describe a controller.
func NewControllerAgentTag ¶
func NewControllerAgentTag(id string) ControllerAgentTag
NewControllerAgentTag returns the tag of an controller agent with the given id.
func ParseControllerAgentTag ¶
func ParseControllerAgentTag(controllerAgentTag string) (ControllerAgentTag, error)
ParseControllerAgentTag parses a controller agent tag string.
func (ControllerAgentTag) Number ¶
func (t ControllerAgentTag) Number() int
Number returns the controller agent number.
func (ControllerAgentTag) String ¶
func (t ControllerAgentTag) String() string
String implements Tag.
type ControllerTag ¶
type ControllerTag struct {
// contains filtered or unexported fields
}
ControllerTag represents a tag used to describe a controller.
func NewControllerTag ¶
func NewControllerTag(uuid string) ControllerTag
NewControllerTag returns the tag of an controller with the given controller UUID.
func ParseControllerTag ¶
func ParseControllerTag(controllerTag string) (ControllerTag, error)
ParseControllerTag parses an environ tag string.
type EnvironTag ¶
type EnvironTag struct {
// contains filtered or unexported fields
}
func NewEnvironTag ¶
func NewEnvironTag(uuid string) EnvironTag
NewEnvironTag returns the tag of an environment with the given environment UUID.
func ParseEnvironTag ¶
func ParseEnvironTag(environTag string) (EnvironTag, error)
ParseEnvironTag parses an environ tag string.
func (EnvironTag) Id ¶
func (t EnvironTag) Id() string
func (EnvironTag) Kind ¶
func (t EnvironTag) Kind() string
func (EnvironTag) String ¶
func (t EnvironTag) String() string
type FilesystemTag ¶
type FilesystemTag struct {
// contains filtered or unexported fields
}
func NewFilesystemTag ¶
func NewFilesystemTag(id string) FilesystemTag
NewFilesystemTag returns the tag for the filesystem with the given name. It will panic if the given filesystem name is not valid.
func ParseFilesystemTag ¶
func ParseFilesystemTag(filesystemTag string) (FilesystemTag, error)
ParseFilesystemTag parses a filesystem tag string.
func (FilesystemTag) Id ¶
func (t FilesystemTag) Id() string
func (FilesystemTag) Kind ¶
func (t FilesystemTag) Kind() string
func (FilesystemTag) String ¶
func (t FilesystemTag) String() string
type IPAddressTag ¶
type IPAddressTag struct {
// contains filtered or unexported fields
}
func NewIPAddressTag ¶
func NewIPAddressTag(id string) IPAddressTag
NewIPAddressTag returns the tag for the IP address with the given ID (UUID).
func ParseIPAddressTag ¶
func ParseIPAddressTag(ipAddressTag string) (IPAddressTag, error)
ParseIPAddressTag parses an IP address tag string.
func (IPAddressTag) Id ¶
func (t IPAddressTag) Id() string
func (IPAddressTag) Kind ¶
func (t IPAddressTag) Kind() string
func (IPAddressTag) String ¶
func (t IPAddressTag) String() string
type MachineTag ¶
type MachineTag struct {
// contains filtered or unexported fields
}
func FilesystemMachine ¶
func FilesystemMachine(tag FilesystemTag) (MachineTag, bool)
FilesystemMachine returns the machine component of the filesystem tag, and a boolean indicating whether or not there is a machine component.
func NewMachineTag ¶
func NewMachineTag(id string) MachineTag
NewMachineTag returns the tag for the machine with the given id.
func ParseMachineTag ¶
func ParseMachineTag(machineTag string) (MachineTag, error)
ParseMachineTag parses a machine tag string.
func VolumeMachine ¶
func VolumeMachine(tag VolumeTag) (MachineTag, bool)
VolumeMachine returns the machine component of the volume tag, and a boolean indicating whether or not there is a machine component.
func (MachineTag) ChildId ¶
func (t MachineTag) ChildId() string
ChildId returns just the last segment of the ID.
func (MachineTag) ContainerType ¶
func (t MachineTag) ContainerType() string
ContainerType returns the type of container for this machine. If the machine isn't a container, then the empty string is returned.
func (MachineTag) Id ¶
func (t MachineTag) Id() string
func (MachineTag) Kind ¶
func (t MachineTag) Kind() string
func (MachineTag) Parent ¶
func (t MachineTag) Parent() Tag
Parent returns the machineTag for the host of the container if the machineTag is a container, otherwise it returns nil.
func (MachineTag) String ¶
func (t MachineTag) String() string
type ModelTag ¶
type ModelTag struct {
// contains filtered or unexported fields
}
ModelTag represents a tag used to describe a model.
func NewModelTag ¶
NewModelTag returns the tag of an model with the given model UUID.
func ParseModelTag ¶
ParseModelTag parses an environ tag string.
type PayloadTag ¶
type PayloadTag struct {
// contains filtered or unexported fields
}
PayloadTag represents a charm payload.
func NewPayloadTag ¶
func NewPayloadTag(id string) PayloadTag
NewPayloadTag returns the tag for a charm's payload with the given id.
func ParsePayloadTag ¶
func ParsePayloadTag(tag string) (PayloadTag, error)
ParsePayloadTag parses a payload tag string. So ParsePayloadTag(tag.String()) === tag.
func (PayloadTag) Id ¶
func (t PayloadTag) Id() string
Id implements Tag.Id. It always returns the same ID with which it was created. So NewPayloadTag(x).Id() == x for all valid x.
type RelationTag ¶
type RelationTag struct {
// contains filtered or unexported fields
}
func NewRelationTag ¶
func NewRelationTag(relationKey string) RelationTag
NewRelationTag returns the tag for the relation with the given key.
func ParseRelationTag ¶
func ParseRelationTag(relationTag string) (RelationTag, error)
ParseRelationTag parses a relation tag string.
func (RelationTag) Id ¶
func (t RelationTag) Id() string
func (RelationTag) Kind ¶
func (t RelationTag) Kind() string
func (RelationTag) String ¶
func (t RelationTag) String() string
type Set ¶
Set represents the Set data structure, and contains Tags.
func NewSet ¶
NewSet creates and initializes a Set and populates it with inital values as specified in the parameters.
func NewSetFromStrings ¶
NewSetFromStrings creates and initializes a Set and populates it by using names.ParseTag on the initial values specified in the parameters.
func (Set) Difference ¶
Difference returns a new Tags representing all the values in the target that are not in the parameter.
func (Set) Intersection ¶
Intersection returns a new Set representing a intersection of the elments in the method target and the parameter.
func (Set) Remove ¶
Remove takes a value out of the set. If value wasn't in the set to start with, this method silently succeeds.
func (Set) SortedValues ¶
SortedValues returns an ordered slice containing all the values in the set.
type SpaceTag ¶
type SpaceTag struct {
// contains filtered or unexported fields
}
func NewSpaceTag ¶
NewSpaceTag returns the tag of a space with the given name.
func ParseSpaceTag ¶
ParseSpaceTag parses a space tag string.
type StorageTag ¶
type StorageTag struct {
// contains filtered or unexported fields
}
func NewStorageTag ¶
func NewStorageTag(id string) StorageTag
NewStorageTag returns the tag for the storage instance with the given ID. It will panic if the given string is not a valid storage instance Id.
func ParseStorageTag ¶
func ParseStorageTag(s string) (StorageTag, error)
ParseStorageTag parses a storage tag string.
func (StorageTag) Id ¶
func (t StorageTag) Id() string
func (StorageTag) Kind ¶
func (t StorageTag) Kind() string
func (StorageTag) String ¶
func (t StorageTag) String() string
type SubnetTag ¶
type SubnetTag struct {
// contains filtered or unexported fields
}
func NewSubnetTag ¶
NewSubnetTag returns the tag for subnet with the given CIDR.
func ParseSubnetTag ¶
ParseSubnetTag parses a subnet tag string.
type Tag ¶
type Tag interface { // Kind returns the kind of the tag. // This method is for legacy compatibility, callers should // use equality or type assertions to verify the Kind, or type // of a Tag. Kind() string // Id returns an identifier for this Tag. // The contents and format of the identifier are specific // to the implementer of the Tag. Id() string fmt.Stringer // all Tags should be able to print themselves }
A Tag tags things that are taggable. Its purpose is to uniquely identify some resource and provide a consistent representation of that identity in both a human-readable and a machine-friendly format. The latter benefits use of the tag in over-the-wire transmission (e.g. in HTTP RPC calls) and in filename paths. The human-readable tag "name" is available through the Id method. The machine-friendly representation is provided by the String method.
The ParseTag function may be used to build a tag from the machine- formatted string. As well each kind of tag has its own Parse* method. Each kind also has a New* method (e.g. NewMachineTag) which produces a tag from the human-readable tag "ID".
In the context of juju, the API *must* use tags to represent the various juju entities. This contrasts with user-facing code, where tags *must not* be used. Internal to juju the use of tags is a judgement call based on the situation.
func ActionReceiverFromTag ¶
ActionReceiverFrom Tag returns an ActionReceiver tag from a machine or unit tag.
func ActionReceiverTag ¶
ActionReceiverTag returns an ActionReceiver Tag from a machine or unit name.
type UnitTag ¶
type UnitTag struct {
// contains filtered or unexported fields
}
func FilesystemUnit ¶
func FilesystemUnit(tag FilesystemTag) (UnitTag, bool)
FilesystemUnit returns the unit component of the filesystem tag, and a boolean indicating whether or not there is a unit component.
func NewUnitTag ¶
NewUnitTag returns the tag for the unit with the given name. It will panic if the given unit name is not valid.
func ParseUnitTag ¶
ParseUnitTag parses a unit tag string.
func VolumeUnit ¶
VolumeUnit returns the unit component of the volume tag, and a boolean indicating whether or not there is a unit component.
func (UnitTag) Number ¶
Number returns the unit number from the tag, effectively the NumberSnippet from the validUnit regular expression.
func (UnitTag) ShortenedString ¶
ShortenedString returns the length-limited string for the tag. It can be used in places where there are strict length requirements, e.g. for a service name. It uses a hash so the resulting name should be unique. It will panic if maxLength is less than minShortenedLength.
type UserTag ¶
type UserTag struct {
// contains filtered or unexported fields
}
UserTag represents a user that may be stored locally or associated with some external domain.
func NewLocalUserTag ¶
NewLocalUserTag returns the tag for a local user with the given name.
func NewUserTag ¶
NewUserTag returns the tag for the user with the given name. It panics if the user name does not satisfy IsValidUser.
func ParseUserTag ¶
ParseUserTag parses a user tag string.
func (UserTag) Domain ¶
Domain returns the user domain. Users in the local database are from the LocalDomain. Other users are considered 'remote' users.
func (UserTag) Id ¶
Id implements Tag.Id. Local users will always have an Id value without any domain.
func (UserTag) IsLocal ¶
IsLocal returns true if the tag represents a local user. Users without an explicit domain are considered local.
func (UserTag) WithDomain ¶
WithDomain returns a copy of the user tag with the domain changed to the given argument. The domain must satisfy IsValidUserDomain or this function will panic.
type VolumeTag ¶
type VolumeTag struct {
// contains filtered or unexported fields
}
func NewVolumeTag ¶
NewVolumeTag returns the tag for the volume with the given ID. It will panic if the given volume ID is not valid.
func ParseVolumeTag ¶
ParseVolumeTag parses a volume tag string.