Documentation
¶
Index ¶
- Constants
- Variables
- func NewPool(address, password string) *redis.Pool
- type A
- type AggregatorManager
- type AggregatorMgr
- type BlockDevice
- type BtrfsFS
- type BtrfsManager
- type CPUStats
- type Client
- type Command
- type ContainerCreateAguments
- type ContainerInfo
- type ContainerManager
- type ContainerResult
- type CoreManager
- type DiskManager
- type DiskStats
- type Disks
- type File
- type FilesystemManager
- type InfoManager
- type Job
- type JobId
- type JobStats
- type KvmManager
- type Network
- type NetworkConfig
- type Nic
- type Option
- type Process
- type ProcessId
- type Result
- type State
- type Streams
- type Tags
- type VCpu
- type VM
- type VMInfo
- type ZerotierItem
- type ZerotierManager
- type ZerotierRoute
Constants ¶
View Source
const ( CommandsQueue = "core:default" ResultNoTimeout = 0 ResultDefaultTimeout = 10 )
View Source
const ( //StateSuccess successs exit status StateSuccess = State("SUCCESS") //StateError error exist status StateError = State("ERROR") //StateTimeout timeout exit status StateTimeout = State("TIMEOUT") //StateKilled killed exit status StateKilled = State("KILLED") //StateUnknownCmd unknown cmd exit status StateUnknownCmd = State("UNKNOWN_CMD") //StateDuplicateID dublicate id exit status StateDuplicateID = State("DUPILICATE_ID") LevelJson = 20 )
Variables ¶
View Source
var (
NotFound = fmt.Errorf("not found")
)
Functions ¶
Types ¶
type AggregatorManager ¶
type AggregatorManager interface {
Query() (interface{}, error)
}
func Aggregator ¶
func Aggregator(cl Client) AggregatorManager
type AggregatorMgr ¶
type AggregatorMgr struct {
Client
}
func (*AggregatorMgr) Query ¶
func (b *AggregatorMgr) Query() (interface{}, error)
type BlockDevice ¶
type BlockDevice struct {
Name string `json:"name"`
Kname string `json:"kname"`
MajMin string `json:"maj:min"`
Fstype string `json:"fstype"`
Mountpoint string `json:"mountpoint"`
Label string `json:"label"`
UUID string `json:"uuid"`
Parttype string `json:"parttype"`
Partlabel string `json:"partlabel"`
Partuuid string `json:"partuuid"`
Partflags string `json:"partflags"`
Ra string `json:"ra"`
Ro string `json:"ro"`
Rm string `json:"rm"`
Hotplug string `json:"hotplug"`
Model string `json:"model"`
Serial string `json:"serial"`
Size string `json:"size"`
State string `json:"state"`
Owner string `json:"owner"`
Group string `json:"group"`
Mode string `json:"mode"`
Alignment string `json:"alignment"`
MinIo string `json:"min-io"`
OptIo string `json:"opt-io"`
PhySec string `json:"phy-sec"`
LogSec string `json:"log-sec"`
Rota string `json:"rota"`
Sched string `json:"sched"`
RqSize string `json:"rq-size"`
Type string `json:"type"`
DiscAln string `json:"disc-aln"`
DiscGran string `json:"disc-gran"`
DiscMax string `json:"disc-max"`
DiscZero string `json:"disc-zero"`
Wsame string `json:"wsame"`
Wwn string `json:"wwn"`
Rand string `json:"rand"`
Pkname string `json:"pkname"`
Hctl string `json:"hctl"`
Tran string `json:"tran"`
Subsystems string `json:"subsystems"`
Rev string `json:"rev"`
Vendor string `json:"vendor"`
Children []BlockDevice `json:"children"`
}
type BtrfsManager ¶
func Btrfs ¶
func Btrfs(cl Client) BtrfsManager
type CPUStats ¶
type CPUStats struct {
GuestNice float64 `json:"guestnice"`
Idle float64 `json:"idle"`
IoWait float64 `json:"iowait"`
Irq float64 `json:"irq"`
Nice float64 `json:"nice"`
SoftIrq float64 `json:"softirq"`
Steal float64 `json:"steal"`
Stolen float64 `json:"stolen"`
System float64 `json:"system"`
User float64 `json:"user"`
}
type Client ¶
type Client interface {
Raw(command string, args A, opts ...Option) (JobId, error)
Result(job JobId, timeout ...int) (*Result, error)
Exists(job JobId) bool
ResultNonBlock(job JobId) (*Result, error)
}
func NewClientWithPool ¶
type Command ¶
type Command struct {
ID string `json:"id"`
Command string `json:"command"`
Arguments A `json:"arguments"`
Queue string `json:"queue"`
StatsInterval int `json:"stats_interval,omitempty"`
MaxTime int `json:"max_time,omitempty"`
MaxRestart int `json:"max_restart,omitempty"`
RecurringPeriod int `json:"recurring_period,omitempty"`
LogLevels []int `json:"log_levels,omitempty"`
Tags Tags `json:"tags"`
}
type ContainerCreateAguments ¶
type ContainerCreateAguments struct {
Root string `json:"root"` //Root plist
Mount map[string]string `json:"mount"` //data disk mounts.
HostNetwork bool `json:"host_network"` //share host networking stack
Nics []Nic `json:"nics"` //network setup (only respected if HostNetwork is false)
Port map[int]int `json:"port"` //port forwards (only if default networking is enabled)
Hostname string `json:"hostname"` //hostname
Storage string `json:"storage"` //ardb storage needed for g8ufs mounts.
Tags []string `json:"tags"` //for searching containers
}
type ContainerInfo ¶
type ContainerInfo struct {
Arguments ContainerCreateAguments `json:"arguments"`
Pid int `json:"pid"`
Root string `json:"root"`
}
type ContainerManager ¶
type ContainerManager interface {
Client(id int) Client
List() (map[int16]ContainerResult, error)
}
func Container ¶
func Container(cl Client) ContainerManager
type ContainerResult ¶
type ContainerResult struct {
Container ContainerInfo `json:"container"`
CPU int `json:"cpu"`
Swap int `json:"swap"`
RSS int `json:"ress"`
}
type CoreManager ¶
type CoreManager interface {
System(cmd string, env map[string]string, cwd string, stdin string, opt ...Option) (JobId, error)
SystemArgs(cmd string, args []string, env map[string]string, cwd string, stdin string, opt ...Option) (JobId, error)
Bash(bash string, stdin string, opt ...Option) (JobId, error)
Ping() error
Jobs() ([]Job, error)
Job(job JobId) (*Job, error)
KillJob(job JobId, signal syscall.Signal) error
KillAllJobs() error
Process(pid ProcessId) (*Process, error)
ProcessAlive(pid ProcessId) (bool, error)
Processes() ([]Process, error)
KillProcess(pid ProcessId, signal syscall.Signal) error
State() (*JobStats, error)
}
func Core ¶
func Core(client Client) CoreManager
type DiskManager ¶
func Disk ¶
func Disk(cl Client) DiskManager
type Disks ¶
type Disks struct {
BlockDevices []BlockDevice `json:"blockdevices"`
}
type FilesystemManager ¶
type FilesystemManager interface {
Upload(reader io.Reader, p string) error
Download(p string, writer io.Writer) error
Remove(p string) error
Exists(p string) (bool, error)
}
func Filesystem ¶
func Filesystem(client Client) FilesystemManager
type InfoManager ¶
type InfoManager interface {
CPU() ([]cpu.InfoStat, error)
Mem() (mem.VirtualMemoryStat, error)
Nic() ([]net.InterfaceStat, error)
Disk() ([]disk.PartitionStat, error)
OS() (host.InfoStat, error)
}
func Info ¶
func Info(cl Client) InfoManager
type KvmManager ¶
func Kvm ¶
func Kvm(cl Client) KvmManager
type NetworkConfig ¶
type Nic ¶
type Nic struct {
Type string `json:"type"`
ID string `json:"id"`
HWAddress string `json:"hwaddr"`
Config NetworkConfig `json:"config"`
}
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
func MaxRestart ¶
func RecurringPeriod ¶
type Result ¶
type Result struct {
ID string `json:"id"`
Command string `json:"command"`
Data string `json:"data"`
Streams Streams `json:"streams,omitempty"`
Critical string `json:"critical,omitempty"`
Level int `json:"level"`
State State `json:"state"`
Code uint32 `json:"code"`
StartTime int64 `json:"starttime"`
Time int64 `json:"time"`
Tags string `json:"tags"`
Container uint64 `json:"container"`
}
type ZerotierItem ¶
type ZerotierItem struct {
Nwid string `json:"nwid"`
Name string `json:"name"`
Status string `json:"status"`
Type string `json:"type"`
AllowDefault bool `json:"allowDefault"`
AllowGlobal bool `json:"allowGlobal"`
AllowManaged bool `json:"allowManaged"`
Bridge bool `json:"bridge"`
BroadcastEnabled bool `json:"broadcastEnabled"`
DHCP bool `json:"dhcp"`
ID string `json:"id"`
Mac string `json:"mac"`
Mtu uint64 `json:"mtu"`
NetConfRevision uint64 `json:"netconfRevision"`
PortDeviceName string `json:"portDeviceName"`
PortError uint8 `json:"portError"`
AssignedAddresses []string `json:"assignedAddresses"`
}
type ZerotierManager ¶
type ZerotierManager interface {
List() ([]ZerotierItem, error)
}
func Zerotier ¶
func Zerotier(cl Client) ZerotierManager
Click to show internal directories.
Click to hide internal directories.