proxmox

package
v0.0.0-...-42579ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2022 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const TaskStatusCheckInterval = 2

TaskStatusCheckInterval - time between async checks in seconds

Variables

View Source
var Debug = new(bool)

Functions

func AddToList

func AddToList(list, newItem string) string

func ArrayToCSV

func ArrayToCSV(array interface{}) (csv string)

Convert Array to a comma (,) delimited list

func ArrayToStringType

func ArrayToStringType(inputarray []interface{}) (array []string)

Convert Array of type []interface{} to array of type []string

func BoolInvert

func BoolInvert(b bool) bool

func CSVtoArray

func CSVtoArray(csv string) []string

func DiskSizeGB

func DiskSizeGB(dcSize interface{}) float64

Convert a disk-size string to a GB float

func ErrorItemExists

func ErrorItemExists(item, text string) error

func ErrorItemNotExists

func ErrorItemNotExists(item, text string) error

func ErrorKeyEmpty

func ErrorKeyEmpty(text string) error

func ErrorKeyNotSet

func ErrorKeyNotSet(text string) error

func FormatDiskParam

func FormatDiskParam(disk QemuDevice) string

Given a QemuDevice (represesting a disk), return a param string to give to ProxMox

func FormatUsbParam

func FormatUsbParam(usb QemuDevice) string

Given a QemuDevice (represesting a usb), return a param string to give to ProxMox

func ItemInKeyOfArray

func ItemInKeyOfArray(array []interface{}, key, value string) (existance bool)

Check the value of a key in a nested array of map[string]interface{}

func Itob

func Itob(i int) bool

func MaxVmId

func MaxVmId(client *Client) (max int, err error)

func ParamsToBody

func ParamsToBody(params map[string]interface{}) (body []byte)

func ParamsToBodyWithAllEmpty

func ParamsToBodyWithAllEmpty(params map[string]interface{}) (body []byte)

func ParamsToBodyWithEmpty

func ParamsToBodyWithEmpty(params map[string]interface{}, allowedEmpty []string) (body []byte)

func ParamsToValues

func ParamsToValues(params map[string]interface{}) (vals url.Values)

func ParamsToValuesWithAllEmpty

func ParamsToValuesWithAllEmpty(params map[string]interface{}, allowedEmpty []string, allowEmpty bool) (vals url.Values)

func ParamsToValuesWithEmpty

func ParamsToValuesWithEmpty(params map[string]interface{}, allowedEmpty []string) (vals url.Values)

func ParseSubConf

func ParseSubConf(
	element string,
	separator string,
) (key string, value interface{})

ParseSubConf - Parse standard sub-conf strings `key=value`.

func PointerBool

func PointerBool(boolean bool) *bool

Creates a pointer to a bool

func PointerInt

func PointerInt(number int) *int

Creates a pointer to an int

func PointerString

func PointerString(text string) *string

Creates a pointer to a string

func RemoveSshForwardUsernet

func RemoveSshForwardUsernet(vmr *VmRef, client *Client) (err error)

device_del net1 netdev_del net1

func ResponseJSON

func ResponseJSON(resp *http.Response) (jbody map[string]interface{}, err error)

func SendKeysString

func SendKeysString(vmr *VmRef, client *Client, keys string) (err error)

func SshForwardUsernet

func SshForwardUsernet(vmr *VmRef, client *Client) (sshPort string, err error)

This is because proxmox create/config API won't let us make usernet devices

func TypedResponse

func TypedResponse(resp *http.Response, v interface{}) error

func ValidateArrayEven

func ValidateArrayEven(array interface{}, text string) error

func ValidateArrayNotEmpty

func ValidateArrayNotEmpty(array interface{}, text string) error

func ValidateFilePath

func ValidateFilePath(path, text string) error

func ValidateIntGreater

func ValidateIntGreater(min, value int, text string) error

func ValidateIntGreaterOrEquals

func ValidateIntGreaterOrEquals(min, value int, text string) error

func ValidateIntInRange

func ValidateIntInRange(min, max, value int, text string) error

func ValidateStringInArray

func ValidateStringInArray(array []string, value, text string) error

func ValidateStringNotEmpty

func ValidateStringNotEmpty(value, text string) error

func ValidateStringsEqual

func ValidateStringsEqual(value1, value2, text string) error

check if a key is allowd to be changed after creation.

func ValidateUserPassword

func ValidateUserPassword(password string) error

func WaitForShutdown

func WaitForShutdown(vmr *VmRef, client *Client) (err error)

Useful waiting for ISO install to complete

Types

type AgentNetworkInterface

type AgentNetworkInterface struct {
	MACAddress  string
	IPAddresses []net.IP
	Name        string
	Statistics  map[string]int64
}

func (*AgentNetworkInterface) UnmarshalJSON

func (a *AgentNetworkInterface) UnmarshalJSON(b []byte) error

type Client

type Client struct {
	ApiUrl      string
	Username    string
	Password    string
	Otp         string
	TaskTimeout int
	// contains filtered or unexported fields
}

Client - URL, user and password to specifc Proxmox node

func NewClient

func NewClient(apiUrl string, hclient *http.Client, httpHeaders string, tls *tls.Config, proxyString string, taskTimeout int) (client *Client, err error)

func (*Client) AddQemuIPSet

func (c *Client) AddQemuIPSet(vmr *VmRef, name string, params map[string]interface{}) (exitStatus interface{}, err error)

AddQemuIPSet - Add IP or Network to IPSet.

func (*Client) CheckAcmePluginExistance

func (c *Client) CheckAcmePluginExistance(id string) (existance bool, err error)

func (*Client) CheckMetricServerExistance

func (c *Client) CheckMetricServerExistance(id string) (existance bool, err error)

func (*Client) CheckStorageExistance

func (c *Client) CheckStorageExistance(id string) (existance bool, err error)

func (*Client) CheckTask

func (c *Client) CheckTask(resp *http.Response) (exitStatus string, err error)

Check if the proxmox task has been completed

func (*Client) CheckUserExistance

func (c *Client) CheckUserExistance(id string) (existance bool, err error)

func (*Client) CheckVmRef

func (c *Client) CheckVmRef(vmr *VmRef) (err error)

func (*Client) CloneLxcContainer

func (c *Client) CloneLxcContainer(vmr *VmRef, vmParams map[string]interface{}) (exitStatus string, err error)

func (*Client) CloneQemuVm

func (c *Client) CloneQemuVm(vmr *VmRef, vmParams map[string]interface{}) (exitStatus string, err error)

func (*Client) CreateAcmeAccount

func (c *Client) CreateAcmeAccount(params map[string]interface{}) (exitStatus string, err error)

func (*Client) CreateAcmePlugin

func (c *Client) CreateAcmePlugin(params map[string]interface{}) error

func (*Client) CreateItem

func (c *Client) CreateItem(Params map[string]interface{}, url string) (err error)

func (*Client) CreateItemWithTask

func (c *Client) CreateItemWithTask(Params map[string]interface{}, url string) (exitStatus string, err error)

CreateItemWithTask Create Item and wait on proxmox for the task to complete

func (*Client) CreateLxcContainer

func (c *Client) CreateLxcContainer(node string, vmParams map[string]interface{}) (exitStatus string, err error)

func (*Client) CreateMetricServer

func (c *Client) CreateMetricServer(id string, params map[string]interface{}) error

func (*Client) CreateNewDisk

func (c *Client) CreateNewDisk(vmr *VmRef, disk string, volume string) (exitStatus interface{}, err error)

CreateNewDisk - This method allows simpler disk creation for direct client users It should work for any existing container and virtual machine

func (*Client) CreatePool

func (c *Client) CreatePool(poolid string, comment string) error

func (*Client) CreateQemuIPSet

func (c *Client) CreateQemuIPSet(vmr *VmRef, params map[string]interface{}) (exitStatus interface{}, err error)

CreateQemuIPSet - Create new IPSet

func (*Client) CreateQemuSnapshot

func (c *Client) CreateQemuSnapshot(vmr *VmRef, snapshotName string) (exitStatus string, err error)

func (*Client) CreateQemuVm

func (c *Client) CreateQemuVm(node string, vmParams map[string]interface{}) (exitStatus string, err error)

func (*Client) CreateStorage

func (c *Client) CreateStorage(id string, params map[string]interface{}) error

func (*Client) CreateTemplate

func (c *Client) CreateTemplate(vmr *VmRef) error

func (*Client) CreateUser

func (c *Client) CreateUser(params map[string]interface{}) (err error)

func (*Client) CreateVMDisk

func (c *Client) CreateVMDisk(
	nodeName string,
	storageName string,
	fullDiskName string,
	diskParams map[string]interface{},
) error

CreateVMDisk - Create single disk for VM on host node.

func (*Client) CreateVNCProxy

func (c *Client) CreateVNCProxy(vmr *VmRef, params map[string]interface{}) (vncProxyRes map[string]interface{}, err error)

CreateVNCProxy - Creates a TCP VNC proxy connections

func (*Client) DeleteAcmeAccount

func (c *Client) DeleteAcmeAccount(id string) (exitStatus string, err error)

func (*Client) DeleteAcmePlugin

func (c *Client) DeleteAcmePlugin(id string) (err error)

func (*Client) DeleteMetricServer

func (c *Client) DeleteMetricServer(id string) error

func (*Client) DeletePool

func (c *Client) DeletePool(poolid string) error

func (*Client) DeleteQemuIPSet

func (c *Client) DeleteQemuIPSet(vmr *VmRef, IPSetName string) (exitStatus interface{}, err error)

DeleteQemuIPSet - Delete IPSet

func (*Client) DeleteQemuIPSetNetwork

func (c *Client) DeleteQemuIPSetNetwork(vmr *VmRef, IPSetName string, network string, params map[string]interface{}) (exitStatus interface{}, err error)

DeleteQemuIPSetNetwork - Remove IP or Network from IPSet.

func (*Client) DeleteQemuSnapshot

func (c *Client) DeleteQemuSnapshot(vmr *VmRef, snapshotName string) (exitStatus string, err error)

func (*Client) DeleteStorage

func (c *Client) DeleteStorage(id string) error

func (*Client) DeleteUrl

func (c *Client) DeleteUrl(url string) (err error)

func (*Client) DeleteUrlWithTask

func (c *Client) DeleteUrlWithTask(url string) (exitStatus string, err error)

Delete Item and wait on proxmox for the task to complete

func (*Client) DeleteUser

func (c *Client) DeleteUser(id string) (err error)

func (*Client) DeleteVMDisks

func (c *Client) DeleteVMDisks(
	node string,
	disks []string,
) error

DeleteVMDisks - Delete VM disks from host node. By default the VM disks are deteled when the VM is deleted, so mainly this is used to delete the disks in case VM creation didn't complete.

func (*Client) DeleteVm

func (c *Client) DeleteVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) DeleteVmParams

func (c *Client) DeleteVmParams(vmr *VmRef, params map[string]interface{}) (exitStatus string, err error)

func (*Client) DeleteVolume

func (c *Client) DeleteVolume(vmr *VmRef, storageName string, volumeName string) (exitStatus interface{}, err error)

DeleteVolume - Delete volume

func (*Client) EnableStorage

func (c *Client) EnableStorage(id string) error

storage

func (*Client) GetAcmeAccountConfig

func (c *Client) GetAcmeAccountConfig(id string) (config map[string]interface{}, err error)

func (*Client) GetAcmeAccountList

func (c *Client) GetAcmeAccountList() (accounts map[string]interface{}, err error)

ACME Account

func (*Client) GetAcmeDirectoriesUrl

func (c *Client) GetAcmeDirectoriesUrl() (url []string, err error)

ACME

func (*Client) GetAcmePluginConfig

func (c *Client) GetAcmePluginConfig(id string) (config map[string]interface{}, err error)

func (*Client) GetAcmePluginList

func (c *Client) GetAcmePluginList() (accounts map[string]interface{}, err error)

ACME Plugin

func (*Client) GetAcmeTosUrl

func (c *Client) GetAcmeTosUrl() (url string, err error)

func (*Client) GetExecStatus

func (c *Client) GetExecStatus(vmr *VmRef, pid string) (status map[string]interface{}, err error)

GetExecStatus - Gets the status of the given pid started by the guest-agent

func (*Client) GetItemConfig

func (c *Client) GetItemConfig(url, text, message string) (config map[string]interface{}, err error)

func (*Client) GetItemConfigInterfaceArray

func (c *Client) GetItemConfigInterfaceArray(url, text, message string) ([]interface{}, error)

func (*Client) GetItemConfigMapStringInterface

func (c *Client) GetItemConfigMapStringInterface(url, text, message string) (map[string]interface{}, error)

Shared

func (*Client) GetItemConfigString

func (c *Client) GetItemConfigString(url, text, message string) (string, error)

func (*Client) GetItemList

func (c *Client) GetItemList(url string) (list map[string]interface{}, err error)

func (*Client) GetJsonRetryable

func (c *Client) GetJsonRetryable(url string, data *map[string]interface{}, tries int) error

func (*Client) GetMetricServerConfig

func (c *Client) GetMetricServerConfig(id string) (config map[string]interface{}, err error)

GetMetricServerConfig collect metrics from server

func (*Client) GetMetricsServerList

func (c *Client) GetMetricsServerList() (metricServers map[string]interface{}, err error)

func (*Client) GetNextID

func (c *Client) GetNextID(currentID int) (nextID int, err error)

GetNextID - Get next free VMID

func (*Client) GetNodeList

func (c *Client) GetNodeList() (list map[string]interface{}, err error)

func (*Client) GetPoolInfo

func (c *Client) GetPoolInfo(poolid string) (poolInfo map[string]interface{}, err error)

func (*Client) GetPoolList

func (c *Client) GetPoolList() (pools map[string]interface{}, err error)

func (*Client) GetQemuFirewallOptions

func (c *Client) GetQemuFirewallOptions(vmr *VmRef) (firewallOptions map[string]interface{}, err error)

GetQemuFirewallOptions - Get VM firewall options.

func (*Client) GetQemuIPSet

func (c *Client) GetQemuIPSet(vmr *VmRef) (ipsets map[string]interface{}, err error)

GetQemuIPSet - List IPSets

func (*Client) GetResourceList

func (c *Client) GetResourceList(resourceType string) (list map[string]interface{}, err error)

GetResourceList returns a list of all enabled proxmox resources. For resource types that can be in a disabled state, disabled resources will not be returned

func (*Client) GetStorageConfig

func (c *Client) GetStorageConfig(id string) (config map[string]interface{}, err error)

func (*Client) GetStorageContent

func (c *Client) GetStorageContent(vmr *VmRef, storageName string) (data map[string]interface{}, err error)

func (*Client) GetStorageList

func (c *Client) GetStorageList() (metricServers map[string]interface{}, err error)

func (*Client) GetStorageStatus

func (c *Client) GetStorageStatus(vmr *VmRef, storageName string) (storageStatus map[string]interface{}, err error)

func (*Client) GetTaskExitstatus

func (c *Client) GetTaskExitstatus(taskUpid string) (exitStatus interface{}, err error)

func (*Client) GetUserConfig

func (c *Client) GetUserConfig(id string) (config map[string]interface{}, err error)

User

func (*Client) GetUserList

func (c *Client) GetUserList() (users map[string]interface{}, err error)

func (*Client) GetUserPermissions

func (c *Client) GetUserPermissions(id string, path string) (permissions []string, err error)

func (*Client) GetVersion

func (c *Client) GetVersion() (data map[string]interface{}, err error)

func (*Client) GetVmAgentNetworkInterfaces

func (c *Client) GetVmAgentNetworkInterfaces(vmr *VmRef) ([]AgentNetworkInterface, error)

func (*Client) GetVmConfig

func (c *Client) GetVmConfig(vmr *VmRef) (vmConfig map[string]interface{}, err error)

func (*Client) GetVmInfo

func (c *Client) GetVmInfo(vmr *VmRef) (vmInfo map[string]interface{}, err error)

func (*Client) GetVmList

func (c *Client) GetVmList() (list map[string]interface{}, err error)

func (*Client) GetVmRefByName

func (c *Client) GetVmRefByName(vmName string) (vmr *VmRef, err error)

func (*Client) GetVmRefsByName

func (c *Client) GetVmRefsByName(vmName string) (vmrs []*VmRef, err error)

func (*Client) GetVmSpiceProxy

func (c *Client) GetVmSpiceProxy(vmr *VmRef) (vmSpiceProxy map[string]interface{}, err error)

func (*Client) GetVmState

func (c *Client) GetVmState(vmr *VmRef) (vmState map[string]interface{}, err error)

func (*Client) HandleTaskError

func (c *Client) HandleTaskError(resp *http.Response) (exitStatus string)

Close task responce

func (*Client) HibernateVm

func (c *Client) HibernateVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) ListQemuSnapshot

func (c *Client) ListQemuSnapshot(vmr *VmRef) (taskResponse map[string]interface{}, exitStatus string, err error)

func (*Client) Login

func (c *Client) Login(username string, password string, otp string) (err error)

func (*Client) MigrateNode

func (c *Client) MigrateNode(vmr *VmRef, newTargetNode string, online bool) (exitStatus interface{}, err error)

MigrateNode - Migrate a VM

func (*Client) MonitorCmd

func (c *Client) MonitorCmd(vmr *VmRef, command string) (monitorRes map[string]interface{}, err error)

func (*Client) MoveLxcDisk

func (c *Client) MoveLxcDisk(vmr *VmRef, disk string, storage string) (exitStatus interface{}, err error)

func (*Client) MoveQemuDisk

func (c *Client) MoveQemuDisk(vmr *VmRef, disk string, storage string) (exitStatus interface{}, err error)

MoveQemuDisk - Move a disk from one storage to another

func (*Client) MoveQemuDiskToVM

func (c *Client) MoveQemuDiskToVM(vmrSource *VmRef, disk string, vmrTarget *VmRef) (exitStatus interface{}, err error)

MoveQemuDiskToVM - Move a disk to a different VM, using the same storage

func (*Client) PauseVm

func (c *Client) PauseVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) QemuAgentExec

func (c *Client) QemuAgentExec(vmr *VmRef, params map[string]interface{}) (result map[string]interface{}, err error)

QemuAgentExec - Executes the given command in the vm via the guest-agent and returns an object with the pid.

func (*Client) QemuAgentFileWrite

func (c *Client) QemuAgentFileWrite(vmr *VmRef, params map[string]interface{}) (err error)

QemuAgentFileWrite - Writes the given file via guest agent.

func (*Client) QemuAgentPing

func (c *Client) QemuAgentPing(vmr *VmRef) (pingRes map[string]interface{}, err error)

QemuAgentPing - Execute ping.

func (*Client) QemuAgentSetUserPassword

func (c *Client) QemuAgentSetUserPassword(vmr *VmRef, params map[string]interface{}) (result map[string]interface{}, err error)

QemuAgentSetUserPassword - Sets the password for the given user to the given password.

func (*Client) ReadVMHA

func (c *Client) ReadVMHA(vmr *VmRef) (err error)

func (*Client) ResetVm

func (c *Client) ResetVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) ResizeQemuDisk

func (c *Client) ResizeQemuDisk(vmr *VmRef, disk string, moreSizeGB int) (exitStatus interface{}, err error)

ResizeQemuDisk allows the caller to increase the size of a disk by the indicated number of gigabytes

func (*Client) ResizeQemuDiskRaw

func (c *Client) ResizeQemuDiskRaw(vmr *VmRef, disk string, size string) (exitStatus interface{}, err error)

ResizeQemuDiskRaw allows the caller to provide the raw resize string to be sent to proxmox. See the proxmox API documentation for full information, but the short version is if you prefix your desired size with a '+' character it will ADD size to the disk. If you just specify the size by itself it will do an absolute resizing to the specified size. Permitted suffixes are K, M, G, T to indicate order of magnitude (kilobyte, megabyte, etc). Decrease of disk size is not permitted.

func (*Client) ResumeVm

func (c *Client) ResumeVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) RollbackQemuVm

func (c *Client) RollbackQemuVm(vmr *VmRef, snapshot string) (exitStatus string, err error)

func (*Client) Sendkey

func (c *Client) Sendkey(vmr *VmRef, qmKey string) error

func (*Client) SetAPIToken

func (c *Client) SetAPIToken(userID, token string)

SetAPIToken specifies a pair of user identifier and token UUID to use for authenticating API calls. If this is set, a ticket from calling `Login` will not be used.

- `userID` is expected to be in the form `USER@REALM!TOKENID` - `token` is just the UUID you get when initially creating the token

See https://pve.proxmox.com/wiki/User_Management#pveum_tokens

func (*Client) SetLxcConfig

func (c *Client) SetLxcConfig(vmr *VmRef, vmParams map[string]interface{}) (exitStatus interface{}, err error)

SetLxcConfig - send config options

func (*Client) SetQemuFirewallOptions

func (c *Client) SetQemuFirewallOptions(vmr *VmRef, fwOptions map[string]interface{}) (exitStatus interface{}, err error)

SetQemuFirewallOptions - Set Firewall options.

func (*Client) SetVmConfig

func (c *Client) SetVmConfig(vmr *VmRef, vmParams map[string]interface{}) (exitStatus interface{}, err error)

SetVmConfig - send config options

func (*Client) ShutdownVm

func (c *Client) ShutdownVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) StartVm

func (c *Client) StartVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) StatusChangeVm

func (c *Client) StatusChangeVm(vmr *VmRef, params map[string]interface{}, setStatus string) (exitStatus string, err error)

func (*Client) StopVm

func (c *Client) StopVm(vmr *VmRef) (exitStatus string, err error)

func (*Client) UpdateAcmeAccountEmails

func (c *Client) UpdateAcmeAccountEmails(id, emails string) (exitStatus string, err error)

func (*Client) UpdateAcmePlugin

func (c *Client) UpdateAcmePlugin(id string, params map[string]interface{}) error

func (*Client) UpdateItem

func (c *Client) UpdateItem(Params map[string]interface{}, url string) (err error)

func (*Client) UpdateItemWithTask

func (c *Client) UpdateItemWithTask(Params map[string]interface{}, url string) (exitStatus string, err error)

Update Item and wait on proxmox for the task to complete

func (*Client) UpdateMetricServer

func (c *Client) UpdateMetricServer(id string, params map[string]interface{}) error

func (*Client) UpdatePoolComment

func (c *Client) UpdatePoolComment(poolid string, comment string) error

func (*Client) UpdateStorage

func (c *Client) UpdateStorage(id string, params map[string]interface{}) error

func (*Client) UpdateUser

func (c *Client) UpdateUser(id string, params map[string]interface{}) error

func (*Client) UpdateUserPassword

func (c *Client) UpdateUserPassword(userid string, password string) error

func (*Client) UpdateVMHA

func (c *Client) UpdateVMHA(vmr *VmRef, haState string, haGroup string) (exitStatus interface{}, err error)

func (*Client) UpdateVMPool

func (c *Client) UpdateVMPool(vmr *VmRef, pool string) (exitStatus interface{}, err error)

func (*Client) Upload

func (c *Client) Upload(node string, storage string, contentType string, filename string, file io.Reader) error

func (*Client) VMIdExists

func (c *Client) VMIdExists(vmID int) (exists bool, err error)

VMIdExists - If you pass an VMID that exists it will return true, otherwise it wil return false

func (*Client) VzDump

func (c *Client) VzDump(vmr *VmRef, params map[string]interface{}) (exitStatus interface{}, err error)

VzDump - Create backup

func (*Client) WaitForCompletion

func (c *Client) WaitForCompletion(taskResponse map[string]interface{}) (waitExitStatus string, err error)

WaitForCompletion - poll the API for task completion

type ConfigAcmeAccount

type ConfigAcmeAccount struct {
	Name      string   `json:"name"`
	Contact   []string `json:"contact"`
	Directory string   `json:"directory"`
	Tos       bool     `json:"tos,omitempty"`
}

Acme Account options for the Proxmox API

func NewConfigAcmeAccountFromApi

func NewConfigAcmeAccountFromApi(id string, client *Client) (config *ConfigAcmeAccount, err error)

func NewConfigAcmeAccountFromJson

func NewConfigAcmeAccountFromJson(input []byte) (config *ConfigAcmeAccount, err error)

func (ConfigAcmeAccount) CreateAcmeAccount

func (config ConfigAcmeAccount) CreateAcmeAccount(acmeid string, client *Client) (err error)

type ConfigAcmePlugin

type ConfigAcmePlugin struct {
	ID              string   `json:"pluginid"`
	API             string   `json:"api"`
	Data            string   `json:"data,omitempty"`
	Enable          bool     `json:"enable"`
	Nodes           []string `json:"nodes,omitempty"`
	ValidationDelay int      `json:"validation-delay"`
}

Acme Plugin options for the Proxmox API

func NewConfigAcmePluginFromApi

func NewConfigAcmePluginFromApi(id string, client *Client) (config *ConfigAcmePlugin, err error)

func NewConfigAcmePluginFromJson

func NewConfigAcmePluginFromJson(input []byte) (config *ConfigAcmePlugin, err error)

func (ConfigAcmePlugin) CreateAcmePlugin

func (config ConfigAcmePlugin) CreateAcmePlugin(client *Client) (err error)

func (ConfigAcmePlugin) MapAcmePluginValues

func (config ConfigAcmePlugin) MapAcmePluginValues() (params map[string]interface{})

func (ConfigAcmePlugin) SetAcmePlugin

func (config ConfigAcmePlugin) SetAcmePlugin(pluginid string, client *Client) (err error)

func (ConfigAcmePlugin) UpdateAcmePlugin

func (config ConfigAcmePlugin) UpdateAcmePlugin(client *Client) (err error)

type ConfigLxc

type ConfigLxc struct {
	Ostemplate         string      `json:"ostemplate"`
	Arch               string      `json:"arch"`
	BWLimit            int         `json:"bwlimit,omitempty"`
	Clone              string      `json:"clone,omitempty"`
	CloneStorage       string      `json:"clone-storage,omitempty"`
	CMode              string      `json:"cmode"`
	Console            bool        `json:"console"`
	Cores              int         `json:"cores,omitempty"`
	CPULimit           int         `json:"cpulimit"`
	CPUUnits           int         `json:"cpuunits"`
	Description        string      `json:"description,omitempty"`
	Features           QemuDevice  `json:"features,omitempty"`
	Force              bool        `json:"force,omitempty"`
	Full               bool        `json:"full,omitempty"`
	HaState            string      `json:"hastate,omitempty"`
	HaGroup            string      `json:"hagroup,omitempty"`
	Hookscript         string      `json:"hookscript,omitempty"`
	Hostname           string      `json:"hostname,omitempty"`
	IgnoreUnpackErrors bool        `json:"ignore-unpack-errors,omitempty"`
	Lock               string      `json:"lock,omitempty"`
	Memory             int         `json:"memory"`
	Mountpoints        QemuDevices `json:"mountpoints,omitempty"`
	Nameserver         string      `json:"nameserver,omitempty"`
	Networks           QemuDevices `json:"networks,omitempty"`
	OnBoot             bool        `json:"onboot"`
	OsType             string      `json:"ostype,omitempty"`
	Password           string      `json:"password,omitempty"`
	Pool               string      `json:"pool,omitempty"`
	Protection         bool        `json:"protection"`
	Restore            bool        `json:"restore,omitempty"`
	RootFs             QemuDevice  `json:"rootfs,omitempty"`
	SearchDomain       string      `json:"searchdomain,omitempty"`
	Snapname           string      `json:"snapname,omitempty"`
	SSHPublicKeys      string      `json:"ssh-public-keys,omitempty"`
	Start              bool        `json:"start"`
	Startup            string      `json:"startup,omitempty"`
	Storage            string      `json:"storage"`
	Swap               int         `json:"swap"`
	Template           bool        `json:"template,omitempty"`
	Tty                int         `json:"tty"`
	Unique             bool        `json:"unique,omitempty"`
	Unprivileged       bool        `json:"unprivileged"`
	Tags               string      `json:"tags"`
	Unused             []string    `json:"unused,omitempty"`
}

LXC options for the Proxmox API

func NewConfigLxc

func NewConfigLxc() ConfigLxc

func NewConfigLxcFromApi

func NewConfigLxcFromApi(vmr *VmRef, client *Client) (config *ConfigLxc, err error)

func NewConfigLxcFromJson

func NewConfigLxcFromJson(input []byte) (config ConfigLxc, err error)

func (ConfigLxc) CloneLxc

func (config ConfigLxc) CloneLxc(vmr *VmRef, client *Client) (err error)

func (ConfigLxc) CreateLxc

func (config ConfigLxc) CreateLxc(vmr *VmRef, client *Client) (err error)

create LXC container using the Proxmox API

func (ConfigLxc) UpdateConfig

func (config ConfigLxc) UpdateConfig(vmr *VmRef, client *Client) (err error)

type ConfigMetrics

type ConfigMetrics struct {
	Name     string                 `json:"name"`
	Port     int                    `json:"port"`
	Server   string                 `json:"server"`
	Type     string                 `json:"type"` //type key is only used on create
	Enable   bool                   `json:"enable"`
	MTU      int                    `json:"mtu"`
	Timeout  int                    `json:"timeout,omitempty"`
	Graphite *ConfigMetricsGraphite `json:"graphite,omitempty"`
	InfluxDB *ConfigMetricsInfluxDB `json:"influxdb,omitempty"`
}

Metrics options for the Proxmox API

func InstantiateConfigMetrics

func InstantiateConfigMetrics() *ConfigMetrics

func NewConfigMetricsFromApi

func NewConfigMetricsFromApi(metricsid string, client *Client) (config *ConfigMetrics, err error)

func NewConfigMetricsFromJson

func NewConfigMetricsFromJson(input []byte) (config *ConfigMetrics, err error)

func (*ConfigMetrics) CreateMetrics

func (config *ConfigMetrics) CreateMetrics(client *Client) (err error)

func (*ConfigMetrics) MapMetricsToApiValues

func (config *ConfigMetrics) MapMetricsToApiValues(create bool) (params map[string]interface{})

func (*ConfigMetrics) RemoveMetricsNestedStructs

func (config *ConfigMetrics) RemoveMetricsNestedStructs()

func (*ConfigMetrics) SetMetrics

func (config *ConfigMetrics) SetMetrics(metricsid string, client *Client) (err error)

func (*ConfigMetrics) UpdateMetrics

func (config *ConfigMetrics) UpdateMetrics(client *Client) (err error)

func (*ConfigMetrics) ValidateMetrics

func (config *ConfigMetrics) ValidateMetrics() (err error)

type ConfigMetricsGraphite

type ConfigMetricsGraphite struct {
	Protocol string `json:"protocol"`
	Path     string `json:"path,omitempty"`
}

type ConfigMetricsInfluxDB

type ConfigMetricsInfluxDB struct {
	ApiPathPrefix     string `json:"api-path-prefix,omitempty"`
	Bucket            string `json:"bucket,omitempty"`
	Protocol          string `json:"protocol"`
	MaxBodySize       int    `json:"max-body-size,omitempty"`
	Organization      string `json:"organization,omitempty"`
	Token             string `json:"token,omitempty"` //token key is never returned from api
	VerifyCertificate bool   `json:"verify-certificate"`
}

type ConfigQemu

type ConfigQemu struct {
	VmID            int         `json:"vmid,omitempty"`
	Name            string      `json:"name,omitempty"`
	Description     string      `json:"description,omitempty"`
	Pool            string      `json:"pool,omitempty"`
	Bios            string      `json:"bios,omitempty"`
	EFIDisk         QemuDevice  `json:"efidisk,omitempty"`
	Machine         string      `json:"machine,omitempty"`
	Onboot          *bool       `json:"onboot,omitempty"`
	Startup         string      `json:"startup,omitempty"`
	Tablet          *bool       `json:"tablet,omitempty"`
	Agent           int         `json:"agent,omitempty"`
	Memory          int         `json:"memory,omitempty"`
	Balloon         int         `json:"balloon,omitempty"`
	QemuOs          string      `json:"os,omitempty"`
	QemuCores       int         `json:"cores,omitempty"`
	QemuSockets     int         `json:"sockets,omitempty"`
	QemuVcpus       int         `json:"vcpus,omitempty"`
	QemuCpu         string      `json:"cpu,omitempty"`
	QemuNuma        *bool       `json:"numa,omitempty"`
	QemuKVM         *bool       `json:"kvm,omitempty"`
	Hotplug         string      `json:"hotplug,omitempty"`
	QemuIso         string      `json:"iso,omitempty"`
	QemuPxe         bool        `json:"pxe,omitempty"`
	FullClone       *int        `json:"fullclone,omitempty"`
	Boot            string      `json:"boot,omitempty"`
	BootDisk        string      `json:"bootdisk,omitempty"`
	Scsihw          string      `json:"scsihw,omitempty"`
	QemuDisks       QemuDevices `json:"disk,omitempty"`
	QemuUnusedDisks QemuDevices `json:"unused,omitempty"`
	QemuVga         QemuDevice  `json:"vga,omitempty"`
	QemuNetworks    QemuDevices `json:"network,omitempty"`
	QemuSerials     QemuDevices `json:"serial,omitempty"`
	QemuUsbs        QemuDevices `json:"usb,omitempty"`
	QemuPCIDevices  QemuDevices `json:"hostpci,omitempty"`
	Hookscript      string      `json:"hookscript,omitempty"`
	HaState         string      `json:"hastate,omitempty"`
	HaGroup         string      `json:"hagroup,omitempty"`
	Tags            string      `json:"tags,omitempty"`
	Args            string      `json:"args,omitempty"`

	// cloud-init options
	CIuser     string `json:"ciuser,omitempty"`
	CIpassword string `json:"cipassword,omitempty"`
	CIcustom   string `json:"cicustom,omitempty"`

	Searchdomain string `json:"searchdomain,omitempty"`
	Nameserver   string `json:"nameserver,omitempty"`
	Sshkeys      string `json:"sshkeys,omitempty"`

	// arrays are hard, support 16 interfaces for now
	Ipconfig0  string `json:"ipconfig0,omitempty"`
	Ipconfig1  string `json:"ipconfig1,omitempty"`
	Ipconfig2  string `json:"ipconfig2,omitempty"`
	Ipconfig3  string `json:"ipconfig3,omitempty"`
	Ipconfig4  string `json:"ipconfig4,omitempty"`
	Ipconfig5  string `json:"ipconfig5,omitempty"`
	Ipconfig6  string `json:"ipconfig6,omitempty"`
	Ipconfig7  string `json:"ipconfig7,omitempty"`
	Ipconfig8  string `json:"ipconfig8,omitempty"`
	Ipconfig9  string `json:"ipconfig9,omitempty"`
	Ipconfig10 string `json:"ipconfig10,omitempty"`
	Ipconfig11 string `json:"ipconfig11,omitempty"`
	Ipconfig12 string `json:"ipconfig12,omitempty"`
	Ipconfig13 string `json:"ipconfig13,omitempty"`
	Ipconfig14 string `json:"ipconfig14,omitempty"`
	Ipconfig15 string `json:"ipconfig15,omitempty"`
}

ConfigQemu - Proxmox API QEMU options

func NewConfigQemuFromApi

func NewConfigQemuFromApi(vmr *VmRef, client *Client) (config *ConfigQemu, err error)

func NewConfigQemuFromJson

func NewConfigQemuFromJson(input []byte) (config *ConfigQemu, err error)

func (ConfigQemu) CloneVm

func (config ConfigQemu) CloneVm(sourceVmr *VmRef, vmr *VmRef, client *Client) (err error)

CloneVm Example: Request

nodes/proxmox1-xx/qemu/1012/clone

newid:145 name:tf-clone1 target:proxmox1-xx full:1 storage:xxx

func (ConfigQemu) CreateQemuDisksParams

func (c ConfigQemu) CreateQemuDisksParams(
	vmID int,
	params map[string]interface{},
	cloned bool,
) error

Create parameters for each disk.

func (ConfigQemu) CreateQemuEfiParams

func (c ConfigQemu) CreateQemuEfiParams(
	params map[string]interface{},
) error

Create efi parameter.

func (ConfigQemu) CreateQemuMachineParam

func (c ConfigQemu) CreateQemuMachineParam(
	params map[string]interface{},
) error

Create parameters for serial interface

func (ConfigQemu) CreateQemuNetworksParams

func (c ConfigQemu) CreateQemuNetworksParams(vmID int, params map[string]interface{}) error

Create parameters for each Nic device.

func (ConfigQemu) CreateQemuPCIsParams

func (c ConfigQemu) CreateQemuPCIsParams(
	vmID int,
	params map[string]interface{},
) error

Create parameters for each PCI Device

func (ConfigQemu) CreateQemuSerialsParams

func (c ConfigQemu) CreateQemuSerialsParams(
	vmID int,
	params map[string]interface{},
) error

Create parameters for serial interface

func (ConfigQemu) CreateQemuUsbsParams

func (c ConfigQemu) CreateQemuUsbsParams(
	vmID int,
	params map[string]interface{},
) error

Create parameters for usb interface

func (ConfigQemu) CreateVm

func (config ConfigQemu) CreateVm(vmr *VmRef, client *Client) (err error)

CreateVm - Tell Proxmox API to make the VM

func (ConfigQemu) HasCloudInit

func (config ConfigQemu) HasCloudInit() bool

HasCloudInit - are there cloud-init options?

func (ConfigQemu) String

func (c ConfigQemu) String() string

func (ConfigQemu) UpdateConfig

func (config ConfigQemu) UpdateConfig(vmr *VmRef, client *Client) (err error)

type ConfigStorage

type ConfigStorage struct {
	ID              string                        `json:"id"`
	Enable          bool                          `json:"enable"`
	Nodes           []string                      `json:"nodes,omitempty"`
	Type            string                        `json:"type"`
	Directory       *ConfigStorageDirectory       `json:"directory,omitempty"`
	LVM             *ConfigStorageLVM             `json:"lvm,omitempty"`
	LVMThin         *ConfigStorageLVMThin         `json:"lvm-thin,omitempty"`
	NFS             *ConfigStorageNFS             `json:"nfs,omitempty"`
	SMB             *ConfigStorageSMB             `json:"smb,omitempty"`
	GlusterFS       *ConfigStorageGlusterFS       `json:"glusterfs,omitempty"`
	ISCSI           *ConfigStorageISCSI           `json:"iscsi,omitempty"`
	CephFS          *ConfigStorageCephFS          `json:"cephfs,omitempty"`
	RBD             *ConfigStorageRBD             `json:"rbd,omitempty"`
	ZFSoverISCSI    *ConfigStorageZFSoverISCSI    `json:"zfs-over-iscsi,omitempty"`
	ZFS             *ConfigStorageZFS             `json:"zfs,omitempty"`
	PBS             *ConfigStoragePBS             `json:"pbs,omitempty"`
	Content         *ConfigStorageContent         `json:"content,omitempty"`
	BackupRetention *ConfigStorageBackupRetention `json:"backupretention,omitempty"`
}

Storage options for the Proxmox API

func NewConfigStorageFromApi

func NewConfigStorageFromApi(storageid string, client *Client) (config *ConfigStorage, err error)

func NewConfigStorageFromJson

func NewConfigStorageFromJson(input []byte) (config *ConfigStorage, err error)

func (*ConfigStorage) Create

func (config *ConfigStorage) Create(id string, errorSupression bool, client *Client) (err error)

func (*ConfigStorage) CreateWithValidate

func (config *ConfigStorage) CreateWithValidate(id string, client *Client) (err error)

func (*ConfigStorage) MapToApiValues

func (config *ConfigStorage) MapToApiValues(create bool) (params map[string]interface{})

func (*ConfigStorage) RemapFromAPI

func (config *ConfigStorage) RemapFromAPI()

func (*ConfigStorage) RemapToAPI

func (config *ConfigStorage) RemapToAPI()

func (*ConfigStorage) SetDefaults

func (config *ConfigStorage) SetDefaults()

func (*ConfigStorage) Update

func (config *ConfigStorage) Update(id string, client *Client) (err error)

func (*ConfigStorage) UpdateWithValidate

func (config *ConfigStorage) UpdateWithValidate(id string, client *Client) (err error)

func (*ConfigStorage) Validate

func (newConfig *ConfigStorage) Validate(id string, create bool, client *Client) (err error)

type ConfigStorageBackupRetention

type ConfigStorageBackupRetention struct {
	Last    *int `json:"last,omitempty"`
	Hourly  *int `json:"hourly,omitempty"`
	Daily   *int `json:"daily,omitempty"`
	Monthly *int `json:"monthly,omitempty"`
	Weekly  *int `json:"weekly,omitempty"`
	Yearly  *int `json:"yearly,omitempty"`
}

func (*ConfigStorageBackupRetention) AllNil

func (b *ConfigStorageBackupRetention) AllNil() bool

func (*ConfigStorageBackupRetention) MapStorageBackupRetention

func (b *ConfigStorageBackupRetention) MapStorageBackupRetention() string

func (*ConfigStorageBackupRetention) Validate

func (b *ConfigStorageBackupRetention) Validate() (err error)

type ConfigStorageCephFS

type ConfigStorageCephFS struct {
	Monitors  []string `json:"monitors"`
	SecretKey *string  `json:"secret-key,omitempty"`
	Username  string   `json:"username"`
	FSname    string   `json:"fs-name"`
}

type ConfigStorageContent

type ConfigStorageContent struct {
	Backup    *bool `json:"backup,omitempty"`    //backup
	Iso       *bool `json:"iso,omitempty"`       //iso
	Template  *bool `json:"template,omitempty"`  //vztmpl
	DiskImage *bool `json:"diskimage,omitempty"` //images
	Container *bool `json:"container,omitempty"` //rootdir
	Snippets  *bool `json:"snippets,omitempty"`  //snippets
}

func (*ConfigStorageContent) MapStorageContent

func (c *ConfigStorageContent) MapStorageContent(array []bool) (list string)

func (*ConfigStorageContent) Validate

func (c *ConfigStorageContent) Validate(storageType string) error

type ConfigStorageDirectory

type ConfigStorageDirectory struct {
	Path          string  `json:"path"`
	Preallocation *string `json:"preallocation,omitempty"`
	Shared        bool    `json:"shared"`
}

Storage Types

func (*ConfigStorageDirectory) SetDefaults

func (directory *ConfigStorageDirectory) SetDefaults()

type ConfigStorageGlusterFS

type ConfigStorageGlusterFS struct {
	Server1       string  `json:"server1"`
	Server2       string  `json:"server2,omitempty"`
	Preallocation *string `json:"preallocation,omitempty"`
	Volume        string  `json:"volume"`
}

func (*ConfigStorageGlusterFS) SetDefaults

func (glusterfs *ConfigStorageGlusterFS) SetDefaults()

type ConfigStorageISCSI

type ConfigStorageISCSI struct {
	Portal string `json:"portal"`
	Target string `json:"target"`
}

type ConfigStorageLVM

type ConfigStorageLVM struct {
	VGname string `json:"vgname"`
	Shared bool   `json:"shared,omitempty"`
}

type ConfigStorageLVMThin

type ConfigStorageLVMThin struct {
	VGname   string `json:"vgname"`
	Thinpool string `json:"thinpool"`
}

type ConfigStorageNFS

type ConfigStorageNFS struct {
	Server        string  `json:"server"`
	Export        string  `json:"export"`
	Preallocation *string `json:"preallocation,omitempty"`
	Version       *string `json:"version,omitempty"`
}

func (*ConfigStorageNFS) SetDefaults

func (nfs *ConfigStorageNFS) SetDefaults()

type ConfigStoragePBS

type ConfigStoragePBS struct {
	Server      string  `json:"server"`
	Datastore   string  `json:"datastore"`
	Username    string  `json:"username"`
	Password    *string `json:"password,omitempty"`
	Fingerprint string  `json:"fingerprint,omitempty"`
	Port        *int    `json:"port,omitempty"`
	Namespace   string  `json:"namespace,omitempty"`
}

func (*ConfigStoragePBS) SetDefaults

func (pbs *ConfigStoragePBS) SetDefaults()

type ConfigStorageRBD

type ConfigStorageRBD struct {
	Pool      string   `json:"pool"`
	Monitors  []string `json:"monitors"`
	Username  string   `json:"username"`
	Keyring   *string  `json:"keyring,omitempty"`
	Namespace string   `json:"namespace"`
	KRBD      bool     `json:"krbd"`
}

type ConfigStorageSMB

type ConfigStorageSMB struct {
	Username      string  `json:"username"`
	Share         string  `json:"share"`
	Preallocation *string `json:"preallocation,omitempty"`
	Domain        string  `json:"domain"`
	Server        string  `json:"server"`
	Password      *string `json:"password,omitempty"`
	Version       *string `json:"version,omitempty"`
}

func (*ConfigStorageSMB) SetDefaults

func (smb *ConfigStorageSMB) SetDefaults()

type ConfigStorageZFS

type ConfigStorageZFS struct {
	Pool          string  `json:"pool"`
	Blocksize     *string `json:"blocksize,omitempty"`
	Thinprovision bool    `json:"thinprovision,omitempty"`
}

func (*ConfigStorageZFS) SetDefaults

func (zfs *ConfigStorageZFS) SetDefaults()

type ConfigStorageZFSoverISCSI

type ConfigStorageZFSoverISCSI struct {
	Portal        string                             `json:"portal"`
	Pool          string                             `json:"pool"`
	Blocksize     *string                            `json:"blocksize"`
	Target        string                             `json:"target"`
	ISCSIprovider string                             `json:"iscsiprovider"`
	Thinprovision bool                               `json:"thinprovision"`
	Comstar       *ConfigStorageZFSoverISCSI_Comstar `json:"comstar,omitempty"`
	Istgt         *ConfigStorageZFSoverISCSI_istgt   `json:"istgt,omitempty"`
	LIO           *ConfigStorageZFSoverISCSI_LIO     `json:"lio,omitempty"`
}

func (*ConfigStorageZFSoverISCSI) RemapFromAPI

func (zfsoveriscsi *ConfigStorageZFSoverISCSI) RemapFromAPI()

func (*ConfigStorageZFSoverISCSI) RemapToAPI

func (zfsoveriscsi *ConfigStorageZFSoverISCSI) RemapToAPI()

func (*ConfigStorageZFSoverISCSI) SetDefaults

func (zfsoveriscsi *ConfigStorageZFSoverISCSI) SetDefaults()

type ConfigStorageZFSoverISCSI_Comstar

type ConfigStorageZFSoverISCSI_Comstar struct {
	TargetGroup string `json:"target-group"`
	HostGroup   string `json:"host-group"`
	Writecache  bool   `json:"writecache"`
}

type ConfigStorageZFSoverISCSI_LIO

type ConfigStorageZFSoverISCSI_LIO struct {
	TargetPortalGroup string `json:"targetportal-group"`
}

type ConfigStorageZFSoverISCSI_istgt

type ConfigStorageZFSoverISCSI_istgt struct {
	Writecache bool `json:"writecache"`
}

type ConfigUser

type ConfigUser struct {
	UserID    string   `json:"userid"`
	Comment   string   `json:"comment,omitempty"`
	Email     string   `json:"email,omitempty"`
	Enable    bool     `json:"enable"`
	Expire    int      `json:"expire"`
	Firstname string   `json:"firstname,omitempty"`
	Groups    []string `json:"groups,omitempty"`
	Keys      string   `json:"keys,omitempty"`
	Lastname  string   `json:"lastname,omitempty"`
}

User options for the Proxmox API

func NewConfigUserFromApi

func NewConfigUserFromApi(userid string, client *Client) (config *ConfigUser, err error)

func NewConfigUserFromJson

func NewConfigUserFromJson(input []byte) (config *ConfigUser, err error)

func (ConfigUser) CreateUser

func (config ConfigUser) CreateUser(password string, client *Client) (err error)

func (ConfigUser) MapUserValues

func (config ConfigUser) MapUserValues() (params map[string]interface{})

func (*ConfigUser) SetUser

func (config *ConfigUser) SetUser(userid string, password string, client *Client) (err error)

func (*ConfigUser) UpdateUser

func (config *ConfigUser) UpdateUser(client *Client) (err error)

type QemuDevice

type QemuDevice map[string]interface{}

func ParseConf

func ParseConf(
	kvString string,
	confSeparator string,
	subConfSeparator string,
	implicitFirstKey string,
) QemuDevice

ParseConf - Parse standard device conf string `key1=val1,key2=val2`.

func ParseLxcDisk

func ParseLxcDisk(diskStr string) QemuDevice

func ParsePMConf

func ParsePMConf(
	kvString string,
	implicitFirstKey string,
) QemuDevice

type QemuDeviceParam

type QemuDeviceParam []string

type QemuDevices

type QemuDevices map[int]map[string]interface{}

type Response

type Response struct {
	Resp *http.Response
	Body []byte
}

type Session

type Session struct {
	ApiUrl     string
	AuthTicket string
	CsrfToken  string
	AuthToken  string // Combination of user, realm, token ID and UUID
	Headers    http.Header
	// contains filtered or unexported fields
}

func NewSession

func NewSession(apiUrl string, hclient *http.Client, proxyString string, tls *tls.Config) (session *Session, err error)

func (*Session) Delete

func (s *Session) Delete(
	url string,
	params *url.Values,
	headers *http.Header,
) (resp *http.Response, err error)

func (*Session) Do

func (s *Session) Do(req *http.Request) (*http.Response, error)

func (*Session) Get

func (s *Session) Get(
	url string,
	params *url.Values,
	headers *http.Header,
) (resp *http.Response, err error)

func (*Session) GetJSON

func (s *Session) GetJSON(
	url string,
	params *url.Values,
	headers *http.Header,
	responseContainer interface{},
) (resp *http.Response, err error)

func (*Session) Head

func (s *Session) Head(
	url string,
	params *url.Values,
	headers *http.Header,
) (resp *http.Response, err error)

func (*Session) Login

func (s *Session) Login(username string, password string, otp string) (err error)

func (*Session) NewRequest

func (s *Session) NewRequest(method, url string, headers *http.Header, body io.Reader) (req *http.Request, err error)

func (*Session) Post

func (s *Session) Post(
	url string,
	params *url.Values,
	headers *http.Header,
	body *[]byte,
) (resp *http.Response, err error)

func (*Session) PostJSON

func (s *Session) PostJSON(
	url string,
	params *url.Values,
	headers *http.Header,
	body interface{},
	responseContainer interface{},
) (resp *http.Response, err error)

func (*Session) Put

func (s *Session) Put(
	url string,
	params *url.Values,
	headers *http.Header,
	body *[]byte,
) (resp *http.Response, err error)

func (*Session) Request

func (s *Session) Request(
	method string,
	url string,
	params *url.Values,
	headers *http.Header,
	body *[]byte,
) (resp *http.Response, err error)

Perform a simple get to an endpoint

func (*Session) RequestJSON

func (s *Session) RequestJSON(
	method string,
	url string,
	params *url.Values,
	headers *http.Header,
	body interface{},
	responseContainer interface{},
) (resp *http.Response, err error)

Perform a simple get to an endpoint and unmarshall returned JSON

func (*Session) SetAPIToken

func (s *Session) SetAPIToken(userID, token string)

type VmRef

type VmRef struct {
	// contains filtered or unexported fields
}

VmRef - virtual machine ref parts map[type:qemu node:proxmox1-xx id:qemu/132 diskread:5.57424738e+08 disk:0 netin:5.9297450593e+10 mem:3.3235968e+09 uptime:1.4567097e+07 vmid:132 template:0 maxcpu:2 netout:6.053310416e+09 maxdisk:3.4359738368e+10 maxmem:8.592031744e+09 diskwrite:1.49663619584e+12 status:running cpu:0.00386980694947209 name:appt-app1-dev.xxx.xx]

func NewVmRef

func NewVmRef(vmId int) (vmr *VmRef)

func (*VmRef) GetVmType

func (vmr *VmRef) GetVmType() string

func (*VmRef) HaGroup

func (vmr *VmRef) HaGroup() string

func (*VmRef) HaState

func (vmr *VmRef) HaState() string

func (*VmRef) Node

func (vmr *VmRef) Node() string

func (*VmRef) Pool

func (vmr *VmRef) Pool() string

func (*VmRef) SetNode

func (vmr *VmRef) SetNode(node string)

func (*VmRef) SetPool

func (vmr *VmRef) SetPool(pool string)

func (*VmRef) SetVmType

func (vmr *VmRef) SetVmType(vmType string)

func (*VmRef) VmId

func (vmr *VmRef) VmId() int

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL