Documentation
¶
Index ¶
- Constants
- Variables
- func ReturnSvcInFileList(fileList []string) []string
- type AugeasRes
- func (obj *AugeasRes) CheckApply(apply bool) (bool, error)
- func (obj *AugeasRes) Close() error
- func (obj *AugeasRes) Cmp(r engine.Res) error
- func (obj *AugeasRes) Default() engine.Res
- func (obj *AugeasRes) Init(init *engine.Init) error
- func (obj *AugeasRes) UIDs() []engine.ResUID
- func (obj *AugeasRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *AugeasRes) Validate() error
- func (obj *AugeasRes) Watch() error
- type AugeasSet
- type AugeasUID
- type AwsEc2Res
- func (obj *AwsEc2Res) CheckApply(apply bool) (bool, error)
- func (obj *AwsEc2Res) Close() error
- func (obj *AwsEc2Res) Cmp(r engine.Res) error
- func (obj *AwsEc2Res) Default() engine.Res
- func (obj *AwsEc2Res) Init(init *engine.Init) error
- func (obj *AwsEc2Res) UIDs() []engine.ResUID
- func (obj *AwsEc2Res) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *AwsEc2Res) Validate() error
- func (obj *AwsEc2Res) Watch() error
- type AwsEc2UID
- type CDRomDevice
- type ConfigEtcdRes
- func (obj *ConfigEtcdRes) CheckApply(apply bool) (bool, error)
- func (obj *ConfigEtcdRes) Close() error
- func (obj *ConfigEtcdRes) Cmp(r engine.Res) error
- func (obj *ConfigEtcdRes) Default() engine.Res
- func (obj *ConfigEtcdRes) Init(init *engine.Init) error
- func (obj *ConfigEtcdRes) Interrupt() error
- func (obj *ConfigEtcdRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *ConfigEtcdRes) Validate() error
- func (obj *ConfigEtcdRes) Watch() error
- type ConsulKVRes
- func (obj *ConsulKVRes) CheckApply(apply bool) (bool, error)
- func (obj *ConsulKVRes) Close() error
- func (obj *ConsulKVRes) Cmp(r engine.Res) error
- func (obj *ConsulKVRes) Default() engine.Res
- func (obj *ConsulKVRes) Init(init *engine.Init) error
- func (obj *ConsulKVRes) Validate() error
- func (obj *ConsulKVRes) Watch() error
- type CronRes
- func (obj *CronRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *CronRes) CheckApply(apply bool) (bool, error)
- func (obj *CronRes) Close() error
- func (obj *CronRes) Cmp(r engine.Res) error
- func (obj *CronRes) Default() engine.Res
- func (obj *CronRes) Init(init *engine.Init) error
- func (obj *CronRes) UIDs() []engine.ResUID
- func (obj *CronRes) UnitFilePath() (string, error)
- func (obj *CronRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *CronRes) Validate() error
- func (obj *CronRes) Watch() error
- type CronUID
- type DHCPHostRes
- func (obj *DHCPHostRes) CheckApply(apply bool) (bool, error)
- func (obj *DHCPHostRes) Close() error
- func (obj *DHCPHostRes) Cmp(r engine.Res) error
- func (obj *DHCPHostRes) Default() engine.Res
- func (obj *DHCPHostRes) Init(init *engine.Init) error
- func (obj *DHCPHostRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *DHCPHostRes) Validate() error
- func (obj *DHCPHostRes) Watch() error
- type DHCPServerRes
- func (obj *DHCPServerRes) CheckApply(apply bool) (bool, error)
- func (obj *DHCPServerRes) Close() error
- func (obj *DHCPServerRes) Cmp(r engine.Res) error
- func (obj *DHCPServerRes) Copy() engine.CopyableRes
- func (obj *DHCPServerRes) Default() engine.Res
- func (obj *DHCPServerRes) GroupCmp(r engine.GroupableRes) error
- func (obj *DHCPServerRes) Init(init *engine.Init) error
- func (obj *DHCPServerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *DHCPServerRes) Validate() error
- func (obj *DHCPServerRes) Watch() error
- type DiskDevice
- type DockerContainerRes
- func (obj *DockerContainerRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *DockerContainerRes) CheckApply(apply bool) (bool, error)
- func (obj *DockerContainerRes) Close() error
- func (obj *DockerContainerRes) Cmp(r engine.Res) error
- func (obj *DockerContainerRes) Default() engine.Res
- func (obj *DockerContainerRes) Init(init *engine.Init) error
- func (obj *DockerContainerRes) UIDs() []engine.ResUID
- func (obj *DockerContainerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *DockerContainerRes) Validate() error
- func (obj *DockerContainerRes) Watch() error
- type DockerContainerResAutoEdges
- type DockerContainerUID
- type DockerImageRes
- func (obj *DockerImageRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *DockerImageRes) CheckApply(apply bool) (checkOK bool, err error)
- func (obj *DockerImageRes) Close() error
- func (obj *DockerImageRes) Cmp(r engine.Res) error
- func (obj *DockerImageRes) Default() engine.Res
- func (obj *DockerImageRes) Init(init *engine.Init) error
- func (obj *DockerImageRes) UIDs() []engine.ResUID
- func (obj *DockerImageRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *DockerImageRes) Validate() error
- func (obj *DockerImageRes) Watch() error
- type DockerImageUID
- type ExecRes
- func (obj *ExecRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *ExecRes) CheckApply(apply bool) (bool, error)
- func (obj *ExecRes) Close() error
- func (obj *ExecRes) Cmp(r engine.Res) error
- func (obj *ExecRes) Default() engine.Res
- func (obj *ExecRes) Init(init *engine.Init) error
- func (obj *ExecRes) Interrupt() error
- func (obj *ExecRes) Sends() interface{}
- func (obj *ExecRes) UIDs() []engine.ResUID
- func (obj *ExecRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *ExecRes) Validate() error
- func (obj *ExecRes) Watch() error
- type ExecResAutoEdges
- type ExecSends
- type ExecUID
- type FileInfo
- type FileRes
- func (obj *FileRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *FileRes) CheckApply(apply bool) (bool, error)
- func (obj *FileRes) Close() error
- func (obj *FileRes) Cmp(r engine.Res) error
- func (obj *FileRes) CollectPattern(pattern string)
- func (obj *FileRes) Copy() engine.CopyableRes
- func (obj *FileRes) Default() engine.Res
- func (obj *FileRes) GraphQueryAllowed(opts ...engine.GraphQueryableOption) error
- func (obj *FileRes) Init(init *engine.Init) error
- func (obj *FileRes) Reversed() (engine.ReversibleRes, error)
- func (obj *FileRes) UIDs() []engine.ResUID
- func (obj *FileRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *FileRes) Validate() error
- func (obj *FileRes) Watch() error
- type FileResAutoEdges
- type FileUID
- type FilesystemDevice
- type GroupRes
- func (obj *GroupRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *GroupRes) CheckApply(apply bool) (bool, error)
- func (obj *GroupRes) Close() error
- func (obj *GroupRes) Cmp(r engine.Res) error
- func (obj *GroupRes) Default() engine.Res
- func (obj *GroupRes) Init(init *engine.Init) error
- func (obj *GroupRes) UIDs() []engine.ResUID
- func (obj *GroupRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *GroupRes) Validate() error
- func (obj *GroupRes) Watch() error
- type GroupUID
- type HTTPFileRes
- func (obj *HTTPFileRes) CheckApply(apply bool) (bool, error)
- func (obj *HTTPFileRes) Close() error
- func (obj *HTTPFileRes) Cmp(r engine.Res) error
- func (obj *HTTPFileRes) Default() engine.Res
- func (obj *HTTPFileRes) Init(init *engine.Init) error
- func (obj *HTTPFileRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *HTTPFileRes) Validate() error
- func (obj *HTTPFileRes) Watch() error
- type HTTPServerRes
- func (obj *HTTPServerRes) CheckApply(apply bool) (bool, error)
- func (obj *HTTPServerRes) Close() error
- func (obj *HTTPServerRes) Cmp(r engine.Res) error
- func (obj *HTTPServerRes) Copy() engine.CopyableRes
- func (obj *HTTPServerRes) Default() engine.Res
- func (obj *HTTPServerRes) GroupCmp(r engine.GroupableRes) error
- func (obj *HTTPServerRes) Init(init *engine.Init) error
- func (obj *HTTPServerRes) Interrupt() error
- func (obj *HTTPServerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *HTTPServerRes) Validate() error
- func (obj *HTTPServerRes) Watch() error
- type HostnameRes
- func (obj *HostnameRes) CheckApply(apply bool) (bool, error)
- func (obj *HostnameRes) Close() error
- func (obj *HostnameRes) Cmp(r engine.Res) error
- func (obj *HostnameRes) Default() engine.Res
- func (obj *HostnameRes) Init(init *engine.Init) error
- func (obj *HostnameRes) UIDs() []engine.ResUID
- func (obj *HostnameRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *HostnameRes) Validate() error
- func (obj *HostnameRes) Watch() error
- type HostnameUID
- type KVRes
- func (obj *KVRes) CheckApply(apply bool) (bool, error)
- func (obj *KVRes) Close() error
- func (obj *KVRes) Cmp(r engine.Res) error
- func (obj *KVRes) Default() engine.Res
- func (obj *KVRes) Init(init *engine.Init) error
- func (obj *KVRes) Interrupt() error
- func (obj *KVRes) UIDs() []engine.ResUID
- func (obj *KVRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *KVRes) Validate() error
- func (obj *KVRes) Watch() error
- type KVResSkipCmpStyle
- type KVUID
- type MountRes
- func (obj *MountRes) CheckApply(apply bool) (bool, error)
- func (obj *MountRes) Close() error
- func (obj *MountRes) Cmp(r engine.Res) error
- func (obj *MountRes) Default() engine.Res
- func (obj *MountRes) Init(init *engine.Init) error
- func (obj *MountRes) UIDs() []engine.ResUID
- func (obj *MountRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *MountRes) Validate() error
- func (obj *MountRes) Watch() error
- type MountUID
- type MsgRes
- func (obj *MsgRes) CheckApply(apply bool) (bool, error)
- func (obj *MsgRes) Close() error
- func (obj *MsgRes) Cmp(r engine.Res) error
- func (obj *MsgRes) Default() engine.Res
- func (obj *MsgRes) Init(init *engine.Init) error
- func (obj *MsgRes) UIDs() []engine.ResUID
- func (obj *MsgRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *MsgRes) Validate() error
- func (obj *MsgRes) Watch() error
- type MsgUID
- type NetRes
- func (obj *NetRes) CheckApply(apply bool) (bool, error)
- func (obj *NetRes) Close() error
- func (obj *NetRes) Cmp(r engine.Res) error
- func (obj *NetRes) Default() engine.Res
- func (obj *NetRes) Init(init *engine.Init) error
- func (obj *NetRes) UIDs() []engine.ResUID
- func (obj *NetRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *NetRes) Validate() error
- func (obj *NetRes) Watch() error
- type NetUID
- type NetworkDevice
- type NoopRes
- func (obj *NoopRes) CheckApply(apply bool) (bool, error)
- func (obj *NoopRes) Close() error
- func (obj *NoopRes) Cmp(r engine.Res) error
- func (obj *NoopRes) Default() engine.Res
- func (obj *NoopRes) GroupCmp(r engine.GroupableRes) error
- func (obj *NoopRes) Init(init *engine.Init) error
- func (obj *NoopRes) UIDs() []engine.ResUID
- func (obj *NoopRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *NoopRes) Validate() error
- func (obj *NoopRes) Watch() error
- type NoopUID
- type NspawnRes
- func (obj *NspawnRes) CheckApply(apply bool) (bool, error)
- func (obj *NspawnRes) Close() error
- func (obj *NspawnRes) Cmp(r engine.Res) error
- func (obj *NspawnRes) Default() engine.Res
- func (obj *NspawnRes) Init(init *engine.Init) error
- func (obj *NspawnRes) UIDs() []engine.ResUID
- func (obj *NspawnRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *NspawnRes) Validate() error
- func (obj *NspawnRes) Watch() error
- type NspawnUID
- type PasswordRes
- func (obj *PasswordRes) CheckApply(apply bool) (bool, error)
- func (obj *PasswordRes) Close() error
- func (obj *PasswordRes) Cmp(r engine.Res) error
- func (obj *PasswordRes) Default() engine.Res
- func (obj *PasswordRes) Init(init *engine.Init) error
- func (obj *PasswordRes) Sends() interface{}
- func (obj *PasswordRes) UIDs() []engine.ResUID
- func (obj *PasswordRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *PasswordRes) Validate() error
- func (obj *PasswordRes) Watch() error
- type PasswordSends
- type PasswordUID
- type PippetRes
- func (obj *PippetRes) CheckApply(apply bool) (bool, error)
- func (obj *PippetRes) Close() error
- func (obj *PippetRes) Cmp(r engine.Res) error
- func (obj *PippetRes) Default() engine.Res
- func (obj *PippetRes) Init(init *engine.Init) error
- func (obj *PippetRes) UIDs() []engine.ResUID
- func (obj *PippetRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *PippetRes) Validate() error
- func (obj *PippetRes) Watch() error
- type PippetResult
- type PippetRunner
- type PippetUID
- type PkgFileUID
- type PkgRes
- func (obj *PkgRes) Adapts(r engine.CompatibleRes) error
- func (obj *PkgRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *PkgRes) CheckApply(apply bool) (bool, error)
- func (obj *PkgRes) Close() error
- func (obj *PkgRes) Cmp(r engine.Res) error
- func (obj *PkgRes) Copy() engine.CopyableRes
- func (obj *PkgRes) Default() engine.Res
- func (obj *PkgRes) GroupCmp(r engine.GroupableRes) error
- func (obj *PkgRes) Init(init *engine.Init) error
- func (obj *PkgRes) Merge(r engine.CompatibleRes) (engine.CompatibleRes, error)
- func (obj *PkgRes) UIDs() []engine.ResUID
- func (obj *PkgRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *PkgRes) Validate() error
- func (obj *PkgRes) Watch() error
- type PkgResAutoEdges
- type PkgUID
- type PrintRes
- func (obj *PrintRes) CheckApply(apply bool) (bool, error)
- func (obj *PrintRes) Close() error
- func (obj *PrintRes) Cmp(r engine.Res) error
- func (obj *PrintRes) Default() engine.Res
- func (obj *PrintRes) GroupCmp(r engine.GroupableRes) error
- func (obj *PrintRes) Init(init *engine.Init) error
- func (obj *PrintRes) UIDs() []engine.ResUID
- func (obj *PrintRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *PrintRes) Validate() error
- func (obj *PrintRes) Watch() error
- type PrintUID
- type SvcRes
- func (obj *SvcRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *SvcRes) CheckApply(apply bool) (bool, error)
- func (obj *SvcRes) Close() error
- func (obj *SvcRes) Cmp(r engine.Res) error
- func (obj *SvcRes) Default() engine.Res
- func (obj *SvcRes) Init(init *engine.Init) error
- func (obj *SvcRes) UIDs() []engine.ResUID
- func (obj *SvcRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *SvcRes) Validate() error
- func (obj *SvcRes) Watch() error
- type SvcResAutoEdges
- type SvcResAutoEdgesCron
- type SvcUID
- type TFTPFileRes
- func (obj *TFTPFileRes) CheckApply(apply bool) (bool, error)
- func (obj *TFTPFileRes) Close() error
- func (obj *TFTPFileRes) Cmp(r engine.Res) error
- func (obj *TFTPFileRes) Default() engine.Res
- func (obj *TFTPFileRes) Init(init *engine.Init) error
- func (obj *TFTPFileRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *TFTPFileRes) Validate() error
- func (obj *TFTPFileRes) Watch() error
- type TFTPServerRes
- func (obj *TFTPServerRes) CheckApply(apply bool) (bool, error)
- func (obj *TFTPServerRes) Close() error
- func (obj *TFTPServerRes) Cmp(r engine.Res) error
- func (obj *TFTPServerRes) Copy() engine.CopyableRes
- func (obj *TFTPServerRes) Default() engine.Res
- func (obj *TFTPServerRes) GroupCmp(r engine.GroupableRes) error
- func (obj *TFTPServerRes) Init(init *engine.Init) error
- func (obj *TFTPServerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *TFTPServerRes) Validate() error
- func (obj *TFTPServerRes) Watch() error
- type TestRes
- func (obj *TestRes) CheckApply(apply bool) (bool, error)
- func (obj *TestRes) Close() error
- func (obj *TestRes) Cmp(r engine.Res) error
- func (obj *TestRes) Default() engine.Res
- func (obj *TestRes) GroupCmp(r engine.GroupableRes) error
- func (obj *TestRes) Init(init *engine.Init) error
- func (obj *TestRes) Sends() interface{}
- func (obj *TestRes) UIDs() []engine.ResUID
- func (obj *TestRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *TestRes) Validate() error
- func (obj *TestRes) Watch() error
- type TestSends
- type TestUID
- type TimerRes
- func (obj *TimerRes) CheckApply(apply bool) (bool, error)
- func (obj *TimerRes) Close() error
- func (obj *TimerRes) Cmp(r engine.Res) error
- func (obj *TimerRes) Default() engine.Res
- func (obj *TimerRes) Init(init *engine.Init) error
- func (obj *TimerRes) UIDs() []engine.ResUID
- func (obj *TimerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *TimerRes) Validate() error
- func (obj *TimerRes) Watch() error
- type TimerUID
- type UserRes
- func (obj *UserRes) AutoEdges() (engine.AutoEdge, error)
- func (obj *UserRes) CheckApply(apply bool) (bool, error)
- func (obj *UserRes) Close() error
- func (obj *UserRes) Cmp(r engine.Res) error
- func (obj *UserRes) Default() engine.Res
- func (obj *UserRes) Init(init *engine.Init) error
- func (obj *UserRes) UIDs() []engine.ResUID
- func (obj *UserRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *UserRes) Validate() error
- func (obj *UserRes) Watch() error
- type UserResAutoEdges
- type UserUID
- type VirtAuth
- type VirtRes
- func (obj *VirtRes) CheckApply(apply bool) (bool, error)
- func (obj *VirtRes) Close() error
- func (obj *VirtRes) Cmp(r engine.Res) error
- func (obj *VirtRes) Default() engine.Res
- func (obj *VirtRes) Init(init *engine.Init) error
- func (obj *VirtRes) UIDs() []engine.ResUID
- func (obj *VirtRes) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (obj *VirtRes) Validate() error
- func (obj *VirtRes) Watch() error
- type VirtUID
Constants ¶
const ( // AwsPrefix is a const which gets prepended onto object names. We can only use // alphanumeric chars, underscores and hyphens for sns topics and cloud watch rules. AwsPrefix = "_mgmt-" // Ec2Prefix is added to the names of sns and cloudwatch objects. Ec2Prefix = AwsPrefix + "ec2-" // SnsPrefix gets prepended onto the sns topic. SnsPrefix = Ec2Prefix + "sns-" // SnsTopicName is the name of the sns topic created by snsMakeTopic. SnsTopicName = SnsPrefix + "events" // SnsSubscriptionProto is used to tell sns that the subscriber uses the http protocol. // TODO: add https support SnsSubscriptionProto = "http" // SnsServerShutdownTimeout is the maximum number of seconds to wait for the http server to shutdown gracefully. SnsServerShutdownTimeout = 30 // SnsPolicy is the topic attribute that defines the security policy for the topic. SnsPolicy = "Policy" // SnsPolicySid is the friendly name of the policy statement. SnsPolicySid = CwePrefix + "publish" // SnsPolicyEffect allows the action(s) defined in the policy statement. SnsPolicyEffect = "Allow" // SnsPolicyService is the cloudwatch events security principal that we are granting the permission to. SnsPolicyService = "events.amazonaws.com" // SnsPolicyAction is the specific permission we are granting in the policy. SnsPolicyAction = "SNS:Publish" // SnsCertURLRegex is used to make sure we only download certificates // from amazon. This regex will match "https://sns.***.amazonaws.com/" // where *** represents any combination of words and hyphens, and will // match any aws region name, eg: ca-central-1. SnsCertURLRegex = `(^https:\/\/sns\.([\w\-])+\.amazonaws.com\/)` // CwePrefix gets prepended onto the cloudwatch rule name. CwePrefix = Ec2Prefix + "cw-" // CweRuleName is the name of the rule created by makeCloudWatchRule. CweRuleName = CwePrefix + "state" // CweRuleSource describes the resource type to monitor for cloudwatch events. CweRuleSource = "aws.ec2" // CweRuleDetailType describes the specific type of events to trigger cloudwatch. CweRuleDetailType = "EC2 Instance State-change Notification" // CweTargetID is used to tell cloudwatch events to target the sns service. CweTargetID = "sns" // CweTargetJSON is the json field that cloudwatch will send to our endpoint so we don't get more than we need. CweTargetJSON = "$.detail" // AwsErrExceededWaitAttempts is the awserr.Message() that gets sent with // the ResourceStateNotReady awserr.Code() when the waiters time out. AwsErrExceededWaitAttempts = "exceeded wait attempts" // AwsErrIncorrectInstanceState is the error returned when an action // cannot be completed due to the current instance state. AwsErrIncorrectInstanceState = "IncorrectInstanceState" )
const ( // OnCalendar is a systemd-timer trigger, whose behaviour is defined in // 'man systemd-timer', and whose format is defined in the 'Calendar // Events' section of 'man systemd-time'. OnCalendar = "OnCalendar" // OnActiveSec is a systemd-timer trigger, whose behaviour is defined in // 'man systemd-timer', and whose format is a time span as defined in // 'man systemd-time'. OnActiveSec = "OnActiveSec" // OnBootSec is a systemd-timer trigger, whose behaviour is defined in // 'man systemd-timer', and whose format is a time span as defined in // 'man systemd-time'. OnBootSec = "OnBootSec" // OnStartupSec is a systemd-timer trigger, whose behaviour is defined in // 'man systemd-timer', and whose format is a time span as defined in // 'man systemd-time'. OnStartupSec = "OnStartupSec" // OnUnitActiveSec is a systemd-timer trigger, whose behaviour is defined // in 'man systemd-timer', and whose format is a time span as defined in // 'man systemd-time'. OnUnitActiveSec = "OnUnitActiveSec" // OnUnitInactiveSec is a systemd-timer trigger, whose behaviour is defined // in 'man systemd-timer', and whose format is a time span as defined in // 'man systemd-time'. OnUnitInactiveSec = "OnUnitInactiveSec" )
const ( // ContainerRunning is the running container state. ContainerRunning = "running" // ContainerStopped is the stopped container state. ContainerStopped = "stopped" // ContainerRemoved is the removed container state. ContainerRemoved = "removed" )
const ( // KindFile is the kind string used to identify this resource. KindFile = "file" // ParamFileState is the name of the state field parameter. ParamFileState = "state" // FileStateExists is the string that represents that the file should be // present. FileStateExists = "exists" // FileStateAbsent is the string that represents that the file should // not exist. FileStateAbsent = "absent" // FileStateUndefined means the file state has not been specified. // TODO: consider moving to *string and express this state as a nil. FileStateUndefined = "" // FileModeAllowAssign specifies whether we only use ugo=rwx style // assignment (false) or if we also allow ugo+-rwx style too (true). I // think that it's possibly illogical to allow imperative mode // specifiers in a declarative language, so let's leave it off for now. FileModeAllowAssign = false )
const ( // PkgStateInstalled is the string that represents that the package // should be installed. PkgStateInstalled = "installed" // PkgStateUninstalled is the string that represents that the package // should be uninstalled. PkgStateUninstalled = "uninstalled" // PkgStateNewest is the string that represents that the package should // be installed in the newest available version. PkgStateNewest = "newest" )
const ( // TftpDefaultTimeout is the default timeout in seconds for server // connections. TftpDefaultTimeout = 5 // TftpUseSecureJoin specifies that we should add in a "secure join" lib // so that we avoid the ../../etc/passwd and symlink problems. TftpUseSecureJoin = true )
const ( // DefaultMaxCPUs is the default number of possible cpu "slots" used. DefaultMaxCPUs = 32 // MaxShutdownDelayTimeout is the max time we wait for a vm to shutdown. MaxShutdownDelayTimeout = 60 * 5 // seconds // ShortPollInterval is how often we poll when expecting an event. ShortPollInterval = 5 // seconds )
const ( // DHCPDefaultLeaseTime is the default lease time used when one was not // specified explicitly. DHCPDefaultLeaseTime = "10m" // common default from dhcpd )
const ( // HTTPUseSecureJoin specifies that we should add in a "secure join" lib // so that we avoid the ../../etc/passwd and symlink problems. HTTPUseSecureJoin = true )
const (
// IfacePrefix is the prefix used to identify unit files for managed links.
IfacePrefix = "mgmt-"
)
const (
// NS is a namespace for augeas operations
NS = "Xmgmt"
)
Variables ¶
var AwsRegions = []string{
"ap-northeast-1",
"ap-northeast-2",
"ap-south-1",
"ap-southeast-1",
"ap-southeast-2",
"ca-central-1",
"cn-north-1",
"eu-central-1",
"eu-west-1",
"eu-west-2",
"sa-east-1",
"us-east-1",
"us-east-2",
"us-gov-west-1",
"us-west-1",
"us-west-2",
}
AwsRegions is a list of all AWS regions generated using ec2.DescribeRegions. cn-north-1 and us-gov-west-1 are not returned, probably due to security. List available at http://docs.aws.amazon.com/general/latest/gr/rande.html
var ErrResourceInsufficientParameters = errors.New("insufficient parameters for this resource")
ErrResourceInsufficientParameters is returned when the configuration of the resource is insufficient for the resource to do any useful work.
Functions ¶
func ReturnSvcInFileList ¶
ReturnSvcInFileList returns a list of svc names for matches like: `/usr/lib/systemd/system/*.service`.
Types ¶
type AugeasRes ¶
type AugeasRes struct { traits.Base // add the base methods without re-implementation // File is the path to the file targeted by this resource. File string `yaml:"file"` // Lens is the lens used by this resource. If specified, mgmt // will lower the augeas overhead by only loading that lens. Lens string `yaml:"lens"` // Sets is a list of changes that will be applied to the file, in the form of // ["path", "value"]. mgmt will run augeas.Get() before augeas.Set(), to // prevent changing the file when it is not needed. Sets []*AugeasSet `yaml:"sets"` // contains filtered or unexported fields }
AugeasRes is a resource that enables you to use the augeas resource. Currently only allows you to change simple files (e.g sshd_config).
func (*AugeasRes) CheckApply ¶
CheckApply method for Augeas resource.
func (*AugeasRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type AugeasSet ¶
type AugeasSet struct { Path string `yaml:"path"` // The relative path to the value to be changed. Value string `yaml:"value"` // The value to be set on the given Path. }
AugeasSet represents a key/value pair of settings to be applied.
type AwsEc2Res ¶
type AwsEc2Res struct { traits.Base // add the base methods without re-implementation State string `yaml:"state"` // state: running, stopped, terminated Region string `yaml:"region"` // region must match an element of AwsRegions Type string `yaml:"type"` // type of ec2 instance, eg: t2.micro ImageID string `yaml:"imageid"` // imageid must be available on the chosen region WatchEndpoint string `yaml:"watchendpoint"` // the public url of the sns endpoint, eg: http://server:12345/ WatchListenAddr string `yaml:"watchlistenaddr"` // the local address or port that the sns listens on, eg: 10.0.0.0:23456 or 23456 // ErrorOnMalformedPost controls whether or not malformed HTTP post // requests, that cause JSON decoder errors, will also make the engine // shut down. If ErrorOnMalformedPost set to true and an error occurs, // Watch() will return the error and the engine will shut down. ErrorOnMalformedPost bool `yaml:"erroronmalformedpost"` // UserData is used to run bash and cloud-init commands on first launch. // See http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html // for documantation and examples. UserData string `yaml:"userdata"` // store read-only values for send/recv. PublicIPv4 string PrivateIPv4 string InstanceID string // contains filtered or unexported fields }
AwsEc2Res is an AWS EC2 resource. In order to create a client session, your AWS credentials must be present in ~/.aws - For detailed instructions see http://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html
func (*AwsEc2Res) CheckApply ¶
CheckApply method for AwsEc2 resource.
func (*AwsEc2Res) Close ¶
Close cleans up when we're done. This is needed to delete some of the AWS objects created for the SNS endpoint.
func (*AwsEc2Res) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*AwsEc2Res) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type CDRomDevice ¶
type CDRomDevice struct { Source string `lang:"source" yaml:"source"` Type string `lang:"type" yaml:"type"` }
CDRomDevice represents a CDRom device that is attached to the virt machine.
func (*CDRomDevice) Cmp ¶
func (obj *CDRomDevice) Cmp(dev *CDRomDevice) error
Cmp compares two CDRomDevice's and returns an error if they are not equivalent.
func (*CDRomDevice) GetXML ¶
func (obj *CDRomDevice) GetXML(idx int) string
GetXML returns the XML representation of this device.
type ConfigEtcdRes ¶
type ConfigEtcdRes struct { traits.Base // add the base methods without re-implementation // IdealClusterSize is the requested minimum size of the cluster. If you // set this to zero, it will cause a cluster wide shutdown if // AllowSizeShutdown is true. If it's not true, then it will cause a // validation error. IdealClusterSize uint16 `lang:"idealclustersize"` // AllowSizeShutdown is a required safety flag that you must set to true // if you want to allow causing a cluster shutdown by setting // IdealClusterSize to zero. AllowSizeShutdown bool `lang:"allow_size_shutdown"` // contains filtered or unexported fields }
ConfigEtcdRes is a resource that sets mgmt's etcd configuration.
func (*ConfigEtcdRes) CheckApply ¶
func (obj *ConfigEtcdRes) CheckApply(apply bool) (bool, error)
CheckApply method for Noop resource. Does nothing, returns happy!
func (*ConfigEtcdRes) Close ¶
func (obj *ConfigEtcdRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*ConfigEtcdRes) Cmp ¶
func (obj *ConfigEtcdRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*ConfigEtcdRes) Default ¶
func (obj *ConfigEtcdRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*ConfigEtcdRes) Init ¶
func (obj *ConfigEtcdRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*ConfigEtcdRes) Interrupt ¶
func (obj *ConfigEtcdRes) Interrupt() error
Interrupt is called to ask the execution of this resource to end early.
func (*ConfigEtcdRes) UnmarshalYAML ¶
func (obj *ConfigEtcdRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*ConfigEtcdRes) Validate ¶
func (obj *ConfigEtcdRes) Validate() error
Validate if the params passed in are valid data.
func (*ConfigEtcdRes) Watch ¶
func (obj *ConfigEtcdRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type ConsulKVRes ¶
type ConsulKVRes struct { traits.Base // Key is the name of the key. Defaults to the name of the resource. Key string `lang:"key" yaml:"key"` // Value is the value for the key. Value string `lang:"value" yaml:"value"` // Scheme is the URI scheme for the Consul server. Default: http. Scheme string `lang:"scheme" yaml:"scheme"` // Address is the address of the Consul server. Default: 127.0.0.1:8500. Address string `lang:"address" yaml:"address"` // Token is used to provide an ACL token to use for this resource. Token string `lang:"token" yaml:"token"` // contains filtered or unexported fields }
ConsulKVRes is a resource that writes a value into a Consul datastore. The name of the resource can either be the key name, or the concatenation of the server address and the key name: http://127.0.0.1:8500/my-key. If the param keys are specified, then those are used. If the Name cannot be properly parsed by url.Parse, then it will be considered as the Key's value. If the Key is specified explicitly, then we won't use anything from the Name.
func (*ConsulKVRes) CheckApply ¶
func (obj *ConsulKVRes) CheckApply(apply bool) (bool, error)
CheckApply is run to check the state and, if apply is true, to apply the necessary changes to reach the desired state. This is run before Watch and again if Watch finds a change occurring to the state.
func (*ConsulKVRes) Close ¶
func (obj *ConsulKVRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*ConsulKVRes) Cmp ¶
func (obj *ConsulKVRes) Cmp(r engine.Res) error
Cmp compares two resources and return if they are equivalent.
func (*ConsulKVRes) Default ¶
func (obj *ConsulKVRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*ConsulKVRes) Init ¶
func (obj *ConsulKVRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*ConsulKVRes) Validate ¶
func (obj *ConsulKVRes) Validate() error
Validate if the params passed in are valid data.
func (*ConsulKVRes) Watch ¶
func (obj *ConsulKVRes) Watch() error
Watch is the listener and main loop for this resource and it outputs events.
type CronRes ¶
type CronRes struct { traits.Base traits.Edgeable traits.Recvable traits.Refreshable // needed because we embed a svc res // Unit is the name of the systemd service unit. It is only necessary to // set if you want to specify a service with a different name than the // resource. Unit string `yaml:"unit"` // State must be 'exists' or 'absent'. State string `yaml:"state"` // Session, if true, creates the timer as the current user, rather than // root. The service it points to must also be a user unit. It defaults to // false. Session bool `yaml:"session"` // Trigger is the type of timer. Valid types are 'OnCalendar', // 'OnActiveSec'. 'OnBootSec'. 'OnStartupSec'. 'OnUnitActiveSec', and // 'OnUnitInactiveSec'. For more information see 'man systemd.timer'. Trigger string `yaml:"trigger"` // Time must be used with all triggers. For 'OnCalendar', it must be in // the format defined in 'man systemd-time' under the heading 'Calendar // Events'. For all other triggers, time should be a valid time span as // defined in 'man systemd-time' Time string `yaml:"time"` // AccuracySec is the accuracy of the timer in systemd-time time span // format. It defaults to one minute. AccuracySec string `yaml:"accuracysec"` // RandomizedDelaySec delays the timer by a randomly selected, evenly // distributed amount of time between 0 and the specified time value. The // value must be a valid systemd-time time span. RandomizedDelaySec string `yaml:"randomizeddelaysec"` // Persistent, if true, means the time when the service unit was last // triggered is stored on disk. When the timer is activated, the service // unit is triggered immediately if it would have been triggered at least // once during the time when the timer was inactive. It defaults to false. Persistent bool `yaml:"persistent"` // WakeSystem, if true, will cause the system to resume from suspend, // should it be suspended and if the system supports this. It defaults to // false. WakeSystem bool `yaml:"wakesystem"` // RemainAfterElapse, if true, means an elapsed timer will stay loaded, and // its state remains queriable. If false, an elapsed timer unit that cannot // elapse anymore is unloaded. It defaults to true. RemainAfterElapse bool `yaml:"remainafterelapse"` // contains filtered or unexported fields }
CronRes is a systemd-timer cron resource.
func (*CronRes) CheckApply ¶
CheckApply is run to check the state and, if apply is true, to apply the necessary changes to reach the desired state. This is run before Watch and again if Watch finds a change occurring to the state.
func (*CronRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one although some resources can return multiple.
func (*CronRes) UnitFilePath ¶
UnitFilePath returns the path to the systemd-timer unit file.
func (*CronRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type CronUID ¶
type CronUID struct { // NOTE: There is also a name variable in the BaseUID struct, this is // information about where this UID came from, and is unrelated to the // information about the resource we're matching. That data which is // used in the IFF function, is what you see in the struct fields here. engine.BaseUID // contains filtered or unexported fields }
CronUID is a unique resource identifier.
type DHCPHostRes ¶
type DHCPHostRes struct { traits.Base // add the base methods without re-implementation //traits.Edgeable // XXX: add autoedge support traits.Groupable // can be grouped into DHCPServerRes // Server is the name of the dhcp server resource to group this into. If // it is omitted, and there is only a single dhcp resource, then it will // be grouped into it automatically. If there is more than one main dhcp // resource being used, then the grouping behaviour is *undefined* when // this is not specified, and it is not recommended to leave this blank! Server string `lang:"server" yaml:"server"` // Mac is the mac address of the host in lower case and separated with // colons. Mac string `lang:"mac" yaml:"mac"` // IP is the IPv4 address with the CIDR suffix. The suffix is required // because it specifies the netmask to be used in the DHCPv4 protocol. // For example, you might specify 192.0.2.42/24 which represents a mask // of 255.255.255.0 that will be sent. IP string `lang:"ip" yaml:"ip"` // NBP is the network boot program URL. This is used for the tftp server // name and the boot file name. For example, you might use: // tftp://192.0.2.13/pxelinux.0 for a common bios, pxe boot setup. Note // that the "scheme" prefix is required, and that it's impossible to // specify a file that doesn't begin with a leading slash. If you wish // to specify a "root less" file (common for legacy tftp setups) then // you can use this feature in conjunction with the NBPPath parameter. // For DHCPv4, the scheme must be "tftp". NBP string `lang:"nbp" yaml:"nbp"` // NBPPath overrides the path that is sent for the nbp protocols. By // default it is taken from parsing a URL in NBP, but this can override // that. This is useful if you require a path that doesn't start with a // slash. This is sometimes desirable for legacy tftp setups. NBPPath string `lang:"nbp_path" yaml:"nbp_path"` // contains filtered or unexported fields }
DHCPHostRes is a representation of a static host assignment in DHCP.
func (*DHCPHostRes) CheckApply ¶
func (obj *DHCPHostRes) CheckApply(apply bool) (bool, error)
CheckApply never has anything to do for this resource, so it always succeeds.
func (*DHCPHostRes) Close ¶
func (obj *DHCPHostRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*DHCPHostRes) Cmp ¶
func (obj *DHCPHostRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*DHCPHostRes) Default ¶
func (obj *DHCPHostRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*DHCPHostRes) Init ¶
func (obj *DHCPHostRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*DHCPHostRes) UnmarshalYAML ¶
func (obj *DHCPHostRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*DHCPHostRes) Validate ¶
func (obj *DHCPHostRes) Validate() error
Validate checks if the resource data structure was populated correctly.
func (*DHCPHostRes) Watch ¶
func (obj *DHCPHostRes) Watch() error
Watch is the primary listener for this resource and it outputs events. This particular one does absolutely nothing but block until we've received a done signal.
type DHCPServerRes ¶
type DHCPServerRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // TODO: add autoedge support traits.Groupable // can have DHCPHostRes and more, grouped into it // Address is the listen address to use for the dhcp server. It is // common to use `:67` (the standard) to listen on UDP port 67 on all // addresses. Address string `lang:"address" yaml:"address"` // Interface is interface to bind to. For example `eth0` for the common // case. You may leave this field blank to not run any specific binding. // XXX: You need to actually specify an interface here at the moment. :( // BUG: https://github.com/insomniacslk/dhcp/issues/372 Interface string `lang:"interface" yaml:"interface"` // ServerID is a unique IPv4 identifier for this server as specified in // the DHCPv4 protocol. It is almost always the IP address of the DHCP // server. If you don't specify this, then we will attempt to determine // it from the specified interface. If it is set to the empty string, // then this won't be set in the DHCP protocol, and your DHCP server // might not work as you intend. Otherwise, if a valid value is // specified, then this will be used as long as it validates correctly. // Please note that if you attempt to automatically determine this from // the specified interface, then this only happens at runtime when the // first DHCP request needs this or during CheckApply, either of which // could fail if for some reason it is not available. ServerID *string `lang:"serverid" yaml:"serverid"` // LeaseTime is the default lease duration in a format that is parseable // by the golang time.ParseDuration function, for example "60s" or "10m" // or "1h42m13s". If it is unspecified, then a default will be used. If // the empty string is specified, then no lease time will be set in the // DHCP protocol, and your DHCP server might not work as you intend. LeaseTime *string `lang:"leasetime" yaml:"leasetime"` // DNS represents a list of DNS servers to offer to the DHCP client. // XXX: Is it mandatory? https://github.com/insomniacslk/dhcp/issues/359 DNS []string `lang:"dns" yaml:"dns"` // Routers represents a list of routers to offer to the DHCP client. It // is most common to only specify one unless you know what you're doing. Routers []string `lang:"routers" yaml:"routers"` // contains filtered or unexported fields }
DHCPServerRes is a simple dhcp server resource. It responds to dhcp client requests, but does not actually apply any state. The name is used as the address to listen on, unless the Address field is specified, and in that case it is used instead. The resource can offer up dhcp client leases from any number of dhcp:host resources which will get autogrouped into this resource at runtime.
This server is not meant as a featureful replacement for the venerable dhcpd, but rather as a simple, dynamic, integrated alternative for bootstrapping new machines and clusters in an elegant way.
TODO: Add autoedges between the Interface and any identically named NetRes.
func (*DHCPServerRes) CheckApply ¶
func (obj *DHCPServerRes) CheckApply(apply bool) (bool, error)
CheckApply never has anything to do for this resource, so it always succeeds. It does however check that certain runtime requirements (such as the Root dir existing if one was specified) are fulfilled.
func (*DHCPServerRes) Close ¶
func (obj *DHCPServerRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*DHCPServerRes) Cmp ¶
func (obj *DHCPServerRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*DHCPServerRes) Copy ¶
func (obj *DHCPServerRes) Copy() engine.CopyableRes
Copy copies the resource. Don't call it directly, use engine.ResCopy instead. TODO: should this copy internal state?
func (*DHCPServerRes) Default ¶
func (obj *DHCPServerRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*DHCPServerRes) GroupCmp ¶
func (obj *DHCPServerRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not. Can these two resources be merged, aka, does this resource support doing so? Will resource allow itself to be grouped _into_ this obj?
func (*DHCPServerRes) Init ¶
func (obj *DHCPServerRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*DHCPServerRes) UnmarshalYAML ¶
func (obj *DHCPServerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*DHCPServerRes) Validate ¶
func (obj *DHCPServerRes) Validate() error
Validate checks if the resource data structure was populated correctly.
func (*DHCPServerRes) Watch ¶
func (obj *DHCPServerRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type DiskDevice ¶
type DiskDevice struct { Source string `lang:"source" yaml:"source"` Type string `lang:"type" yaml:"type"` }
DiskDevice represents a disk that is attached to the virt machine.
func (*DiskDevice) Cmp ¶
func (obj *DiskDevice) Cmp(dev *DiskDevice) error
Cmp compares two DiskDevice's and returns an error if they are not equivalent.
func (*DiskDevice) GetXML ¶
func (obj *DiskDevice) GetXML(idx int) string
GetXML returns the XML representation of this device.
type DockerContainerRes ¶
type DockerContainerRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // State of the container must be running, stopped, or removed. State string `yaml:"state"` // Image is a docker image, or image:tag. Image string `yaml:"image"` // Cmd is a command, or list of commands to run on the container. Cmd []string `yaml:"cmd"` // Env is a list of environment variables. E.g. ["VAR=val",]. Env []string `yaml:"env"` // Ports is a map of port bindings. E.g. {"tcp" => {80 => 8080},}. Ports map[string]map[int64]int64 `yaml:"ports"` // APIVersion allows you to override the host's default client API // version. APIVersion string `yaml:"apiversion"` // Force, if true, this will destroy and redeploy the container if the // image is incorrect. Force bool `yaml:"force"` // contains filtered or unexported fields }
DockerContainerRes is a docker container resource.
func (*DockerContainerRes) AutoEdges ¶
func (obj *DockerContainerRes) AutoEdges() (engine.AutoEdge, error)
AutoEdges returns edges to any docker:image resource that matches the image specified in the docker:container resource definition.
func (*DockerContainerRes) CheckApply ¶
func (obj *DockerContainerRes) CheckApply(apply bool) (bool, error)
CheckApply method for Docker resource.
func (*DockerContainerRes) Close ¶
func (obj *DockerContainerRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*DockerContainerRes) Cmp ¶
func (obj *DockerContainerRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*DockerContainerRes) Default ¶
func (obj *DockerContainerRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*DockerContainerRes) Init ¶
func (obj *DockerContainerRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*DockerContainerRes) UIDs ¶
func (obj *DockerContainerRes) UIDs() []engine.ResUID
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*DockerContainerRes) UnmarshalYAML ¶
func (obj *DockerContainerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*DockerContainerRes) Validate ¶
func (obj *DockerContainerRes) Validate() error
Validate if the params passed in are valid data.
func (*DockerContainerRes) Watch ¶
func (obj *DockerContainerRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type DockerContainerResAutoEdges ¶
type DockerContainerResAutoEdges struct { UIDs []engine.ResUID // contains filtered or unexported fields }
DockerContainerResAutoEdges holds the state of the auto edge generator.
func (*DockerContainerResAutoEdges) Next ¶
func (obj *DockerContainerResAutoEdges) Next() []engine.ResUID
Next returnes the next automatic edge.
func (*DockerContainerResAutoEdges) Test ¶
func (obj *DockerContainerResAutoEdges) Test(input []bool) bool
Test gets results of the earlier Next() call, & returns if we should continue.
type DockerContainerUID ¶
DockerContainerUID is the UID struct for DockerContainerRes.
type DockerImageRes ¶
type DockerImageRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // State of the image must be exists or absent. State string `yaml:"state"` // APIVersion allows you to override the host's default client API // version. APIVersion string `yaml:"apiversion"` // contains filtered or unexported fields }
DockerImageRes is a docker image resource. The resource's name must be a docker image in any supported format (url, image, or image:tag).
func (*DockerImageRes) AutoEdges ¶
func (obj *DockerImageRes) AutoEdges() (engine.AutoEdge, error)
AutoEdges returns the AutoEdge interface.
func (*DockerImageRes) CheckApply ¶
func (obj *DockerImageRes) CheckApply(apply bool) (checkOK bool, err error)
CheckApply method for Docker resource.
func (*DockerImageRes) Close ¶
func (obj *DockerImageRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*DockerImageRes) Cmp ¶
func (obj *DockerImageRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*DockerImageRes) Default ¶
func (obj *DockerImageRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*DockerImageRes) Init ¶
func (obj *DockerImageRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*DockerImageRes) UIDs ¶
func (obj *DockerImageRes) UIDs() []engine.ResUID
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*DockerImageRes) UnmarshalYAML ¶
func (obj *DockerImageRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*DockerImageRes) Validate ¶
func (obj *DockerImageRes) Validate() error
Validate if the params passed in are valid data.
func (*DockerImageRes) Watch ¶
func (obj *DockerImageRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type DockerImageUID ¶
DockerImageUID is the UID struct for DockerImageRes.
type ExecRes ¶
type ExecRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable traits.Sendable // Cmd is the command to run. If this is not specified, we use the name. Cmd string `yaml:"cmd"` // Args is a list of args to pass to Cmd. This can be used *instead* of // passing the full command and args as a single string to Cmd. It can // only be used when a Shell is *not* specified. The advantage of this // is that you don't have to worry about escape characters. Args []string `yaml:"args"` // Cwd is the dir to run the command in. If empty, then this will use // the working directory of the calling process. (This process is mgmt, // not the process being run here.) Cwd string `yaml:"cwd"` // Shell is the (optional) shell to use to run the cmd. If you specify // this, then you can't use the Args parameter. Shell string `yaml:"shell"` // Timeout is the number of seconds to wait before sending a Kill to the // running command. If the Kill is received before the process exits, // then this be treated as an error. Timeout uint64 `yaml:"timeout"` // Env allows the user to specify environment variables for script // execution. These are taken using a map of format of VAR_NAME -> value. Env map[string]string `yaml:"env"` // Watch is the command to run to detect event changes. Each line of // output from this command is treated as an event. WatchCmd string `yaml:"watchcmd"` // WatchCwd is the Cwd for the WatchCmd. See the docs for Cwd. WatchCwd string `yaml:"watchcwd"` // WatchShell is the Shell for the WatchCmd. See the docs for Shell. WatchShell string `yaml:"watchshell"` // IfCmd is the command that runs to guard against running the Cmd. If // this command succeeds, then Cmd *will* be run. If this command // returns a non-zero result, then the Cmd will not be run. Any error // scenario or timeout will cause the resource to error. IfCmd string `yaml:"ifcmd"` // IfCwd is the Cwd for the IfCmd. See the docs for Cwd. IfCwd string `yaml:"ifcwd"` // IfShell is the Shell for the IfCmd. See the docs for Shell. IfShell string `yaml:"ifshell"` // User is the (optional) user to use to execute the command. It is used // for any command being run. User string `yaml:"user"` // Group is the (optional) group to use to execute the command. It is // used for any command being run. Group string `yaml:"group"` // contains filtered or unexported fields }
ExecRes is an exec resource for running commands.
func (*ExecRes) AutoEdges ¶
AutoEdges returns the AutoEdge interface. In this case the systemd units.
func (*ExecRes) CheckApply ¶
CheckApply checks the resource state and applies the resource if the bool input is true. It returns error info and if the state check passed or not. TODO: expand the IfCmd to be a list of commands
func (*ExecRes) Sends ¶
func (obj *ExecRes) Sends() interface{}
Sends represents the default struct of values we can send using Send/Recv.
func (*ExecRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*ExecRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type ExecResAutoEdges ¶
type ExecResAutoEdges struct {
// contains filtered or unexported fields
}
ExecResAutoEdges holds the state of the auto edge generator.
func (*ExecResAutoEdges) Next ¶
func (obj *ExecResAutoEdges) Next() []engine.ResUID
Next returns the next automatic edge.
func (*ExecResAutoEdges) Test ¶
func (obj *ExecResAutoEdges) Test(input []bool) bool
Test gets results of the earlier Next() call, & returns if we should continue!
type ExecSends ¶
type ExecSends struct { // Output is the combined stdout and stderr of the command. Output *string `lang:"output"` // Stdout is the stdout of the command. Stdout *string `lang:"stdout"` // Stderr is the stderr of the command. Stderr *string `lang:"stderr"` }
ExecSends is the struct of data which is sent after a successful Apply.
type FileInfo ¶
type FileInfo struct { os.FileInfo // embed AbsPath string // smart variant RelPath string // smart variant }
FileInfo is an enhanced variant of the traditional os.FileInfo struct. It can store both the absolute and the relative paths (when built from our ReadDir), and those two paths contain a trailing slash when they refer to a directory.
type FileRes ¶
type FileRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable traits.GraphQueryable // allow others to query this res in the res graph //traits.Groupable // TODO: implement this traits.Recvable traits.Reversible // Path, which defaults to the name if not specified, represents the // destination path for the file or directory being managed. It must be // an absolute path, and as a result must start with a slash. Path string `lang:"path" yaml:"path"` Dirname string `lang:"dirname" yaml:"dirname"` // override the path dirname Basename string `lang:"basename" yaml:"basename"` // override the path basename // State specifies the desired state of the file. It can be either // `exists` or `absent`. If you do not specify this, we will not be able // to create or remove a file if it might be logical for another // param to require that. Instead it will error. This means that this // field is not implied by specifying some content or a mode. State string `lang:"state" yaml:"state"` // Content specifies the file contents to use. If this is nil, they are // left undefined. It cannot be combined with the Source or Fragments // parameters. Content *string `lang:"content" yaml:"content"` // Source specifies the source contents for the file resource. It cannot // be combined with the Content or Fragments parameters. It must be an // absolute path, and it can point to a file or a directory. If it // points to a file, then that will will be copied throuh directly. If // it points to a directory, then it will copy the directory "rsync // style" onto the file destination. As a result, if this is a file, // then the main file res must be a file, and if it is a directory, then // this must be a directory. To meaningfully copy a full directory, you // also need to specify the Recurse parameter, which is currently // required. If you want an existing dir to be turned into a file (or // vice-versa) instead of erroring, then you'll also need to specify the // Force parameter. If source is undefined and the file path is a // directory, then a directory will be created. If left undefined, and // combined with the Purge option too, then any unmanaged file in this // dir will be removed. Source string `lang:"source" yaml:"source"` // Fragments specifies that the file is built from a list of individual // files. If one of the files is a directory, then the list of files in // that directory are the fragments to combine. Multiple of these can be // used together, although most simple cases will probably only either // involve a single directory path or a fixed list of individual files. // All paths are absolute and as a result must start with a slash. The // directories (if any) must end with a slash as well. This cannot be // combined with the Content or Source parameters. If a file with param // is reversed, the reversed file is one that has `Content` set instead. // Automatic edges will be added from these fragments. This currently // isn't recursive in that if a fragment is a directory, this only // searches one level deep at the moment. Fragments []string `lang:"fragments" yaml:"fragments"` // Owner specifies the file owner. You can specify either the string // name, or a string representation of the owner integer uid. Owner string `lang:"owner" yaml:"owner"` // Group specifies the file group. You can specify either the string // name, or a string representation of the group integer gid. Group string `lang:"group" yaml:"group"` // Mode is the mode of the file as a string representation of the octal // form or symbolic form. Mode string `lang:"mode" yaml:"mode"` Recurse bool `lang:"recurse" yaml:"recurse"` Force bool `lang:"force" yaml:"force"` // Purge specifies that when true, any unmanaged file in this file // directory will be removed. As a result, this file resource must be a // directory. This isn't particularly meaningful if you don't also set // Recurse to true. This doesn't work with Content or Fragments. Purge bool `lang:"purge" yaml:"purge"` // contains filtered or unexported fields }
FileRes is a file and directory resource. Dirs are defined by names ending in a slash.
func (*FileRes) AutoEdges ¶
AutoEdges generates a simple linear sequence of each parent directory from the bottom up!
func (*FileRes) CheckApply ¶
CheckApply checks the resource state and applies the resource if the bool input is true. It returns error info and if the state check passed or not.
func (*FileRes) CollectPattern ¶
CollectPattern applies the pattern for collection resources.
func (*FileRes) Copy ¶
func (obj *FileRes) Copy() engine.CopyableRes
Copy copies the resource. Don't call it directly, use engine.ResCopy instead. TODO: should this copy internal state?
func (*FileRes) GraphQueryAllowed ¶
func (obj *FileRes) GraphQueryAllowed(opts ...engine.GraphQueryableOption) error
GraphQueryAllowed returns nil if you're allowed to query the graph. This function accepts information about the requesting resource so we can determine the access with some form of fine-grained control.
func (*FileRes) Reversed ¶
func (obj *FileRes) Reversed() (engine.ReversibleRes, error)
Reversed returns the "reverse" or "reciprocal" resource. This is used to "clean" up after a previously defined resource has been removed.
func (*FileRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*FileRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*FileRes) Watch ¶
Watch is the primary listener for this resource and it outputs events. This one is a file watcher for files and directories. Modify with caution, it is probably important to write some test cases first! If the Watch returns an error, it means that something has gone wrong, and it must be restarted. On a clean exit it returns nil.
type FileResAutoEdges ¶
type FileResAutoEdges struct {
// contains filtered or unexported fields
}
FileResAutoEdges holds the state of the auto edge generator.
func (*FileResAutoEdges) Next ¶
func (obj *FileResAutoEdges) Next() []engine.ResUID
Next returns the next automatic edge.
func (*FileResAutoEdges) Test ¶
func (obj *FileResAutoEdges) Test(input []bool) bool
Test gets results of the earlier Next() call, & returns if we should continue!
type FilesystemDevice ¶
type FilesystemDevice struct { Access string `lang:"access" yaml:"access"` Source string `lang:"source" yaml:"source"` Target string `lang:"target" yaml:"target"` ReadOnly bool `lang:"read_only" yaml:"read_only"` }
FilesystemDevice represents a filesystem that is attached to the virt machine.
func (*FilesystemDevice) Cmp ¶
func (obj *FilesystemDevice) Cmp(dev *FilesystemDevice) error
Cmp compares two FilesystemDevice's and returns an error if they are not equivalent.
func (*FilesystemDevice) GetXML ¶
func (obj *FilesystemDevice) GetXML(idx int) string
GetXML returns the XML representation of this device.
type GroupRes ¶
type GroupRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable State string `yaml:"state"` // state: exists, absent GID *uint32 `yaml:"gid"` // the group's gid // contains filtered or unexported fields }
GroupRes is a user group resource.
func (*GroupRes) CheckApply ¶
CheckApply method for Group resource.
func (*GroupRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*GroupRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type HTTPFileRes ¶
type HTTPFileRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // XXX: add autoedge support traits.Groupable // can be grouped into HTTPServerRes // Server is the name of the http server resource to group this into. If // it is omitted, and there is only a single http resource, then it will // be grouped into it automatically. If there is more than one main http // resource being used, then the grouping behaviour is *undefined* when // this is not specified, and it is not recommended to leave this blank! Server string `lang:"server" yaml:"server"` // Filename is the name of the file this data should appear as on the // http server. Filename string `lang:"filename" yaml:"filename"` // Path is the absolute path to a file that should be used as the source // for this file resource. It must not be combined with the data field. Path string `lang:"path" yaml:"path"` // Data is the file content that should be used as the source for this // file resource. It must not be combined with the path field. // TODO: should this be []byte instead? Data string `lang:"data" yaml:"data"` // contains filtered or unexported fields }
HTTPFileRes is a file that exists within an http server. The name is used as the public path of the file, unless the filename field is specified, and in that case it is used instead. The way this works is that it autogroups at runtime with an existing http resource, and in doing so makes the file associated with this resource available for serving from that http server.
func (*HTTPFileRes) CheckApply ¶
func (obj *HTTPFileRes) CheckApply(apply bool) (bool, error)
CheckApply never has anything to do for this resource, so it always succeeds.
func (*HTTPFileRes) Close ¶
func (obj *HTTPFileRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*HTTPFileRes) Cmp ¶
func (obj *HTTPFileRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*HTTPFileRes) Default ¶
func (obj *HTTPFileRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*HTTPFileRes) Init ¶
func (obj *HTTPFileRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*HTTPFileRes) UnmarshalYAML ¶
func (obj *HTTPFileRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*HTTPFileRes) Validate ¶
func (obj *HTTPFileRes) Validate() error
Validate checks if the resource data structure was populated correctly.
func (*HTTPFileRes) Watch ¶
func (obj *HTTPFileRes) Watch() error
Watch is the primary listener for this resource and it outputs events. This particular one does absolutely nothing but block until we've received a done signal.
type HTTPServerRes ¶
type HTTPServerRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // XXX: add autoedge support traits.Groupable // can have HTTPFileRes grouped into it // Address is the listen address to use for the http server. It is // common to use `:80` (the standard) to listen on TCP port 80 on all // addresses. Address string `lang:"address" yaml:"address"` // Timeout is the maximum duration in seconds to use for unspecified // timeouts. In other words, when this value is specified, it is used as // the value for the other *Timeout values when they aren't used. Put // another way, this makes it easy to set all the different timeouts // with a single parameter. Timeout *uint64 `lang:"timeout" yaml:"timeout"` // ReadTimeout is the maximum duration in seconds for reading during the // http request. If it is zero, then there is no timeout. If this is // unspecified, then the value of Timeout is used instead if it is set. // For more information, see the golang net/http Server documentation. ReadTimeout *uint64 `lang:"read_timeout" yaml:"read_timeout"` // WriteTimeout is the maximum duration in seconds for writing during // the http request. If it is zero, then there is no timeout. If this is // unspecified, then the value of Timeout is used instead if it is set. // For more information, see the golang net/http Server documentation. WriteTimeout *uint64 `lang:"write_timeout" yaml:"write_timeout"` // ShutdownTimeout is the maximum duration in seconds to wait for the // server to shutdown gracefully before calling Close. By default it is // nice to let client connections terminate gracefully, however it might // take longer than we are willing to wait, particularly if one is long // polling or running a very long download. As a result, you can set a // timeout here. The default is zero which means it will wait // indefinitely. The shutdown process can also be cancelled by the // interrupt handler which this resource supports. If this is // unspecified, then the value of Timeout is used instead if it is set. ShutdownTimeout *uint64 `lang:"shutdown_timeout" yaml:"shutdown_timeout"` // Root is the root directory that we should serve files from. If it is // not specified, then it is not used. Any http file resources will have // precedence over anything in here, in case the same path exists twice. // TODO: should we have a flag to determine the precedence rules here? Root string `lang:"root" yaml:"root"` // contains filtered or unexported fields }
HTTPServerRes is an http server resource. It serves files, but does not actually apply any state. The name is used as the address to listen on, unless the Address field is specified, and in that case it is used instead. This resource can offer up files for serving that are specified either inline in this resource by specifying an http root, or as http:file resources which will get autogrouped into this resource at runtime. The two methods can be combined as well.
This server also supports autogrouping some more magical resources into it. For example, the http:flag and http:ui resources add in magic endpoints.
This server is not meant as a featureful replacement for the venerable and modern httpd servers out there, but rather as a simple, dynamic, integrated alternative for bootstrapping new machines and clusters in an elegant way.
TODO: add support for TLS XXX: Add an http:flag resource that lets an http client set a flag somewhere! XXX: Add a http:ui resource that functions can read data from! XXX: The http:ui resource can also take in values from those functions!
func (*HTTPServerRes) CheckApply ¶
func (obj *HTTPServerRes) CheckApply(apply bool) (bool, error)
CheckApply never has anything to do for this resource, so it always succeeds. It does however check that certain runtime requirements (such as the Root dir existing if one was specified) are fulfilled.
func (*HTTPServerRes) Close ¶
func (obj *HTTPServerRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*HTTPServerRes) Cmp ¶
func (obj *HTTPServerRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*HTTPServerRes) Copy ¶
func (obj *HTTPServerRes) Copy() engine.CopyableRes
Copy copies the resource. Don't call it directly, use engine.ResCopy instead. TODO: should this copy internal state?
func (*HTTPServerRes) Default ¶
func (obj *HTTPServerRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*HTTPServerRes) GroupCmp ¶
func (obj *HTTPServerRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not. Can these two resources be merged, aka, does this resource support doing so? Will resource allow itself to be grouped _into_ this obj?
func (*HTTPServerRes) Init ¶
func (obj *HTTPServerRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*HTTPServerRes) Interrupt ¶
func (obj *HTTPServerRes) Interrupt() error
Interrupt is called to ask the execution of this resource to end early. It will cause the server Shutdown to end abruptly instead of leading open client connections terminate gracefully. It does this by causing the server Close method to run.
func (*HTTPServerRes) UnmarshalYAML ¶
func (obj *HTTPServerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*HTTPServerRes) Validate ¶
func (obj *HTTPServerRes) Validate() error
Validate checks if the resource data structure was populated correctly.
func (*HTTPServerRes) Watch ¶
func (obj *HTTPServerRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type HostnameRes ¶
type HostnameRes struct { traits.Base // add the base methods without re-implementation Hostname string `yaml:"hostname"` PrettyHostname string `yaml:"pretty_hostname"` StaticHostname string `yaml:"static_hostname"` TransientHostname string `yaml:"transient_hostname"` // contains filtered or unexported fields }
HostnameRes is a resource that allows setting and watching the hostname.
StaticHostname is the one configured in /etc/hostname or a similar file. It is chosen by the local user. It is not always in sync with the current host name as returned by the gethostname() system call.
TransientHostname is the one configured via the kernel's sethostbyname(). It can be different from the static hostname in case DHCP or mDNS have been configured to change the name based on network information.
PrettyHostname is a free-form UTF8 host name for presentation to the user.
Hostname is the fallback value for all 3 fields above, if only Hostname is specified, it will set all 3 fields to this value.
func (*HostnameRes) CheckApply ¶
func (obj *HostnameRes) CheckApply(apply bool) (bool, error)
CheckApply method for Hostname resource.
func (*HostnameRes) Close ¶
func (obj *HostnameRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*HostnameRes) Cmp ¶
func (obj *HostnameRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*HostnameRes) Default ¶
func (obj *HostnameRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*HostnameRes) Init ¶
func (obj *HostnameRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*HostnameRes) UIDs ¶
func (obj *HostnameRes) UIDs() []engine.ResUID
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*HostnameRes) UnmarshalYAML ¶
func (obj *HostnameRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*HostnameRes) Validate ¶
func (obj *HostnameRes) Validate() error
Validate if the params passed in are valid data.
func (*HostnameRes) Watch ¶
func (obj *HostnameRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type HostnameUID ¶
HostnameUID is the UID struct for HostnameRes.
type KVRes ¶
type KVRes struct { traits.Base // add the base methods without re-implementation //traits.Groupable // TODO: it could be useful to group our writes and watches! traits.Refreshable traits.Recvable // Key represents the key to set. If it is not specified, the Name value // is used instead. Key string `lang:"key" yaml:"key"` // Value represents the string value to set. If this value is nil or, // undefined, then this will delete that key. Value *string `lang:"value" yaml:"value"` // SkipLessThan causes the value to be updated as long as it is greater. SkipLessThan bool `lang:"skiplessthan" yaml:"skiplessthan"` // SkipCmpStyle is the type of compare function used when determining if // the value is greater when using the SkipLessThan parameter. SkipCmpStyle KVResSkipCmpStyle `lang:"skipcmpstyle" yaml:"skipcmpstyle"` // contains filtered or unexported fields }
KVRes is a resource which writes a key/value pair into cluster wide storage. It will ensure that the key is set to the requested value. The one exception is that if you use the SkipLessThan parameter, then it will only replace the stored value with the requested value if it is greater than that stored one. This allows the KV resource to be used in fast acting, finite state machines which have monotonically increasing state values that represent progression. The one exception is that when this resource receives a refresh signal, then it will set the value to be the exact one if they are not identical already.
func (*KVRes) CheckApply ¶
CheckApply method for Password resource. Does nothing, returns happy!
func (*KVRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*KVRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type KVResSkipCmpStyle ¶
type KVResSkipCmpStyle int
KVResSkipCmpStyle represents the different styles of comparison when using SkipLessThan.
const ( SkipCmpStyleInt KVResSkipCmpStyle = iota SkipCmpStyleString )
These are the different allowed comparison styles. Most folks will want SkipCmpStyleInt.
type MountRes ¶
type MountRes struct { traits.Base // State must be exists ot absent. If absent, remaining fields are ignored. State string `yaml:"state"` Device string `yaml:"device"` // location of the device or image Type string `yaml:"type"` // the type of filesystem Options map[string]string `yaml:"options"` // mount options Freq int `yaml:"freq"` // dump frequency PassNo int `yaml:"passno"` // verification order // contains filtered or unexported fields }
MountRes is a systemd mount resource that adds/removes entries from /etc/fstab, and makes sure the defined device is mounted or unmounted accordingly. The mount point is set according to the resource's name.
func (*MountRes) CheckApply ¶
CheckApply is run to check the state and, if apply is true, to apply the necessary changes to reach the desired state. This is run before Watch and again if Watch finds a change occurring to the state.
func (*MountRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one although some resources can return multiple.
func (*MountRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type MsgRes ¶
type MsgRes struct { traits.Base // add the base methods without re-implementation traits.Refreshable Body string `yaml:"body"` Priority string `yaml:"priority"` Fields map[string]string `yaml:"fields"` Journal bool `yaml:"journal"` // enable systemd journal output Syslog bool `yaml:"syslog"` // enable syslog output // contains filtered or unexported fields }
MsgRes is a resource that writes messages to logs.
func (*MsgRes) CheckApply ¶
CheckApply method for Msg resource. Every check leads to an apply, meaning that the message is flushed to the journal.
func (*MsgRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*MsgRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type NetRes ¶
type NetRes struct { traits.Base // add the base methods without re-implementation // State is the desired state of the interface. It can be "up", "down", // or the empty string to leave that unspecified. State string `lang:"state" yaml:"state"` // Addrs is the list of addresses to set on the interface. They must // each be in CIDR notation such as: 192.0.2.42/24 for example. Addrs []string `lang:"addrs" yaml:"addrs"` // Gateway represents the default route to set for the interface. Gateway string `lang:"gateway" yaml:"gateway"` // IPForward is a boolean that sets whether we should forward incoming // packets onward when this is set. It default to unspecified, which // downstream (in the systemd-networkd configuration) defaults to false. // XXX: this could also be "ipv4" or "ipv6", add those as a second option? IPForward *bool `lang:"ip_forward" yaml:"ip_forward"` // contains filtered or unexported fields }
NetRes is a network interface resource based on netlink. It manages the state of a network link. Configuration is also stored in a networkd configuration file, so the network is available upon reboot. The name of the resource is the string representing the network interface name. This could be "eth0" for example.
func (*NetRes) CheckApply ¶
CheckApply is run to check the state and, if apply is true, to apply the necessary changes to reach the desired state. This is run before Watch and again if Watch finds a change occurring to the state.
func (*NetRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one although some resources can return multiple.
func (*NetRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type NetUID ¶
type NetUID struct { // NOTE: There is also a name variable in the BaseUID struct, this is // information about where this UID came from, and is unrelated to the // information about the resource we're matching. That data which is // used in the IFF function, is what you see in the struct fields here. engine.BaseUID // contains filtered or unexported fields }
NetUID is a unique resource identifier.
type NetworkDevice ¶
type NetworkDevice struct { Name string `lang:"name" yaml:"name"` MAC string `lang:"mac" yaml:"mac"` }
NetworkDevice represents a network card that is attached to the virt machine.
func (*NetworkDevice) Cmp ¶
func (obj *NetworkDevice) Cmp(dev *NetworkDevice) error
Cmp compares two NetworkDevice's and returns an error if they are not equivalent.
func (*NetworkDevice) GetXML ¶
func (obj *NetworkDevice) GetXML(idx int) string
GetXML returns the XML representation of this device.
type NoopRes ¶
type NoopRes struct { traits.Base // add the base methods without re-implementation traits.Groupable traits.Refreshable Comment string `lang:"comment" yaml:"comment"` // extra field for example purposes // contains filtered or unexported fields }
NoopRes is a no-op resource that does nothing.
func (*NoopRes) CheckApply ¶
CheckApply method for Noop resource. Does nothing, returns happy!
func (*NoopRes) GroupCmp ¶
func (obj *NoopRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not.
func (*NoopRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*NoopRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type NspawnRes ¶
type NspawnRes struct { traits.Base // add the base methods without re-implementation //traits.Groupable // TODO: this would be quite useful for this resource traits.Refreshable // needed because we embed a svc res State string `yaml:"state"` // contains filtered or unexported fields }
NspawnRes is an nspawn container resource.
func (*NspawnRes) CheckApply ¶
CheckApply is run to check the state and, if apply is true, to apply the necessary changes to reach the desired state. This is run before Watch and again if Watch finds a change occurring to the state.
func (*NspawnRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one although some resources can return multiple.
func (*NspawnRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type NspawnUID ¶
type NspawnUID struct { // NOTE: There is also a name variable in the BaseUID struct, this is // information about where this UID came from, and is unrelated to the // information about the resource we're matching. That data which is // used in the IFF function, is what you see in the struct fields here. engine.BaseUID // contains filtered or unexported fields }
NspawnUID is a unique resource identifier.
type PasswordRes ¶
type PasswordRes struct { traits.Base // add the base methods without re-implementation // TODO: it could be useful to group our tokens into a single write, and // as a result, we save inotify watches too! //traits.Groupable // TODO: this is doable, but probably not very useful traits.Refreshable traits.Sendable // FIXME: is uint16 too big? Length uint16 `yaml:"length"` // number of characters to return Saved bool // this caches the password in the clear locally CheckRecovery bool // recovery from integrity checks by re-generating // contains filtered or unexported fields }
PasswordRes is a no-op resource that returns a random password string.
func (*PasswordRes) CheckApply ¶
func (obj *PasswordRes) CheckApply(apply bool) (bool, error)
CheckApply method for Password resource. Does nothing, returns happy!
func (*PasswordRes) Close ¶
func (obj *PasswordRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*PasswordRes) Cmp ¶
func (obj *PasswordRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*PasswordRes) Default ¶
func (obj *PasswordRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*PasswordRes) Init ¶
func (obj *PasswordRes) Init(init *engine.Init) error
Init runs some startup code for this resource. It generates a new password for this resource if one was not provided. It will save this into a local file. It will load it back in from previous runs.
func (*PasswordRes) Sends ¶
func (obj *PasswordRes) Sends() interface{}
Sends represents the default struct of values we can send using Send/Recv.
func (*PasswordRes) UIDs ¶
func (obj *PasswordRes) UIDs() []engine.ResUID
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*PasswordRes) UnmarshalYAML ¶
func (obj *PasswordRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*PasswordRes) Validate ¶
func (obj *PasswordRes) Validate() error
Validate if the params passed in are valid data.
func (*PasswordRes) Watch ¶
func (obj *PasswordRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type PasswordSends ¶
type PasswordSends struct { // Password is the generated password being sent. Password *string `lang:"password"` // Hashing is the algorithm used for this password. Empty is plain text. Hashing string // TODO: implement me }
PasswordSends is the struct of data which is sent after a successful Apply.
type PasswordUID ¶
PasswordUID is the UID struct for PasswordRes.
type PippetRes ¶
type PippetRes struct { traits.Base // add the base methods without re-implementation traits.Refreshable // Type is the exact name of the wrapped Puppet resource type, e.g. // "file", "mount". This needs not be a core type. It can be a type // from a module. The Puppet installation local to the mgmt agent // machine must be able recognize it. It has to be a native type though, // as opposed to defined types from your Puppet manifest code. Type string `yaml:"type" json:"type"` // Title is used by Puppet as the resource title. Puppet will often // assign special meaning to the title, e.g. use it as the path for a // file resource, or the name of a package. Title string `yaml:"title" json:"title"` // Params is expected to be a hash in YAML format, pairing resource // parameter names with their respective values, e.g. { ensure: present // } Params string `yaml:"params" json:"params"` // contains filtered or unexported fields }
PippetRes is a wrapper resource for puppet. It implements the functional equivalent of an exec resource that calls "puppet resource <type> <title> <params>", but offers superior performance through a long-running Puppet process that receives resources through a pipe (hence the name).
func (*PippetRes) CheckApply ¶
CheckApply synchronizes the resource if required.
func (*PippetRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*PippetRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*PippetRes) Validate ¶
Validate never errors out. We don't know the set of potential types that Puppet supports. Resource names are arbitrary. We cannot really validate the parameter YAML, because we cannot assume that it can be unmarshalled into a map[string]string; Puppet supports complex parameter values.
type PippetResult ¶
PippetResult is the structured return value type for the PippetReceiver's Apply function.
type PippetRunner ¶
type PippetRunner interface { LockApply() UnlockApply() InputStream() io.WriteCloser OutputStream() io.ReadCloser }
PippetRunner is the interface used to communicate with the PippetReceiver object. Its main purpose is dependency injection.
type PkgFileUID ¶
PkgFileUID is the UID struct for PkgRes files.
type PkgRes ¶
type PkgRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable traits.Groupable State string `yaml:"state"` // state: installed, uninstalled, newest, <version> AllowUntrusted bool `yaml:"allowuntrusted"` // allow untrusted packages to be installed? AllowNonFree bool `yaml:"allownonfree"` // allow nonfree packages to be found? AllowUnsupported bool `yaml:"allowunsupported"` // allow unsupported packages to be found? // contains filtered or unexported fields }
PkgRes is a package resource for packagekit.
func (*PkgRes) Adapts ¶
func (obj *PkgRes) Adapts(r engine.CompatibleRes) error
Adapts compares two resources and returns an error if they are not able to be equivalently output compatible.
func (*PkgRes) AutoEdges ¶
AutoEdges produces an object which generates a minimal pkg file optimization sequence of edges.
func (*PkgRes) CheckApply ¶
CheckApply checks the resource state and applies the resource if the bool input is true. It returns error info and if the state check passed or not.
func (*PkgRes) Copy ¶
func (obj *PkgRes) Copy() engine.CopyableRes
Copy copies the resource. Don't call it directly, use engine.ResCopy instead. TODO: should this copy internal state?
func (*PkgRes) GroupCmp ¶
func (obj *PkgRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not. Can these two resources be merged, aka, does this resource support doing so? Will resource allow itself to be grouped _into_ this obj?
func (*PkgRes) Merge ¶
func (obj *PkgRes) Merge(r engine.CompatibleRes) (engine.CompatibleRes, error)
Merge returns the best equivalent of the two resources. They must satisfy the Adapts test for this to work.
func (*PkgRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*PkgRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*PkgRes) Watch ¶
Watch is the primary listener for this resource and it outputs events. It uses the PackageKit UpdatesChanged signal to watch for changes. TODO: https://github.com/hughsie/PackageKit/issues/109 TODO: https://github.com/hughsie/PackageKit/issues/110
type PkgResAutoEdges ¶
type PkgResAutoEdges struct {
// contains filtered or unexported fields
}
PkgResAutoEdges holds the state of the auto edge generator.
func (*PkgResAutoEdges) Next ¶
func (obj *PkgResAutoEdges) Next() []engine.ResUID
Next returns the next automatic edge.
func (*PkgResAutoEdges) Test ¶
func (obj *PkgResAutoEdges) Test(input []bool) bool
Test gets results of the earlier Next() call, & returns if we should continue!
type PrintRes ¶
type PrintRes struct { traits.Base // add the base methods without re-implementation traits.Groupable traits.Recvable traits.Refreshable Msg string `lang:"msg" yaml:"msg"` // the message to display // RefreshOnly is an option that causes the message to be printed only // when notified by another resource. When set to true, this resource // cannot be autogrouped. RefreshOnly bool `lang:"refresh_only" yaml:"refresh_only"` // contains filtered or unexported fields }
PrintRes is a resource that is useful for printing a message to the screen. It will also display a message when it receives a notification. It supports automatic grouping.
func (*PrintRes) CheckApply ¶
CheckApply method for Print resource. Does nothing, returns happy!
func (*PrintRes) GroupCmp ¶
func (obj *PrintRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not.
func (*PrintRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*PrintRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type SvcRes ¶
type SvcRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable traits.Groupable traits.Refreshable State string `yaml:"state"` // state: running, stopped, undefined Startup string `yaml:"startup"` // enabled, disabled, undefined Session bool `yaml:"session"` // user session (true) or system? // contains filtered or unexported fields }
SvcRes is a service resource for systemd units.
func (*SvcRes) AutoEdges ¶
AutoEdges returns the AutoEdge interface. In this case, systemd unit file resources and cron (systemd-timer) resources.
func (*SvcRes) CheckApply ¶
CheckApply checks the resource state and applies the resource if the bool input is true. It returns error info and if the state check passed or not.
func (*SvcRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*SvcRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type SvcResAutoEdges ¶
type SvcResAutoEdges struct {
// contains filtered or unexported fields
}
SvcResAutoEdges holds the state of the auto edge generator.
func (*SvcResAutoEdges) Next ¶
func (obj *SvcResAutoEdges) Next() []engine.ResUID
Next returns the next automatic edge.
func (*SvcResAutoEdges) Test ¶
func (obj *SvcResAutoEdges) Test(input []bool) bool
Test gets results of the earlier Next() call, & returns if we should continue!
type SvcResAutoEdgesCron ¶
type SvcResAutoEdgesCron struct {
// contains filtered or unexported fields
}
SvcResAutoEdgesCron holds the state of the svc -> cron auto edge generator.
func (*SvcResAutoEdgesCron) Next ¶
func (obj *SvcResAutoEdgesCron) Next() []engine.ResUID
Next returns the next automatic edge.
func (*SvcResAutoEdgesCron) Test ¶
func (obj *SvcResAutoEdgesCron) Test([]bool) bool
Test takes the output of the last call to Next() and outputs true if we should continue.
type SvcUID ¶
type SvcUID struct { // NOTE: there is also a name variable in the BaseUID struct, this is // information about where this UID came from, and is unrelated to the // information about the resource we're matching. That data which is // used in the IFF function, is what you see in the struct fields here. engine.BaseUID // contains filtered or unexported fields }
SvcUID is the UID struct for SvcRes.
type TFTPFileRes ¶
type TFTPFileRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // XXX: add autoedge support traits.Groupable // can be grouped into TFTPServerRes // Server is the name of the tftp server resource to group this into. If // it is omitted, and there is only a single tftp resource, then it will // be grouped into it automatically. If there is more than one main tftp // resource being used, then the grouping behaviour is *undefined* when // this is not specified, and it is not recommended to leave this blank! Server string `lang:"server" yaml:"server"` // Filename is the name of the file this data should appear as on the // tftp server. Filename string `lang:"filename" yaml:"filename"` // Path is the absolute path to a file that should be used as the source // for this file resource. It must not be combined with the data field. Path string `lang:"path" yaml:"path"` // Data is the file content that should be used as the source for this // file resource. It must not be combined with the path field. // TODO: should this be []byte instead? Data string `lang:"data" yaml:"data"` // contains filtered or unexported fields }
TFTPFileRes is a file that exists within a tftp server. The name is used as the public path of the file, unless the filename field is specified, and in that case it is used instead. The way this works is that it autogroups at runtime with an existing tftp resource, and in doing so makes the file associated with this resource available for serving from that tftp server.
func (*TFTPFileRes) CheckApply ¶
func (obj *TFTPFileRes) CheckApply(apply bool) (bool, error)
CheckApply never has anything to do for this resource, so it always succeeds.
func (*TFTPFileRes) Close ¶
func (obj *TFTPFileRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*TFTPFileRes) Cmp ¶
func (obj *TFTPFileRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*TFTPFileRes) Default ¶
func (obj *TFTPFileRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*TFTPFileRes) Init ¶
func (obj *TFTPFileRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*TFTPFileRes) UnmarshalYAML ¶
func (obj *TFTPFileRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*TFTPFileRes) Validate ¶
func (obj *TFTPFileRes) Validate() error
Validate checks if the resource data structure was populated correctly.
func (*TFTPFileRes) Watch ¶
func (obj *TFTPFileRes) Watch() error
Watch is the primary listener for this resource and it outputs events. This particular one does absolutely nothing but block until we've received a done signal.
type TFTPServerRes ¶
type TFTPServerRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable // XXX: add autoedge support traits.Groupable // can have TFTPFileRes grouped into it // Address is the listen address to use for the tftp server. It is // common to use `:69` (the standard) to listen on UDP port 69 on all // addresses. Address string `lang:"address" yaml:"address"` // Timeout is the timeout in seconds to use for server connections. Timeout uint64 `lang:"timeout" yaml:"timeout"` // Root is the root directory that we should serve files from. If it is // not specified, then it is not used. Any tftp file resources will have // precedence over anything in here, in case the same path exists twice. // TODO: should we have a flag to determine the precedence rules here? Root string `lang:"root" yaml:"root"` // contains filtered or unexported fields }
TFTPServerRes is a tftp server resource. It serves files, but does not actually apply any state. The name is used as the address to listen on, unless the Address field is specified, and in that case it is used instead. This resource can offer up files for serving that are specified either inline in this resource by specifying a tftp root, or as tftp:file resources which will get autogrouped into this resource at runtime. The two methods can be combined as well.
func (*TFTPServerRes) CheckApply ¶
func (obj *TFTPServerRes) CheckApply(apply bool) (bool, error)
CheckApply never has anything to do for this resource, so it always succeeds. It does however check that certain runtime requirements (such as the Root dir existing if one was specified) are fulfilled.
func (*TFTPServerRes) Close ¶
func (obj *TFTPServerRes) Close() error
Close is run by the engine to clean up after the resource is done.
func (*TFTPServerRes) Cmp ¶
func (obj *TFTPServerRes) Cmp(r engine.Res) error
Cmp compares two resources and returns an error if they are not equivalent.
func (*TFTPServerRes) Copy ¶
func (obj *TFTPServerRes) Copy() engine.CopyableRes
Copy copies the resource. Don't call it directly, use engine.ResCopy instead. TODO: should this copy internal state?
func (*TFTPServerRes) Default ¶
func (obj *TFTPServerRes) Default() engine.Res
Default returns some sensible defaults for this resource.
func (*TFTPServerRes) GroupCmp ¶
func (obj *TFTPServerRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not. Can these two resources be merged, aka, does this resource support doing so? Will resource allow itself to be grouped _into_ this obj?
func (*TFTPServerRes) Init ¶
func (obj *TFTPServerRes) Init(init *engine.Init) error
Init runs some startup code for this resource.
func (*TFTPServerRes) UnmarshalYAML ¶
func (obj *TFTPServerRes) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
func (*TFTPServerRes) Validate ¶
func (obj *TFTPServerRes) Validate() error
Validate checks if the resource data structure was populated correctly.
func (*TFTPServerRes) Watch ¶
func (obj *TFTPServerRes) Watch() error
Watch is the primary listener for this resource and it outputs events.
type TestRes ¶
type TestRes struct { traits.Base // add the base methods without re-implementation traits.Groupable traits.Refreshable traits.Sendable traits.Recvable Bool bool `lang:"bool" yaml:"bool"` Str string `lang:"str" yaml:"str"` // can't name it String because of String() Int int `lang:"int" yaml:"int"` Int8 int8 `lang:"int8" yaml:"int8"` Int16 int16 `lang:"int16" yaml:"int16"` Int32 int32 `lang:"int32" yaml:"int32"` Int64 int64 `lang:"int64" yaml:"int64"` Uint uint `lang:"uint" yaml:"uint"` Uint8 uint8 `lang:"uint8" yaml:"uint8"` Uint16 uint16 `lang:"uint16" yaml:"uint16"` Uint32 uint32 `lang:"uint32" yaml:"uint32"` Uint64 uint64 `lang:"uint64" yaml:"uint64"` //Uintptr uintptr `yaml:"uintptr"` Byte byte `lang:"byte" yaml:"byte"` // alias for uint8 Rune rune `lang:"rune" yaml:"rune"` // alias for int32, represents a Unicode code point Float32 float32 `lang:"float32" yaml:"float32"` Float64 float64 `lang:"float64" yaml:"float64"` Complex64 complex64 `lang:"complex64" yaml:"complex64"` Complex128 complex128 `lang:"complex128" yaml:"complex128"` BoolPtr *bool `lang:"boolptr" yaml:"bool_ptr"` StringPtr *string `lang:"stringptr" yaml:"string_ptr"` // TODO: tag name? Int64Ptr *int64 `lang:"int64ptr" yaml:"int64ptr"` Int8Ptr *int8 `lang:"int8ptr" yaml:"int8ptr"` Uint8Ptr *uint8 `lang:"uint8ptr" yaml:"uint8ptr"` // probably makes no sense, but is legal Int8PtrPtrPtr ***int8 `lang:"int8ptrptrptr" yaml:"int8ptrptrptr"` SliceString []string `lang:"slicestring" yaml:"slicestring"` MapIntFloat map[int64]float64 `lang:"mapintfloat" yaml:"mapintfloat"` MixedStruct struct { // contains filtered or unexported fields } `lang:"mixedstruct" yaml:"mixedstruct"` Interface interface{} `lang:"interface" yaml:"interface"` AnotherStr string `lang:"anotherstr" yaml:"anotherstr"` ValidateBool bool `lang:"validatebool" yaml:"validate_bool"` // set to true to cause a validate error ValidateError string `lang:"validateerror" yaml:"validate_error"` // set to cause a validate error AlwaysGroup bool `lang:"alwaysgroup" yaml:"always_group"` // set to true to cause auto grouping CompareFail bool `lang:"comparefail" yaml:"compare_fail"` // will compare fail? SendValue string `lang:"sendvalue" yaml:"send_value"` // what value should we send? Comment string `lang:"comment" yaml:"comment"` // contains filtered or unexported fields }
TestRes is a resource that is mostly harmless and is used for internal tests.
func (*TestRes) CheckApply ¶
CheckApply method for Test resource. Does nothing, returns happy!
func (*TestRes) GroupCmp ¶
func (obj *TestRes) GroupCmp(r engine.GroupableRes) error
GroupCmp returns whether two resources can be grouped together or not.
func (*TestRes) Sends ¶
func (obj *TestRes) Sends() interface{}
Sends represents the default struct of values we can send using Send/Recv.
func (*TestRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*TestRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type TestSends ¶
type TestSends struct { // Hello is some value being sent. Hello *string `lang:"hello"` Answer int `lang:"answer"` // some other value being sent }
TestSends is the struct of data which is sent after a successful Apply.
type TimerRes ¶
type TimerRes struct { traits.Base // add the base methods without re-implementation traits.Refreshable Interval uint32 `yaml:"interval"` // interval between runs in seconds // contains filtered or unexported fields }
TimerRes is a timer resource for time based events. It outputs an event every interval seconds.
func (*TimerRes) CheckApply ¶
CheckApply method for Timer resource. Triggers a timer reset on notify.
func (*TimerRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*TimerRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type UserRes ¶
type UserRes struct { traits.Base // add the base methods without re-implementation traits.Edgeable State string `yaml:"state"` // state: exists, absent UID *uint32 `yaml:"uid"` // uid must be unique unless AllowDuplicateUID is true GID *uint32 `yaml:"gid"` // gid of the user's primary group Group *string `yaml:"group"` // name of the user's primary group Groups []string `yaml:"groups"` // list of supplemental groups HomeDir *string `yaml:"homedir"` // path to the user's home directory AllowDuplicateUID bool `yaml:"allowduplicateuid"` // allow duplicate uid // contains filtered or unexported fields }
UserRes is a user account resource.
func (*UserRes) AutoEdges ¶
AutoEdges returns edges from the user resource to each group found in its definition. The groups can be in any of the three applicable fields (GID, Group and Groups.) If the user exists, reversed ensures the edge goes from group to user, and if the user is absent the edge goes from user to group. This ensures that we don't add users to groups that don't exist or delete groups before we delete their members.
func (*UserRes) CheckApply ¶
CheckApply method for User resource.
func (*UserRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*UserRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
type UserResAutoEdges ¶
UserResAutoEdges holds the state of the auto edge generator.
func (*UserResAutoEdges) Next ¶
func (obj *UserResAutoEdges) Next() []engine.ResUID
Next returns the next automatic edge.
func (*UserResAutoEdges) Test ¶
func (obj *UserResAutoEdges) Test(input []bool) bool
Test gets results of the earlier Next() call, & returns if we should continue.
type VirtAuth ¶
type VirtAuth struct { Username string `lang:"username" yaml:"username"` Password string `lang:"password" yaml:"password"` }
VirtAuth is used to pass credentials to libvirt.
type VirtRes ¶
type VirtRes struct { traits.Base // add the base methods without re-implementation traits.Refreshable // URI is the libvirt connection URI, eg: `qemu:///session`. URI string `lang:"uri" yaml:"uri"` // State is the desired vm state. Possible values include: `running`, // `paused` and `shutoff`. State string `lang:"state" yaml:"state"` // Transient is whether the vm is defined (false) or undefined (true). Transient bool `lang:"transient" yaml:"transient"` // CPUs is the desired cpu count of the machine. CPUs uint `lang:"cpus" yaml:"cpus"` // MaxCPUs is the maximum number of cpus allowed in the machine. You // need to set this so that on boot the `hardware` knows how many cpu // `slots` it might need to make room for. MaxCPUs uint `lang:"maxcpus" yaml:"maxcpus"` // HotCPUs specifies whether we can hot plug and unplug cpus. HotCPUs bool `lang:"hotcpus" yaml:"hotcpus"` // Memory is the size in KBytes of memory to include in the machine. Memory uint64 `lang:"memory" yaml:"memory"` // OSInit is the init used by lxc. OSInit string `lang:"osinit" yaml:"osinit"` // Boot is the boot order. Values are `fd`, `hd`, `cdrom` and `network`. Boot []string `lang:"boot" yaml:"boot"` // Disk is the list of disk devices to include. Disk []*DiskDevice `lang:"disk" yaml:"disk"` // CdRom is the list of cdrom devices to include. CDRom []*CDRomDevice `lang:"cdrom" yaml:"cdrom"` // Network is the list of network devices to include. Network []*NetworkDevice `lang:"network" yaml:"network"` // Filesystem is the list of file system devices to include. Filesystem []*FilesystemDevice `lang:"filesystem" yaml:"filesystem"` // Auth points to the libvirt credentials to use if any are necessary. Auth *VirtAuth `lang:"auth" yaml:"auth"` // RestartOnDiverge is the restart policy, and can be: `ignore`, // `ifneeded` or `error`. RestartOnDiverge string `lang:"restartondiverge" yaml:"restartondiverge"` // RestartOnRefresh specifies if we restart on refresh signal. RestartOnRefresh bool `lang:"restartonrefresh" yaml:"restartonrefresh"` // contains filtered or unexported fields }
VirtRes is a libvirt resource. A transient virt resource, which has its state set to `shutoff` is one which does not exist. The parallel equivalent is a file resource which removes a particular path. TODO: some values inside here should be enum's!
func (*VirtRes) CheckApply ¶
CheckApply checks the resource state and applies the resource if the bool input is true. It returns error info and if the state check passed or not.
func (*VirtRes) UIDs ¶
UIDs includes all params to make a unique identification of this object. Most resources only return one, although some resources can return multiple.
func (*VirtRes) UnmarshalYAML ¶
UnmarshalYAML is the custom unmarshal handler for this struct. It is primarily useful for setting the defaults.
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
Package packagekit provides an interface to interact with packagekit.
|
Package packagekit provides an interface to interact with packagekit. |