description: github.com/juju/description Index | Files

package description

import "github.com/juju/description"

The description package defines the structure and representation and serialisation of models to facilitate the import and export of models from different controllers.

Index

Package Files

action.go address.go annotations.go application.go applicationoffer.go blockdevice.go cloudcontainer.go cloudcredential.go cloudimagemetadata.go cloudinstance.go cloudservice.go common.go constraints.go doc.go filesystem.go interfaces.go ipaddress.go linklayerdevice.go machine.go meter-status.go model.go payload.go ports.go relation.go remoteapplication.go remoteendpoint.go remotespace.go resource.go serialization.go sla.go space.go sshhostkey.go status.go storage.go storageconstraint.go storagepool.go subnet.go unit.go unitresources.go user.go volume.go

Constants

const (
    // IAAS is the type for IAAS models.
    IAAS = "iaas"

    // CAAS is the type for CAAS models.
    CAAS = "caas"
)

func Serialize Uses

func Serialize(model Model) ([]byte, error)

Serialize mirrors the Deserialize method, and makes sure that the same serialization method is used.

type Action Uses

type Action interface {
    Id() string
    Receiver() string
    Name() string
    Parameters() map[string]interface{}
    Enqueued() time.Time
    Started() time.Time
    Completed() time.Time
    Results() map[string]interface{}
    Status() string
    Message() string
}

Action represents an IP action.

type ActionArgs Uses

type ActionArgs struct {
    Id         string
    Receiver   string
    Name       string
    Parameters map[string]interface{}
    Enqueued   time.Time
    Started    time.Time
    Completed  time.Time
    Status     string
    Message    string
    Results    map[string]interface{}
}

ActionArgs is an argument struct used to create a new internal action type that supports the Action interface.

type Address Uses

type Address interface {
    Value() string
    Type() string
    Scope() string
    Origin() string
}

Address represents an IP Address of some form.

type AddressArgs Uses

type AddressArgs struct {
    Value  string
    Type   string
    Scope  string
    Origin string
}

AddressArgs is an argument struct used to create a new internal address type that supports the Address interface.

type AgentTools Uses

type AgentTools interface {
    Version() version.Binary
    URL() string
    SHA256() string
    Size() int64
}

AgentTools represent the version and related binary file that the machine and unit agents are using.

type AgentToolsArgs Uses

type AgentToolsArgs struct {
    Version version.Binary
    URL     string
    SHA256  string
    Size    int64
}

AgentToolsArgs is an argument struct used to add information about the tools the agent is using to a Machine.

type Annotations_ Uses

type Annotations_ map[string]string

Instead of copy / pasting the Annotations, SetAnnotations, and the import three lines into every entity that has annotations, the Annotations_ helper type is provided for use in composition. This type is composed without a name so the methods get promoted so they satisfy the HasAnnotations interface.

NOTE(mjs) - The type is exported due to a limitation with go-yaml under 1.6. Once that's fixed it should be possible to make it private again.

NOTE(mjs) - The trailing underscore on the type name is to avoid collisions between the type name and the Annotations method. The underscore can go once the type becomes private again (revert to "annotations").

func (*Annotations_) Annotations Uses

func (a *Annotations_) Annotations() map[string]string

Annotations implements HasAnnotations.

func (*Annotations_) SetAnnotations Uses

func (a *Annotations_) SetAnnotations(annotations map[string]string)

SetAnnotations implements HasAnnotations.

type Application Uses

type Application interface {
    HasAnnotations
    HasConstraints
    HasOperatorStatus
    HasStatus
    HasStatusHistory

    Tag() names.ApplicationTag
    Name() string
    Type() string
    Series() string
    Subordinate() bool
    CharmURL() string
    Channel() string
    CharmModifiedVersion() int
    ForceCharm() bool
    Exposed() bool
    MinUnits() int

    PasswordHash() string
    PodSpec() string
    DesiredScale() int
    Placement() string
    CloudService() CloudService
    SetCloudService(CloudServiceArgs)

    EndpointBindings() map[string]string

    CharmConfig() map[string]interface{}
    ApplicationConfig() map[string]interface{}

    Leader() string
    LeadershipSettings() map[string]interface{}

    MetricsCredentials() []byte
    StorageConstraints() map[string]StorageConstraint

    Resources() []Resource
    AddResource(ResourceArgs) Resource

    Units() []Unit
    AddUnit(UnitArgs) Unit

    Tools() AgentTools
    SetTools(AgentToolsArgs)

    Offers() []ApplicationOffer
    AddOffer(ApplicationOfferArgs) ApplicationOffer

    Validate() error
}

Application represents a deployed charm in a model.

type ApplicationArgs Uses

type ApplicationArgs struct {
    Tag                  names.ApplicationTag
    Type                 string
    Series               string
    Subordinate          bool
    CharmURL             string
    Channel              string
    CharmModifiedVersion int
    ForceCharm           bool
    PasswordHash         string
    PodSpec              string
    Placement            string
    DesiredScale         int
    CloudService         *CloudServiceArgs
    Exposed              bool
    MinUnits             int
    EndpointBindings     map[string]string
    ApplicationConfig    map[string]interface{}
    CharmConfig          map[string]interface{}
    Leader               string
    LeadershipSettings   map[string]interface{}
    StorageConstraints   map[string]StorageConstraintArgs
    MetricsCredentials   []byte
}

ApplicationArgs is an argument struct used to add an application to the Model.

type ApplicationOffer Uses

type ApplicationOffer interface {
    OfferName() string
    Endpoints() []string
    ACL() map[string]string
}

ApplicationOffer represents an offer for a an application's endpoints.

type ApplicationOfferArgs Uses

type ApplicationOfferArgs struct {
    OfferName string
    Endpoints []string
    ACL       map[string]string
}

ApplicationOfferArgs is an argument struct used to instanciate a new applicationOffer instance that implements ApplicationOffer.

type BlockDevice Uses

type BlockDevice interface {
    Name() string
    Links() []string
    Label() string
    UUID() string
    HardwareID() string
    WWN() string
    BusAddress() string
    Size() uint64
    FilesystemType() string
    InUse() bool
    MountPoint() string
}

BlockDevice represents a block device on a machine.

type BlockDeviceArgs Uses

type BlockDeviceArgs struct {
    Name           string
    Links          []string
    Label          string
    UUID           string
    HardwareID     string
    WWN            string
    BusAddress     string
    Size           uint64
    FilesystemType string
    InUse          bool
    MountPoint     string
}

BlockDeviceArgs is an argument struct used to add a block device to a Machine.

type ByName Uses

type ByName []User

Implement length-based sort with ByLen type.

func (ByName) Len Uses

func (a ByName) Len() int

func (ByName) Less Uses

func (a ByName) Less(i, j int) bool

func (ByName) Swap Uses

func (a ByName) Swap(i, j int)

type CloudContainer Uses

type CloudContainer interface {
    ProviderId() string
    Address() Address
    Ports() []string
}

CloudContainer represents the state of a CAAS container, eg pod.

type CloudContainerArgs Uses

type CloudContainerArgs struct {
    ProviderId string
    Address    AddressArgs
    Ports      []string
}

CloudContainerArgs is an argument struct used to create a new internal cloudContainer type that supports the CloudContainer interface.

type CloudCredential Uses

type CloudCredential interface {
    Owner() string
    Cloud() string
    Name() string
    AuthType() string
    Attributes() map[string]string
}

CloudCredential represents the current cloud credential for the model.

type CloudCredentialArgs Uses

type CloudCredentialArgs struct {
    Owner      names.UserTag
    Cloud      names.CloudTag
    Name       string
    AuthType   string
    Attributes map[string]string
}

CloudCredentialArgs is an argument struct used to create a new internal cloudCredential type that supports the CloudCredential interface.

type CloudImageMetadata Uses

type CloudImageMetadata interface {
    Stream() string
    Region() string
    Version() string
    Series() string
    Arch() string
    VirtType() string
    RootStorageType() string
    RootStorageSize() (uint64, bool)
    DateCreated() int64
    Source() string
    Priority() int
    ImageId() string
    ExpireAt() *time.Time
}

CloudImageMetadata represents an IP cloudimagemetadata.

type CloudImageMetadataArgs Uses

type CloudImageMetadataArgs struct {
    Stream          string
    Region          string
    Version         string
    Series          string
    Arch            string
    VirtType        string
    RootStorageType string
    RootStorageSize *uint64
    DateCreated     int64
    Source          string
    Priority        int
    ImageId         string
    ExpireAt        *time.Time
}

CloudImageMetadataArgs is an argument struct used to create a new internal cloudimagemetadata type that supports the CloudImageMetadata interface.

type CloudInstance Uses

type CloudInstance interface {
    HasStatus
    HasStatusHistory
    HasModificationStatus

    InstanceId() string
    Architecture() string
    Memory() uint64
    RootDisk() uint64
    RootDiskSource() string
    CpuCores() uint64
    CpuPower() uint64
    Tags() []string
    AvailabilityZone() string
    CharmProfiles() []string

    Validate() error
}

CloudInstance holds information particular to a machine instance in a cloud.

type CloudInstanceArgs Uses

type CloudInstanceArgs struct {
    InstanceId       string
    Architecture     string
    Memory           uint64
    RootDisk         uint64
    RootDiskSource   string
    CpuCores         uint64
    CpuPower         uint64
    Tags             []string
    AvailabilityZone string
    CharmProfiles    []string
}

CloudInstanceArgs is an argument struct used to add information about the cloud instance to a Machine.

type CloudService Uses

type CloudService interface {
    ProviderId() string
    Addresses() []Address
    SetAddresses(addresses []AddressArgs)
}

CloudService represents the state of a CAAS service.

type CloudServiceArgs Uses

type CloudServiceArgs struct {
    ProviderId string
    Addresses  []AddressArgs
}

CloudServiceArgs is an argument struct used to create a new internal cloudService type that supports the cloudService interface.

type Constraints Uses

type Constraints interface {
    Architecture() string
    Container() string
    CpuCores() uint64
    CpuPower() uint64
    InstanceType() string
    Memory() uint64
    RootDisk() uint64
    RootDiskSource() string

    Spaces() []string
    Tags() []string
    Zones() []string

    VirtType() string
}

Constraints holds information about particular deployment constraints for entities.

type ConstraintsArgs Uses

type ConstraintsArgs struct {
    Architecture   string
    Container      string
    CpuCores       uint64
    CpuPower       uint64
    InstanceType   string
    Memory         uint64
    RootDisk       uint64
    RootDiskSource string

    Spaces []string
    Tags   []string
    Zones  []string

    VirtType string
}

ConstraintsArgs is an argument struct to construct Constraints.

type Endpoint Uses

type Endpoint interface {
    ApplicationName() string
    Name() string
    // Role, Interface, Optional, Limit, and Scope should all be available
    // through the Charm associated with the Application. There is no real need
    // for this information to be denormalised like this. However, for now,
    // since the import may well take place before the charms have been loaded
    // into the model, we'll send this information over.
    Role() string
    Interface() string
    Optional() bool
    Limit() int
    Scope() string

    // UnitCount returns the number of units the endpoint has settings for.
    UnitCount() int

    AllSettings() map[string]map[string]interface{}
    Settings(unitName string) map[string]interface{}
    SetUnitSettings(unitName string, settings map[string]interface{})
}

Endpoint represents one end of a relation. A named endpoint provided by the charm that is deployed for the application.

type EndpointArgs Uses

type EndpointArgs struct {
    ApplicationName string
    Name            string
    Role            string
    Interface       string
    Optional        bool
    Limit           int
    Scope           string
}

EndpointArgs is an argument struct used to specify a relation.

type Filesystem Uses

type Filesystem interface {
    HasStatus
    HasStatusHistory

    Tag() names.FilesystemTag
    Volume() names.VolumeTag
    Storage() names.StorageTag

    Provisioned() bool

    Size() uint64
    Pool() string

    FilesystemID() string

    Attachments() []FilesystemAttachment
    AddAttachment(FilesystemAttachmentArgs) FilesystemAttachment
}

Filesystem represents a filesystem in the model.

type FilesystemArgs Uses

type FilesystemArgs struct {
    Tag          names.FilesystemTag
    Storage      names.StorageTag
    Volume       names.VolumeTag
    Provisioned  bool
    Size         uint64
    Pool         string
    FilesystemID string
}

FilesystemArgs is an argument struct used to add a filesystem to the Model.

type FilesystemAttachment Uses

type FilesystemAttachment interface {
    Host() names.Tag
    Provisioned() bool
    MountPoint() string
    ReadOnly() bool
}

FilesystemAttachment represents a filesystem attached to a machine.

type FilesystemAttachmentArgs Uses

type FilesystemAttachmentArgs struct {
    Host        names.Tag
    Provisioned bool
    ReadOnly    bool
    MountPoint  string
}

FilesystemAttachmentArgs is an argument struct used to add information about the cloud instance to a Filesystem.

type HasAnnotations Uses

type HasAnnotations interface {
    Annotations() map[string]string
    SetAnnotations(map[string]string)
}

HasAnnotations defines the common methods for setting and getting annotations for the various entities.

type HasConstraints Uses

type HasConstraints interface {
    Constraints() Constraints
    SetConstraints(ConstraintsArgs)
}

HasConstraints defines the common methods for setting and getting constraints for the various entities.

type HasModificationStatus Uses

type HasModificationStatus interface {
    ModificationStatus() Status
    // SetModificationStatus allows the changing of the modification status, of
    // a type, which is meant to highlight the changing to a machine instance
    // after it's been provisioned.
    SetModificationStatus(StatusArgs)
}

HasModificationStatus defines the comment methods for setting and getting status entries for the various entities that are modified by actions. The modification changes, are changes that can alter the machine instance and setting the status can then be surfaced to the operator using the status. This is different from agent-status or machine-status, where the statuses tend to imply how the machine health is during a provisioning cycle or hook integration. Statuses that are expected: Applied, Error.

type HasOperatorStatus Uses

type HasOperatorStatus interface {
    SetOperatorStatus(StatusArgs)
    OperatorStatus() Status
}

type HasStatus Uses

type HasStatus interface {
    Status() Status
    SetStatus(StatusArgs)
}

HasStatus defines the common methods for setting and getting status entries for the various entities.

type HasStatusHistory Uses

type HasStatusHistory interface {
    StatusHistory() []Status
    SetStatusHistory([]StatusArgs)
}

HasStatusHistory defines the common methods for setting and getting historical status entries for the various entities.

type IPAddress Uses

type IPAddress interface {
    ProviderID() string
    DeviceName() string
    MachineID() string
    SubnetCIDR() string
    ConfigMethod() string
    Value() string
    DNSServers() []string
    DNSSearchDomains() []string
    GatewayAddress() string
    IsDefaultGateway() bool
}

IPAddress represents an IP address.

type IPAddressArgs Uses

type IPAddressArgs struct {
    ProviderID       string
    DeviceName       string
    MachineID        string
    SubnetCIDR       string
    ConfigMethod     string
    Value            string
    DNSServers       []string
    DNSSearchDomains []string
    GatewayAddress   string
    IsDefaultGateway bool
}

IPAddressArgs is an argument struct used to create a new internal ipaddress type that supports the IPAddress interface.

type LinkLayerDevice Uses

type LinkLayerDevice interface {
    Name() string
    MTU() uint
    ProviderID() string
    MachineID() string
    Type() string
    MACAddress() string
    IsAutoStart() bool
    IsUp() bool
    ParentName() string
}

LinkLayerDevice represents a link layer device.

type LinkLayerDeviceArgs Uses

type LinkLayerDeviceArgs struct {
    Name        string
    MTU         uint
    ProviderID  string
    MachineID   string
    Type        string
    MACAddress  string
    IsAutoStart bool
    IsUp        bool
    ParentName  string
}

LinkLayerDeviceArgs is an argument struct used to create a new internal linklayerdevice type that supports the LinkLayerDevice interface.

type Machine Uses

type Machine interface {
    HasAnnotations
    HasConstraints
    HasStatus
    HasStatusHistory

    Id() string
    Tag() names.MachineTag
    Nonce() string
    PasswordHash() string
    Placement() string
    Series() string
    ContainerType() string
    Jobs() []string
    SupportedContainers() ([]string, bool)

    Instance() CloudInstance
    SetInstance(CloudInstanceArgs)

    // Life() string -- only transmit alive things?
    ProviderAddresses() []Address
    MachineAddresses() []Address
    SetAddresses(machine []AddressArgs, provider []AddressArgs)

    PreferredPublicAddress() Address
    PreferredPrivateAddress() Address
    SetPreferredAddresses(public AddressArgs, private AddressArgs)

    Tools() AgentTools
    SetTools(AgentToolsArgs)

    Containers() []Machine
    AddContainer(MachineArgs) Machine

    BlockDevices() []BlockDevice
    AddBlockDevice(BlockDeviceArgs) BlockDevice

    OpenedPorts() []OpenedPorts
    AddOpenedPorts(OpenedPortsArgs) OpenedPorts

    Validate() error
}

Machine represents an existing live machine or container running in the model.

type MachineArgs Uses

type MachineArgs struct {
    Id            names.MachineTag
    Nonce         string
    PasswordHash  string
    Placement     string
    Series        string
    ContainerType string
    Jobs          []string
    // A null value means that we don't yet know which containers
    // are supported. An empty slice means 'no containers are supported'.
    SupportedContainers *[]string
}

MachineArgs is an argument struct used to add a machine to the Model.

type MeterStatus Uses

type MeterStatus interface {
    // Code returns the traffic light colour code of meter status.
    Code() string
    // Info returns extra information corresponding to the traffic light colour.
    Info() string
}

MeterStatus represents the meter status of the model.

type Model Uses

type Model interface {
    HasAnnotations
    HasConstraints
    HasStatus
    HasStatusHistory

    Type() string
    Cloud() string
    CloudRegion() string
    CloudCredential() CloudCredential
    SetCloudCredential(CloudCredentialArgs)
    Tag() names.ModelTag
    Owner() names.UserTag
    Config() map[string]interface{}
    LatestToolsVersion() version.Number
    EnvironVersion() int

    // UpdateConfig overwrites existing config values with those specified.
    UpdateConfig(map[string]interface{})

    // Blocks returns a map of block type to the message associated with that
    // block.
    Blocks() map[string]string

    Users() []User
    AddUser(UserArgs)

    Machines() []Machine
    AddMachine(MachineArgs) Machine

    Applications() []Application
    AddApplication(ApplicationArgs) Application

    Relations() []Relation
    AddRelation(RelationArgs) Relation

    Spaces() []Space
    AddSpace(SpaceArgs) Space

    LinkLayerDevices() []LinkLayerDevice
    AddLinkLayerDevice(LinkLayerDeviceArgs) LinkLayerDevice

    Subnets() []Subnet
    AddSubnet(SubnetArgs) Subnet

    IPAddresses() []IPAddress
    AddIPAddress(IPAddressArgs) IPAddress

    SSHHostKeys() []SSHHostKey
    AddSSHHostKey(SSHHostKeyArgs) SSHHostKey

    CloudImageMetadata() []CloudImageMetadata
    AddCloudImageMetadata(CloudImageMetadataArgs) CloudImageMetadata

    Actions() []Action
    AddAction(ActionArgs) Action

    Sequences() map[string]int
    SetSequence(name string, value int)

    Volumes() []Volume
    AddVolume(VolumeArgs) Volume

    Filesystems() []Filesystem
    AddFilesystem(FilesystemArgs) Filesystem

    Storages() []Storage
    AddStorage(StorageArgs) Storage

    StoragePools() []StoragePool
    AddStoragePool(StoragePoolArgs) StoragePool

    RemoteApplications() []RemoteApplication
    AddRemoteApplication(RemoteApplicationArgs) RemoteApplication

    Validate() error

    SetSLA(level, owner, credentials string) SLA
    SLA() SLA

    SetMeterStatus(code, info string) MeterStatus
    MeterStatus() MeterStatus
}

Model is a database agnostic representation of an existing model.

func Deserialize Uses

func Deserialize(bytes []byte) (Model, error)

Deserialize constructs a Model from a serialized YAML byte stream. The normal use for this is to construct the Model representation after getting the byte stream from an API connection or read from a file.

func NewModel Uses

func NewModel(args ModelArgs) Model

NewModel returns a Model based on the args specified.

type ModelArgs Uses

type ModelArgs struct {
    Type               string
    Owner              names.UserTag
    Config             map[string]interface{}
    LatestToolsVersion version.Number
    EnvironVersion     int
    Blocks             map[string]string
    Cloud              string
    CloudRegion        string
}

ModelArgs represent the bare minimum information that is needed to represent a model.

type OpenedPorts Uses

type OpenedPorts interface {
    SubnetID() string
    OpenPorts() []PortRange
}

OpenedPorts represents a collection of port ranges that are open on a particular subnet. OpenedPorts are always associated with a Machine.

type OpenedPortsArgs Uses

type OpenedPortsArgs struct {
    SubnetID    string
    OpenedPorts []PortRangeArgs
}

OpenedPortsArgs is an argument struct used to add a set of opened port ranges to a machine.

type Payload Uses

type Payload interface {
    Name() string
    Type() string
    RawID() string
    State() string
    Labels() []string
}

Payload represents a charm payload for a unit.

type PayloadArgs Uses

type PayloadArgs struct {
    Name   string
    Type   string
    RawID  string
    State  string
    Labels []string
}

PayloadArgs is an argument struct used to create a new internal payload type that supports the Payload interface.

type PortRange Uses

type PortRange interface {
    UnitName() string
    FromPort() int
    ToPort() int
    Protocol() string
}

PortRange represents one or more contiguous ports opened by a particular Unit.

type PortRangeArgs Uses

type PortRangeArgs struct {
    UnitName string
    FromPort int
    ToPort   int
    Protocol string
}

PortRangeArgs is an argument struct used to create a PortRange. This is only done as part of creating OpenedPorts for a Machine.

type Relation Uses

type Relation interface {
    HasStatus

    Id() int
    Key() string
    Suspended() bool
    SuspendedReason() string

    Endpoints() []Endpoint
    AddEndpoint(EndpointArgs) Endpoint
}

Relation represents a relationship between two applications, or a peer relation between different instances of an application.

type RelationArgs Uses

type RelationArgs struct {
    Id              int
    Key             string
    Suspended       bool
    SuspendedReason string
}

RelationArgs is an argument struct used to specify a relation.

type RemoteApplication Uses

type RemoteApplication interface {
    HasStatus

    Tag() names.ApplicationTag
    Name() string
    OfferUUID() string
    URL() string
    SourceModelTag() names.ModelTag
    IsConsumerProxy() bool

    Endpoints() []RemoteEndpoint
    AddEndpoint(RemoteEndpointArgs) RemoteEndpoint

    Spaces() []RemoteSpace
    AddSpace(RemoteSpaceArgs) RemoteSpace

    Bindings() map[string]string
}

RemoteApplication represents an application in another model that can participate in a relation in this model.

type RemoteApplicationArgs Uses

type RemoteApplicationArgs struct {
    Tag             names.ApplicationTag
    OfferUUID       string
    URL             string
    SourceModel     names.ModelTag
    IsConsumerProxy bool
    Bindings        map[string]string
}

RemoteApplicationArgs is an argument struct used to add a remote application to the Model.

type RemoteEndpoint Uses

type RemoteEndpoint interface {
    Name() string
    Role() string
    Interface() string
}

RemoteEndpoint represents a connection point that can be related to another application.

type RemoteEndpointArgs Uses

type RemoteEndpointArgs struct {
    Name      string
    Role      string
    Interface string
}

RemoteEndpointArgs is an argument struct used to add a remote endpoint to a remote application.

type RemoteSpace Uses

type RemoteSpace interface {
    CloudType() string
    Name() string
    ProviderId() string
    ProviderAttributes() map[string]interface{}

    Subnets() []Subnet
    AddSubnet(SubnetArgs) Subnet
}

RemoteSpace represents a network space that endpoints of remote applications might be connected to.

type RemoteSpaceArgs Uses

type RemoteSpaceArgs struct {
    CloudType          string
    Name               string
    ProviderId         string
    ProviderAttributes map[string]interface{}
}

RemoteSpaceArgs is an argument struct used to add a remote space to a remote application.

type Resource Uses

type Resource interface {
    // Name returns the name of the resource.
    Name() string

    // SetApplicationRevision sets the application revision of the
    // resource.
    SetApplicationRevision(ResourceRevisionArgs) ResourceRevision

    // ApplicationRevision returns the revision of the resource as set
    // on the application. May return nil if SetApplicationRevision
    // hasn't been called yet.
    ApplicationRevision() ResourceRevision

    // SetCharmStoreRevision sets the application revision of the
    // resource.
    SetCharmStoreRevision(ResourceRevisionArgs) ResourceRevision

    // CharmStoreRevision returns the revision the charmstore has, as
    // seen at the last poll. May return nil if SetCharmStoreRevision
    // hasn't been called yet.
    CharmStoreRevision() ResourceRevision

    // Validate checks the consistency of the resource and its
    // revisions.
    Validate() error
}

Resource represents an application resource.

type ResourceArgs Uses

type ResourceArgs struct {
    Name string
}

ResourceArgs is an argument struct used to create a new internal resource type that supports the Resource interface.

type ResourceRevision Uses

type ResourceRevision interface {
    Revision() int
    Type() string
    Path() string
    Description() string
    Origin() string
    FingerprintHex() string
    Size() int64
    Timestamp() time.Time
    Username() string
}

ResourceRevision represents a revision of an application resource.

type ResourceRevisionArgs Uses

type ResourceRevisionArgs struct {
    Revision       int
    Type           string
    Path           string
    Description    string
    Origin         string
    FingerprintHex string
    Size           int64
    Timestamp      time.Time
    Username       string
}

ResourceRevisionArgs is an argument struct used to add a new internal resource revision to a Resource.

type SLA Uses

type SLA interface {
    // Level returns the level of the sla.
    Level() string
    // Owner returns the owner of the sla.
    Owner() string
    // Credentials returns the credentials of the sla.
    Credentials() string
}

SLA represents the sla for the model.

type SSHHostKey Uses

type SSHHostKey interface {
    MachineID() string
    Keys() []string
}

SSHHostKey represents an ssh host key.

type SSHHostKeyArgs Uses

type SSHHostKeyArgs struct {
    MachineID string
    Keys      []string
}

SSHHostKeyArgs is an argument struct used to create a new internal sshHostKey type that supports the SSHHostKey interface.

type Space Uses

type Space interface {
    Id() string
    Name() string
    Public() bool
    ProviderID() string
}

Space represents a network space, which is a named collection of subnets.

type SpaceArgs Uses

type SpaceArgs struct {
    Id         string
    Name       string
    Public     bool
    ProviderID string
}

SpaceArgs is an argument struct used to create a new internal space type that supports the Space interface.

type Status Uses

type Status interface {
    Value() string
    Message() string
    Data() map[string]interface{}
    Updated() time.Time
    NeverSet() bool
}

Status represents an agent, application, or workload status.

type StatusArgs Uses

type StatusArgs struct {
    Value    string
    Message  string
    Data     map[string]interface{}
    Updated  time.Time
    NeverSet bool
}

StatusArgs is an argument struct used to set the agent, application, or workload status.

type StatusHistory_ Uses

type StatusHistory_ struct {
    Version int             `yaml:"version"`
    History []*StatusPoint_ `yaml:"history"`
}

func (*StatusHistory_) SetStatusHistory Uses

func (s *StatusHistory_) SetStatusHistory(args []StatusArgs)

SetStatusHistory implements HasStatusHistory.

func (*StatusHistory_) StatusHistory Uses

func (s *StatusHistory_) StatusHistory() []Status

StatusHistory implements HasStatusHistory.

type StatusPoint_ Uses

type StatusPoint_ struct {
    Value_    string                 `yaml:"value"`
    Message_  string                 `yaml:"message,omitempty"`
    Data_     map[string]interface{} `yaml:"data,omitempty"`
    Updated_  time.Time              `yaml:"updated"`
    NeverSet_ bool                   `yaml:"neverset"`
}

StatusPoint_ implements Status, and represents the status of an entity at a point in time. Used in the serialization of both status and StatusHistory_.

func (*StatusPoint_) Data Uses

func (a *StatusPoint_) Data() map[string]interface{}

Data implements Status.

func (*StatusPoint_) Message Uses

func (a *StatusPoint_) Message() string

Message implements Status.

func (*StatusPoint_) NeverSet Uses

func (a *StatusPoint_) NeverSet() bool

NeverSet implements Status.

func (*StatusPoint_) Updated Uses

func (a *StatusPoint_) Updated() time.Time

Updated implements Status.

func (*StatusPoint_) Value Uses

func (a *StatusPoint_) Value() string

Value implements Status.

type Storage Uses

type Storage interface {
    Tag() names.StorageTag
    Kind() string
    // Owner returns the tag of the application or unit that owns this storage
    // instance.
    Owner() (names.Tag, error)
    Name() string

    Attachments() []names.UnitTag

    // Constraints returns the storage instance constraints, and a boolean
    // reporting whether there are any.
    Constraints() (StorageInstanceConstraints, bool)

    Validate() error
}

Storage represents the state of a unit or application-wide storage instance in the model.

type StorageArgs Uses

type StorageArgs struct {
    Tag         names.StorageTag
    Kind        string
    Owner       names.Tag
    Name        string
    Attachments []names.UnitTag
    Constraints *StorageInstanceConstraints
}

StorageArgs is an argument struct used to add a storage to the Model.

type StorageConstraint Uses

type StorageConstraint interface {
    // Pool is the name of the storage pool from which to provision the
    // storage instances.
    Pool() string
    // Size is the required size of the storage instances, in MiB.
    Size() uint64
    // Count is the required number of storage instances.
    Count() uint64
}

StorageConstraint represents the user-specified constraints for provisioning storage instances for an application unit.

type StorageConstraintArgs Uses

type StorageConstraintArgs struct {
    Pool  string
    Size  uint64
    Count uint64
}

StorageConstraintArgs is an argument struct used to create a new internal storageconstraint type that supports the StorageConstraint interface.

type StorageInstanceConstraints Uses

type StorageInstanceConstraints struct {
    Pool string
    Size uint64
}

StorageInstanceConstraints represents the user-specified constraints for provisioning a single storage instance for an application unit.

type StoragePool Uses

type StoragePool interface {
    Name() string
    Provider() string
    Attributes() map[string]interface{}
}

StoragePool represents a named storage pool and its settings.

type StoragePoolArgs Uses

type StoragePoolArgs struct {
    Name       string
    Provider   string
    Attributes map[string]interface{}
}

StoragePoolArgs is an argument struct used to add a storage pool to the Model.

type Subnet Uses

type Subnet interface {
    ID() string
    ProviderId() string
    ProviderNetworkId() string
    ProviderSpaceId() string
    CIDR() string
    VLANTag() int
    AvailabilityZones() []string
    IsPublic() bool
    SpaceID() string
    SpaceName() string
    FanLocalUnderlay() string
    FanOverlay() string
}

Subnet represents a network subnet.

type SubnetArgs Uses

type SubnetArgs struct {
    ID                string
    ProviderId        string
    ProviderNetworkId string
    ProviderSpaceId   string
    CIDR              string
    VLANTag           int
    AvailabilityZones []string
    IsPublic          bool

    // SpaceName is now deprecated and not used past version 4.
    SpaceName string

    SpaceID          string
    FanLocalUnderlay string
    FanOverlay       string
}

SubnetArgs is an argument struct used to create a new internal subnet type that supports the Subnet interface.

type Unit Uses

type Unit interface {
    HasAnnotations
    HasConstraints

    Tag() names.UnitTag
    Name() string
    Type() string
    Machine() names.MachineTag

    PasswordHash() string

    Principal() names.UnitTag
    Subordinates() []names.UnitTag

    MeterStatusCode() string
    MeterStatusInfo() string

    Tools() AgentTools
    SetTools(AgentToolsArgs)

    WorkloadStatus() Status
    SetWorkloadStatus(StatusArgs)

    WorkloadStatusHistory() []Status
    SetWorkloadStatusHistory([]StatusArgs)

    WorkloadVersion() string

    WorkloadVersionHistory() []Status
    SetWorkloadVersionHistory([]StatusArgs)

    AgentStatus() Status
    SetAgentStatus(StatusArgs)

    AgentStatusHistory() []Status
    SetAgentStatusHistory([]StatusArgs)

    AddResource(UnitResourceArgs) UnitResource
    Resources() []UnitResource

    AddPayload(PayloadArgs) Payload
    Payloads() []Payload

    CloudContainer() CloudContainer
    SetCloudContainer(CloudContainerArgs)

    Validate() error
}

Unit represents an instance of a unit in a model.

type UnitArgs Uses

type UnitArgs struct {
    Tag          names.UnitTag
    Type         string
    Machine      names.MachineTag
    PasswordHash string
    Principal    names.UnitTag
    Subordinates []names.UnitTag

    WorkloadVersion string
    MeterStatusCode string
    MeterStatusInfo string

    CloudContainer *CloudContainerArgs
}

UnitArgs is an argument struct used to add a Unit to a Application in the Model.

type UnitResource Uses

type UnitResource interface {
    // Name returns the name of the resource.
    Name() string

    // Revision returns the revision of the resource as used by a
    // particular unit.
    Revision() ResourceRevision
}

UnitResource represents the revision of a resource used by a unit.

type UnitResourceArgs Uses

type UnitResourceArgs struct {
    Name         string
    RevisionArgs ResourceRevisionArgs
}

UnitResourceArgs is an argument struct used to specify the revision of a resource used by a unit.

type User Uses

type User interface {
    Name() names.UserTag
    DisplayName() string
    CreatedBy() names.UserTag
    DateCreated() time.Time
    LastConnection() time.Time
    Access() string
}

User represents a user of the model. Users are able to connect to, and depending on the read only flag, modify the model.

type UserArgs Uses

type UserArgs struct {
    Name           names.UserTag
    DisplayName    string
    CreatedBy      names.UserTag
    DateCreated    time.Time
    LastConnection time.Time
    Access         string
}

type Volume Uses

type Volume interface {
    HasStatus
    HasStatusHistory

    Tag() names.VolumeTag
    Storage() names.StorageTag

    Provisioned() bool

    Size() uint64
    Pool() string

    HardwareID() string
    WWN() string
    VolumeID() string
    Persistent() bool

    Attachments() []VolumeAttachment
    AttachmentPlans() []VolumeAttachmentPlan
    AddAttachment(VolumeAttachmentArgs) VolumeAttachment
    AddAttachmentPlan(VolumeAttachmentPlanArgs) VolumeAttachmentPlan
}

Volume represents a volume (disk, logical volume, etc.) in the model.

type VolumeArgs Uses

type VolumeArgs struct {
    Tag         names.VolumeTag
    Storage     names.StorageTag
    Provisioned bool
    Size        uint64
    Pool        string
    HardwareID  string
    WWN         string
    VolumeID    string
    Persistent  bool
}

VolumeArgs is an argument struct used to add a volume to the Model.

type VolumeAttachment Uses

type VolumeAttachment interface {
    Host() names.Tag
    Provisioned() bool
    ReadOnly() bool
    DeviceName() string
    DeviceLink() string
    BusAddress() string
    VolumePlanInfo() VolumePlanInfo
}

VolumeAttachment represents a volume attached to a machine.

type VolumeAttachmentArgs Uses

type VolumeAttachmentArgs struct {
    Host        names.Tag
    Provisioned bool
    ReadOnly    bool
    DeviceName  string
    DeviceLink  string
    BusAddress  string

    DeviceType       string
    DeviceAttributes map[string]string
}

VolumeAttachmentArgs is an argument struct used to add information about the cloud instance to a Volume.

type VolumeAttachmentPlan Uses

type VolumeAttachmentPlan interface {
    Machine() names.MachineTag
    BlockDevice() BlockDevice
    VolumePlanInfo() VolumePlanInfo
}

type VolumeAttachmentPlanArgs Uses

type VolumeAttachmentPlanArgs struct {
    Machine names.MachineTag

    DeviceName     string
    DeviceLinks    []string
    Label          string
    UUID           string
    HardwareId     string
    WWN            string
    BusAddress     string
    Size           uint64
    FilesystemType string
    InUse          bool
    MountPoint     string

    DeviceType       string
    DeviceAttributes map[string]string
}

VolumeAttachmentPlanArgs is an argument struct used to add information about a volume attached to an instance.

type VolumePlanInfo Uses

type VolumePlanInfo interface {
    DeviceType() string
    DeviceAttributes() map[string]string
}

Package description imports 11 packages (graph) and is imported by 23 packages. Updated 2019-08-15. Refresh now. Tools for package owners.