forked from TrueCloudLab/lego
100 lines
7.7 KiB
Go
100 lines
7.7 KiB
Go
|
package egoscale
|
||
|
|
||
|
import (
|
||
|
"net"
|
||
|
)
|
||
|
|
||
|
// Host represents the Hypervisor
|
||
|
type Host struct {
|
||
|
Capabilities string `json:"capabilities,omitempty" doc:"capabilities of the host"`
|
||
|
ClusterID *UUID `json:"clusterid,omitempty" doc:"the cluster ID of the host"`
|
||
|
ClusterName string `json:"clustername,omitempty" doc:"the cluster name of the host"`
|
||
|
ClusterType string `json:"clustertype,omitempty" doc:"the cluster type of the cluster that host belongs to"`
|
||
|
CPUAllocated int64 `json:"cpuallocated,omitempty" doc:"the amount of the host's CPU currently allocated"`
|
||
|
CPUNumber int `json:"cpunumber,omitempty" doc:"the CPU number of the host"`
|
||
|
CPUSockets int `json:"cpusockets,omitempty" doc:"the number of CPU sockets on the host"`
|
||
|
CPUSpeed int64 `json:"cpuspeed,omitempty" doc:"the CPU speed of the host"`
|
||
|
CPUUsed int64 `json:"cpuused,omitempty" doc:"the amount of the host's CPU currently used"`
|
||
|
CPUWithOverProvisioning int64 `json:"cpuwithoverprovisioning,omitempty" doc:"the amount of the host's CPU after applying the cpu.overprovisioning.factor"`
|
||
|
Created string `json:"created,omitempty" doc:"the date and time the host was created"`
|
||
|
Disconnected string `json:"disconnected,omitempty" doc:"true if the host is disconnected. False otherwise."`
|
||
|
DiskSizeAllocated int64 `json:"disksizeallocated,omitempty" doc:"the host's or host storage pool's currently allocated disk size"`
|
||
|
DiskSizeTotal int64 `json:"disksizetotal,omitempty" doc:"the total disk size of the host or host storage pool"`
|
||
|
DiskSizeUsed int64 `json:"disksizeused,omitempty" doc:"the host's or host storage pool's currently used disk size"`
|
||
|
DiskWithOverProvisioning int64 `json:"diskwithoverprovisioning,omitempty" doc:"the total disk size of the host or host storage pool with over provisioning factor"`
|
||
|
Events string `json:"events,omitempty" doc:"events available for the host"`
|
||
|
HAHost *bool `json:"hahost,omitempty" doc:"true if the host is Ha host (dedicated to vms started by HA process; false otherwise"`
|
||
|
HostTags string `json:"hosttags,omitempty" doc:"comma-separated list of tags for the host"`
|
||
|
Hypervisor string `json:"hypervisor,omitempty" doc:"the host hypervisor"`
|
||
|
HypervisorVersion string `json:"hypervisorversion,omitempty" doc:"the hypervisor version"`
|
||
|
ID *UUID `json:"id,omitempty" doc:"the ID of the host"`
|
||
|
IPAddress net.IP `json:"ipaddress,omitempty" doc:"the IP address of the host"`
|
||
|
IsLocalstorageActive *bool `json:"islocalstorageactive,omitempty" doc:"true if local storage is active, false otherwise"`
|
||
|
LastPinged string `json:"lastpinged,omitempty" doc:"the date and time the host was last pinged"`
|
||
|
ManagementServerID *UUID `json:"managementserverid,omitempty" doc:"the management server ID of the host"`
|
||
|
MemoryAllocated int64 `json:"memoryallocated,omitempty" doc:"the amount of VM's memory allocated onto the host"`
|
||
|
MemoryPhysical int64 `json:"memoryphysical,omitempty" doc:"the total physical memory of the host"`
|
||
|
MemoryReserved int64 `json:"memoryreserved,omitempty" doc:"the amount of the host's memory reserved"`
|
||
|
MemoryTotal int64 `json:"memorytotal,omitempty" doc:"the total memory of the host available (must be physical - reserved)"`
|
||
|
MemoryUsed int64 `json:"memoryused,omitempty" doc:"the amount of the host's memory used by running vm"`
|
||
|
Name string `json:"name,omitempty" doc:"the name of the host"`
|
||
|
NetworkKbsRead int64 `json:"networkkbsread,omitempty" doc:"the incoming network traffic on the host"`
|
||
|
NetworkKbsWrite int64 `json:"networkkbswrite,omitempty" doc:"the outgoing network traffic on the host"`
|
||
|
OSCategoryID *UUID `json:"oscategoryid,omitempty" doc:"the OS category ID of the host"`
|
||
|
OSCategoryName string `json:"oscategoryname,omitempty" doc:"the OS category name of the host"`
|
||
|
PCIDevices []PCIDevice `json:"pcidevices,omitempty" doc:"PCI cards present in the host"`
|
||
|
PodID *UUID `json:"podid,omitempty" doc:"the Pod ID of the host"`
|
||
|
PodName string `json:"podname,omitempty" doc:"the Pod name of the host"`
|
||
|
Removed string `json:"removed,omitempty" doc:"the date and time the host was removed"`
|
||
|
ResourceState string `json:"resourcestate,omitempty" doc:"the resource state of the host"`
|
||
|
State string `json:"state,omitempty" doc:"the state of the host"`
|
||
|
StorageID *UUID `json:"storageid,omitempty" doc:"the host's storage pool id"`
|
||
|
Type string `json:"type,omitempty" doc:"the host type"`
|
||
|
Version string `json:"version,omitempty" doc:"the host version"`
|
||
|
ZoneID *UUID `json:"zoneid,omitempty" doc:"the Zone ID of the host"`
|
||
|
ZoneName string `json:"zonename,omitempty" doc:"the Zone name of the host"`
|
||
|
}
|
||
|
|
||
|
// ListHosts lists hosts
|
||
|
type ListHosts struct {
|
||
|
ClusterID *UUID `json:"clusterid,omitempty" doc:"lists hosts existing in particular cluster"`
|
||
|
Details []string `json:"details,omitempty" doc:"comma separated list of host details requested, value can be a list of [ min, all, capacity, events, stats]"`
|
||
|
HAHost *bool `json:"hahost,omitempty" doc:"if true, list only hosts dedicated to HA"`
|
||
|
Hypervisor string `json:"hypervisor,omitempty" doc:"hypervisor type of host: KVM,Simulator"`
|
||
|
ID *UUID `json:"id,omitempty" doc:"the id of the host"`
|
||
|
Keyword string `json:"keyword,omitempty" doc:"List by keyword"`
|
||
|
Name string `json:"name,omitempty" doc:"the name of the host"`
|
||
|
Page int `json:"page,omitempty"`
|
||
|
PageSize int `json:"pagesize,omitempty"`
|
||
|
PodID *UUID `json:"podid,omitempty" doc:"the Pod ID for the host"`
|
||
|
ResourceState string `json:"resourcestate,omitempty" doc:"list hosts by resource state. Resource state represents current state determined by admin of host, value can be one of [Enabled, Disabled, Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]"`
|
||
|
State string `json:"state,omitempty" doc:"the state of the host"`
|
||
|
Type string `json:"type,omitempty" doc:"the host type"`
|
||
|
ZoneID *UUID `json:"zoneid,omitempty" doc:"the Zone ID for the host"`
|
||
|
_ bool `name:"listHosts" description:"Lists hosts."`
|
||
|
}
|
||
|
|
||
|
func (ListHosts) response() interface{} {
|
||
|
return new(ListHostsResponse)
|
||
|
}
|
||
|
|
||
|
// ListHostsResponse represents a list of hosts
|
||
|
type ListHostsResponse struct {
|
||
|
Count int `json:"count"`
|
||
|
Host []Host `json:"host"`
|
||
|
}
|
||
|
|
||
|
// UpdateHost changes the resources state of a host
|
||
|
type UpdateHost struct {
|
||
|
Allocationstate string `json:"allocationstate,omitempty" doc:"Change resource state of host, valid values are [Enable, Disable]. Operation may failed if host in states not allowing Enable/Disable"`
|
||
|
HostTags []string `json:"hosttags,omitempty" doc:"list of tags to be added to the host"`
|
||
|
ID *UUID `json:"id" doc:"the ID of the host to update"`
|
||
|
OSCategoryID *UUID `json:"oscategoryid,omitempty" doc:"the id of Os category to update the host with"`
|
||
|
URL string `json:"url,omitempty" doc:"the new uri for the secondary storage: nfs://host/path"`
|
||
|
_ bool `name:"updateHost" description:"Updates a host."`
|
||
|
}
|
||
|
|
||
|
func (UpdateHost) response() interface{} {
|
||
|
return new(Host)
|
||
|
}
|