Documentation ¶
Overview ¶
The description package defines the structure and representation and serialisation of models to facilitate the import and export of models from different controllers.
Index ¶
- Constants
- func Serialize(model Model) ([]byte, error)
- type Action
- type ActionArgs
- type Address
- type AddressArgs
- type AgentTools
- type AgentToolsArgs
- type Annotations_
- type Application
- type ApplicationArgs
- type ApplicationOffer
- type ApplicationOfferArgs
- type BlockDevice
- type BlockDeviceArgs
- type ByName
- type CloudContainer
- type CloudContainerArgs
- type CloudCredential
- type CloudCredentialArgs
- type CloudImageMetadata
- type CloudImageMetadataArgs
- type CloudInstance
- type CloudInstanceArgs
- type CloudService
- type CloudServiceArgs
- type Constraints
- type ConstraintsArgs
- type Endpoint
- type EndpointArgs
- type Filesystem
- type FilesystemArgs
- type FilesystemAttachment
- type FilesystemAttachmentArgs
- type HasAnnotations
- type HasConstraints
- type HasModificationStatus
- type HasOperatorStatus
- type HasStatus
- type HasStatusHistory
- type IPAddress
- type IPAddressArgs
- type LinkLayerDevice
- type LinkLayerDeviceArgs
- type Machine
- type MachineArgs
- type MeterStatus
- type Model
- type ModelArgs
- type OpenedPorts
- type OpenedPortsArgs
- type Payload
- type PayloadArgs
- type PortRange
- type PortRangeArgs
- type Relation
- type RelationArgs
- type RemoteApplication
- type RemoteApplicationArgs
- type RemoteEndpoint
- type RemoteEndpointArgs
- type RemoteSpace
- type RemoteSpaceArgs
- type Resource
- type ResourceArgs
- type ResourceRevision
- type ResourceRevisionArgs
- type SLA
- type SSHHostKey
- type SSHHostKeyArgs
- type Space
- type SpaceArgs
- type Status
- type StatusArgs
- type StatusHistory_
- type StatusPoint_
- type Storage
- type StorageArgs
- type StorageConstraint
- type StorageConstraintArgs
- type StorageInstanceConstraints
- type StoragePool
- type StoragePoolArgs
- type Subnet
- type SubnetArgs
- type Unit
- type UnitArgs
- type UnitResource
- type UnitResourceArgs
- type User
- type UserArgs
- type Volume
- type VolumeArgs
- type VolumeAttachment
- type VolumeAttachmentArgs
- type VolumeAttachmentPlan
- type VolumeAttachmentPlanArgs
- type VolumePlanInfo
Constants ¶
const ( // IAAS is the type for IAAS models. IAAS = "iaas" // CAAS is the type for CAAS models. CAAS = "caas" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Action ¶
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 ¶
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 AddressArgs ¶
AddressArgs is an argument struct used to create a new internal address type that supports the Address interface.
type AgentTools ¶
AgentTools represent the version and related binary file that the machine and unit agents are using.
type AgentToolsArgs ¶
AgentToolsArgs is an argument struct used to add information about the tools the agent is using to a Machine.
type Annotations_ ¶
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 ¶
func (a *Annotations_) Annotations() map[string]string
Annotations implements HasAnnotations.
func (*Annotations_) SetAnnotations ¶
func (a *Annotations_) SetAnnotations(annotations map[string]string)
SetAnnotations implements HasAnnotations.
type Application ¶
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 ¶
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 ¶
ApplicationOffer represents an offer for a an application's endpoints.
type ApplicationOfferArgs ¶
ApplicationOfferArgs is an argument struct used to instanciate a new applicationOffer instance that implements ApplicationOffer.
type BlockDevice ¶
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 ¶
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 CloudContainer ¶
CloudContainer represents the state of a CAAS container, eg pod.
type CloudContainerArgs ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
type CloudService interface { ProviderId() string Addresses() []Address SetAddresses(addresses []AddressArgs) }
CloudService represents the state of a CAAS service.
type CloudServiceArgs ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
type FilesystemAttachment interface { Host() names.Tag Provisioned() bool MountPoint() string ReadOnly() bool }
FilesystemAttachment represents a filesystem attached to a machine.
type FilesystemAttachmentArgs ¶
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 ¶
HasAnnotations defines the common methods for setting and getting annotations for the various entities.
type HasConstraints ¶
type HasConstraints interface { Constraints() Constraints SetConstraints(ConstraintsArgs) }
HasConstraints defines the common methods for setting and getting constraints for the various entities.
type HasModificationStatus ¶
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 ¶
type HasOperatorStatus interface { SetOperatorStatus(StatusArgs) OperatorStatus() Status }
type HasStatus ¶
type HasStatus interface { Status() Status SetStatus(StatusArgs) }
HasStatus defines the common methods for setting and getting status entries for the various entities.
type HasStatusHistory ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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.
type ModelArgs ¶
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 ¶
OpenedPorts represents a collection of port ranges that are open on a particular subnet. OpenedPorts are always associated with a Machine.
type OpenedPortsArgs ¶
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 ¶
type Payload interface { Name() string Type() string RawID() string State() string Labels() []string }
Payload represents a charm payload for a unit.
type PayloadArgs ¶
PayloadArgs is an argument struct used to create a new internal payload type that supports the Payload interface.
type PortRangeArgs ¶
PortRangeArgs is an argument struct used to create a PortRange. This is only done as part of creating OpenedPorts for a Machine.
type Relation ¶
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 ¶
RelationArgs is an argument struct used to specify a relation.
type RemoteApplication ¶
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 ¶
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 ¶
RemoteEndpoint represents a connection point that can be related to another application.
type RemoteEndpointArgs ¶
RemoteEndpointArgs is an argument struct used to add a remote endpoint to a remote application.
type RemoteSpace ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
SSHHostKey represents an ssh host key.
type SSHHostKeyArgs ¶
SSHHostKeyArgs is an argument struct used to create a new internal sshHostKey type that supports the SSHHostKey interface.
type SpaceArgs ¶
SpaceArgs is an argument struct used to create a new internal space type that supports the Space interface.
type Status ¶
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 ¶
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_ ¶
type StatusHistory_ struct { Version int `yaml:"version"` History []*StatusPoint_ `yaml:"history"` }
func (*StatusHistory_) SetStatusHistory ¶
func (s *StatusHistory_) SetStatusHistory(args []StatusArgs)
SetStatusHistory implements HasStatusHistory.
func (*StatusHistory_) StatusHistory ¶
func (s *StatusHistory_) StatusHistory() []Status
StatusHistory implements HasStatusHistory.
type StatusPoint_ ¶
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 ¶
func (a *StatusPoint_) Data() map[string]interface{}
Data implements Status.
func (*StatusPoint_) Updated ¶
func (a *StatusPoint_) Updated() time.Time
Updated implements Status.
type Storage ¶
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 ¶
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 ¶
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 ¶
StorageConstraintArgs is an argument struct used to create a new internal storageconstraint type that supports the StorageConstraint interface.
type StorageInstanceConstraints ¶
StorageInstanceConstraints represents the user-specified constraints for provisioning a single storage instance for an application unit.
type StoragePool ¶
StoragePool represents a named storage pool and its settings.
type StoragePoolArgs ¶
StoragePoolArgs is an argument struct used to add a storage pool to the Model.
type Subnet ¶
type Subnet interface { ProviderId() string ProviderNetworkId() string ProviderSpaceId() string CIDR() string VLANTag() int AvailabilityZones() []string SpaceName() string FanLocalUnderlay() string FanOverlay() string AllocatableIPHigh() string AllocatableIPLow() string }
Subnet represents a network subnet.
type SubnetArgs ¶
type SubnetArgs struct { ProviderId string ProviderNetworkId string ProviderSpaceId string CIDR string VLANTag int AvailabilityZones []string SpaceName string FanLocalUnderlay string FanOverlay string // These will be deprecated once the address allocation strategy for // EC2 is changed. They are unused already on MAAS. AllocatableIPHigh string AllocatableIPLow string }
SubnetArgs is an argument struct used to create a new internal subnet type that supports the Subnet interface.
type Unit ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 Volume ¶
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 ¶
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 ¶
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 ¶
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 ¶
type VolumeAttachmentPlan interface { Machine() names.MachineTag BlockDevice() BlockDevice VolumePlanInfo() VolumePlanInfo }
type VolumeAttachmentPlanArgs ¶
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 ¶
Source 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