names

package module
v3.0.0-...-2c9a102 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2020 License: LGPL-3.0 Imports: 9 Imported by: 0

README

juju/names

This package provides helpers for handling Juju entity names.

Documentation

Index

Examples

Constants

View Source
const (
	ApplicationSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)"
	NumberSnippet      = "(?:0|[1-9][0-9]*)"
)
View Source
const (
	ContainerTypeSnippet = "[a-z]+"
	ContainerSnippet     = "/" + ContainerTypeSnippet + "/" + NumberSnippet + ""
	MachineSnippet       = NumberSnippet + "(?:" + ContainerSnippet + ")*"
)
View Source
const (
	SpaceTagKind = "space"
	SpaceSnippet = "(?:[a-z0-9]+(?:-[a-z0-9]+)*)"
)
View Source
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]*)*)"
)
View Source
const (
	UserTagKind     = "user"
	LocalUserDomain = "local"
)
View Source
const ActionSnippet = NumberSnippet

ActionSnippet defines the regexp for a valid Action Id. Actions are identified by a unique, incrementing number.

View Source
const ActionTagKind = "action"
View Source
const (
	ApplicationOfferSnippet = "(?:[a-z][a-z0-9]*(?:-[a-z0-9]*[a-z][a-z0-9]*)*)"
)
View Source
const ApplicationOfferTagKind = "applicationoffer"
View Source
const ApplicationTagKind = "application"
View Source
const CAASModelTagKind = "caasmodel"
View Source
const CharmTagKind = "charm"

CharmTagKind specifies charm tag kind

View Source
const CloudCredentialTagKind = "cloudcred"
View Source
const CloudTagKind = "cloud"
View Source
const ControllerAgentTagKind = "controller"

ControllerAgentTagKind indicates that a tag belongs to a controller agent.

View Source
const ControllerTagKind = "controller"

ControllerTagKind indicates that a tag belongs to a controller.

View Source
const EnvironTagKind = "environment"

EnvironTagKind is DEPRECATED: model tags are used instead.

View Source
const FilesystemTagKind = "filesystem"
View Source
const IPAddressTagKind = "ipaddress"
View Source
const MachineTagKind = "machine"
View Source
const ModelTagKind = "model"
View Source
const OperationSnippet = NumberSnippet

OperationSnippet defines the regexp for a valid Operation Id. Operations are identified by a unique, incrementing number.

View Source
const OperationTagKind = "operation"
View Source
const (
	// PayloadTagKind is used as the prefix for the string
	// representation of payload tags.
	PayloadTagKind = "payload"
)
View Source
const RelationSnippet = "[a-z][a-z0-9]*(?:[_-][a-z0-9]+)*"
View Source
const RelationTagKind = "relation"
View Source
const SubnetTagKind = "subnet"
View Source
const UnitSnippet = "(" + ApplicationSnippet + ")/(" + NumberSnippet + ")"

UnitSnippet defines the regexp for a valid Unit Id.

View Source
const UnitTagKind = "unit"
View Source
const VolumeTagKind = "volume"

Variables

View Source
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

func IsContainerMachine(id string) bool

IsContainerMachine returns whether id is a valid container machine id.

func IsValidAction

func IsValidAction(id string) bool

IsValidAction returns whether id is a valid action id.

func IsValidApplication

func IsValidApplication(name string) bool

IsValidApplication returns whether name is a valid application name.

func IsValidApplicationOffer

func IsValidApplicationOffer(name string) bool

IsValidApplicationOffer returns whether name is a valid application offer name.

func IsValidCAASModel

func IsValidCAASModel(id string) bool

IsValidCAASModel returns whether id is a valid CAAS model UUID.

func IsValidCAASModelName

func IsValidCAASModelName(name string) bool

IsValidCAASModelName returns whether name is a valid string safe for a CAAS model name.

func IsValidCharm

func IsValidCharm(url string) bool

IsValidCharm returns whether name is a valid charm url.

func IsValidCloud

func IsValidCloud(id string) bool

IsValidCloud returns whether id is a valid cloud ID.

func IsValidCloudCredential

func IsValidCloudCredential(id string) bool

IsValidCloudCredential returns whether id is a valid cloud credential ID.

func IsValidCloudCredentialName

func IsValidCloudCredentialName(name string) bool

IsValidCloudCredentialName returns whether name is a valid cloud credential name.

func IsValidController

func IsValidController(id string) bool

IsValidController returns whether id is a valid controller UUID.

func IsValidControllerAgent

func IsValidControllerAgent(id string) bool

IsValidControllerAgent returns whether id is a valid controller agent id.

func IsValidControllerName

func IsValidControllerName(name string) bool

IsValidControllerName returns whether name is a valid string safe for a controller name.

func IsValidEnvironment

func IsValidEnvironment(id string) bool

IsValidEnvironment returns whether id is a valid environment UUID.

func IsValidFilesystem

func IsValidFilesystem(id string) bool

IsValidFilesystem returns whether id is a valid filesystem id.

func IsValidIPAddress

func IsValidIPAddress(id string) bool

IsValidIPAddress returns whether id is a valid IP address ID. Here it simply is checked if it is a valid UUID.

func IsValidMachine

func IsValidMachine(id string) bool

IsValidMachine returns whether id is a valid machine id.

func IsValidModel

func IsValidModel(id string) bool

IsValidModel returns whether id is a valid model UUID.

func IsValidModelName

func IsValidModelName(name string) bool

IsValidModelName returns whether name is a valid string safe for a model name.

func IsValidOperation

func IsValidOperation(id string) bool

IsValidOperation returns whether id is a valid operation id.

func IsValidPayload

func IsValidPayload(id string) bool

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

func IsValidRelation(key string) bool

IsValidRelation returns whether key is a valid relation key.

func IsValidSpace

func IsValidSpace(name string) bool

IsValidSpace reports whether name is a valid space name.

func IsValidStorage

func IsValidStorage(id string) bool

IsValidStorage returns whether id is a valid storage instance ID.

func IsValidSubnet

func IsValidSubnet(id string) bool

IsValidSubnet returns whether id is a valid subnet id.

func IsValidUnit

func IsValidUnit(name string) bool

IsValidUnit returns whether name is a valid unit name.

func IsValidUser

func IsValidUser(id string) bool

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

func IsValidUserDomain(domain string) bool

IsValidUserDomain returns whether the given user domain is valid.

func IsValidUserName

func IsValidUserName(name string) bool

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

func IsValidVolume(id string) bool

IsValidVolume returns whether id is a valid volume ID.

func ReadableString

func ReadableString(tag Tag) string

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

func StorageName(id string) (string, error)

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

func TagKind(tag string) (string, error)

TagKind returns one of the *TagKind constants for the given tag, or an error if none matches.

func UnitApplication

func UnitApplication(unitName string) (string, error)

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.

func UnitNumber

func UnitNumber(unitName string) (int, error)

UnitNumber returns the number of the unit within the application. It returns an error if unitName is not a valid unit name.

Types

type ActionTag

type ActionTag struct {
	// Tags that are serialized need to have fields exported.
	ID string
}

func NewActionTag

func NewActionTag(id string) ActionTag

NewActionTag returns the tag of an action with the given id (UUID).

func ParseActionTag

func ParseActionTag(actionTag string) (ActionTag, error)

ParseActionTag parses an action tag string.

func (ActionTag) Id

func (t ActionTag) Id() string

func (ActionTag) Kind

func (t ActionTag) Kind() string

func (ActionTag) String

func (t ActionTag) String() 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

func NewCharmTag(charmURL string) CharmTag

NewCharmTag returns the tag for the charm with the given url. It will panic if the given charm url is not valid.

func ParseCharmTag

func ParseCharmTag(charmTag string) (CharmTag, error)

ParseCharmTag parses a charm tag string.

func (CharmTag) Id

func (t CharmTag) Id() string

Id satisfies Tag interface. Returns charm URL.

func (CharmTag) Kind

func (t CharmTag) Kind() string

Kind satisfies Tag interface. Returns Charm tag kind.

func (CharmTag) String

func (t CharmTag) String() string

String satisfies Tag interface. Produces string representation of charm tag.

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

func NewCloudTag(id string) CloudTag

NewCloudTag returns the tag for the cloud with the given ID. It will panic if the given cloud ID is not valid.

func ParseCloudTag

func ParseCloudTag(cloudTag string) (CloudTag, error)

ParseCloudTag parses a cloud tag string.

func (CloudTag) Id

func (t CloudTag) Id() string

func (CloudTag) Kind

func (t CloudTag) Kind() string

func (CloudTag) String

func (t CloudTag) String() 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) Id

func (t ControllerAgentTag) Id() string

Id implements Tag.

func (ControllerAgentTag) Kind

func (t ControllerAgentTag) Kind() string

Kind implements Tag.

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.

func (ControllerTag) Id

func (t ControllerTag) Id() string

Id implements Tag.

func (ControllerTag) Kind

func (t ControllerTag) Kind() string

Kind implements Tag.

func (ControllerTag) String

func (t ControllerTag) String() string

String implements Tag.

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

func NewModelTag(uuid string) ModelTag

NewModelTag returns the tag of an model with the given model UUID.

func ParseModelTag

func ParseModelTag(modelTag string) (ModelTag, error)

ParseModelTag parses an environ tag string.

func (ModelTag) Id

func (t ModelTag) Id() string

func (ModelTag) Kind

func (t ModelTag) Kind() string

func (ModelTag) String

func (t ModelTag) String() string

type OperationTag

type OperationTag struct {
	// Tags that are serialized need to have fields exported.
	ID string
}

func NewOperationTag

func NewOperationTag(id string) OperationTag

NewOperationTag returns the tag of an operation with the given id.

func ParseOperationTag

func ParseOperationTag(operationTag string) (OperationTag, error)

ParseOperationTag parses an operation tag string.

func (OperationTag) Id

func (t OperationTag) Id() string

func (OperationTag) Kind

func (t OperationTag) Kind() string

func (OperationTag) String

func (t OperationTag) String() 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.

func (PayloadTag) Kind

func (t PayloadTag) Kind() string

Kind implements Tag.

func (PayloadTag) String

func (t PayloadTag) String() string

String implements Tag.

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

type Set map[Tag]bool

Set represents the Set data structure, and contains Tags.

func NewSet

func NewSet(initial ...Tag) Set

NewSet creates and initializes a Set and populates it with inital values as specified in the parameters.

func NewSetFromStrings

func NewSetFromStrings(initial ...string) (Set, error)

NewSetFromStrings creates and initializes a Set and populates it by using names.ParseTag on the initial values specified in the parameters.

func (Set) Add

func (t Set) Add(value Tag)

Add puts a value into the set.

func (Set) Contains

func (t Set) Contains(value Tag) bool

Contains returns true if the value is in the set, and false otherwise.

func (Set) Difference

func (t Set) Difference(other Set) Set

Difference returns a new Tags representing all the values in the target that are not in the parameter.

func (Set) Intersection

func (t Set) Intersection(other Set) Set

Intersection returns a new Set representing a intersection of the elments in the method target and the parameter.

func (Set) IsEmpty

func (t Set) IsEmpty() bool

IsEmpty is true for empty or uninitialized sets.

func (Set) Remove

func (t Set) Remove(value Tag)

Remove takes a value out of the set. If value wasn't in the set to start with, this method silently succeeds.

func (Set) Size

func (t Set) Size() int

Size returns the number of elements in the set.

func (Set) SortedValues

func (t Set) SortedValues() []Tag

SortedValues returns an ordered slice containing all the values in the set.

func (Set) Union

func (t Set) Union(other Set) Set

Union returns a new Set representing a union of the elments in the method target and the parameter.

func (Set) Values

func (t Set) Values() []Tag

Values returns an unordered slice containing all the values in the set.

type SpaceTag

type SpaceTag struct {
	// contains filtered or unexported fields
}

func NewSpaceTag

func NewSpaceTag(name string) SpaceTag

NewSpaceTag returns the tag of a space with the given name.

func ParseSpaceTag

func ParseSpaceTag(spaceTag string) (SpaceTag, error)

ParseSpaceTag parses a space tag string.

func (SpaceTag) Id

func (t SpaceTag) Id() string

func (SpaceTag) Kind

func (t SpaceTag) Kind() string

func (SpaceTag) String

func (t SpaceTag) String() 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

func NewSubnetTag(id string) SubnetTag

NewSubnetTag returns the tag for subnet with the given ID.

func ParseSubnetTag

func ParseSubnetTag(subnetTag string) (SubnetTag, error)

ParseSubnetTag parses a subnet tag string.

func (SubnetTag) Id

func (t SubnetTag) Id() string

func (SubnetTag) Kind

func (t SubnetTag) Kind() string

func (SubnetTag) String

func (t SubnetTag) String() 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

func ActionReceiverFromTag(tag string) (Tag, error)

ActionReceiverFrom Tag returns an ActionReceiver tag from a machine or unit tag.

func ActionReceiverTag

func ActionReceiverTag(name string) (Tag, error)

ActionReceiverTag returns an ActionReceiver Tag from a machine or unit name.

func ParseTag

func ParseTag(tag string) (Tag, error)

ParseTag parses a string representation into a Tag.

Example
tag, err := ParseTag("user-100")
if err != nil {
	panic(err)
}
switch tag := tag.(type) {
case UserTag:
	fmt.Printf("User tag, id: %s\n", tag.Id())
default:
	fmt.Printf("Unknown tag, type %T\n", tag)
}
Output:

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

func NewUnitTag(unitName string) UnitTag

NewUnitTag returns the tag for the unit with the given name. It will panic if the given unit name is not valid.

func ParseUnitTag

func ParseUnitTag(unitTag string) (UnitTag, error)

ParseUnitTag parses a unit tag string.

func VolumeUnit

func VolumeUnit(tag VolumeTag) (UnitTag, bool)

VolumeUnit returns the unit component of the volume tag, and a boolean indicating whether or not there is a unit component.

func (UnitTag) Id

func (t UnitTag) Id() string

func (UnitTag) Kind

func (t UnitTag) Kind() string

func (UnitTag) Number

func (t UnitTag) Number() int

Number returns the unit number from the tag, effectively the NumberSnippet from the validUnit regular expression.

func (UnitTag) ShortenedString

func (t UnitTag) ShortenedString(maxLength int) (string, error)

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.

func (UnitTag) String

func (t UnitTag) String() string

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

func NewLocalUserTag(name string) UserTag

NewLocalUserTag returns the tag for a local user with the given name.

func NewUserTag

func NewUserTag(userName string) UserTag

NewUserTag returns the tag for the user with the given name. It panics if the user name does not satisfy IsValidUser.

func ParseUserTag

func ParseUserTag(tag string) (UserTag, error)

ParseUserTag parses a user tag string.

func (UserTag) Domain

func (t UserTag) Domain() string

Domain returns the user domain. Users in the local database are from the LocalDomain. Other users are considered 'remote' users.

func (UserTag) Id

func (t UserTag) Id() string

Id implements Tag.Id. Local users will always have an Id value without any domain.

func (UserTag) IsLocal

func (t UserTag) IsLocal() bool

IsLocal returns true if the tag represents a local user. Users without an explicit domain are considered local.

func (UserTag) Kind

func (t UserTag) Kind() string

func (UserTag) Name

func (t UserTag) Name() string

Name returns the name part of the user name without its associated domain.

func (UserTag) String

func (t UserTag) String() string

func (UserTag) WithDomain

func (t UserTag) WithDomain(domain string) UserTag

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

func NewVolumeTag(id string) VolumeTag

NewVolumeTag returns the tag for the volume with the given ID. It will panic if the given volume ID is not valid.

func ParseVolumeTag

func ParseVolumeTag(volumeTag string) (VolumeTag, error)

ParseVolumeTag parses a volume tag string.

func (VolumeTag) Id

func (t VolumeTag) Id() string

func (VolumeTag) Kind

func (t VolumeTag) Kind() string

func (VolumeTag) String

func (t VolumeTag) String() string

Jump to

Keyboard shortcuts

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