nodes

package
v0.42.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2023 License: MPL-2.0 Imports: 19 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CertificateDeleteRequestBody

type CertificateDeleteRequestBody struct {
	Restart *types.CustomBool `json:"restart,omitempty" url:"restart,omitempty,int"`
}

CertificateDeleteRequestBody contains the data for a custom certificate delete request.

type CertificateListResponseBody

type CertificateListResponseBody struct {
	Data *[]CertificateListResponseData `json:"data,omitempty"`
}

CertificateListResponseBody contains the body from a certificate list response.

type CertificateListResponseData

type CertificateListResponseData struct {
	Certificates            *string                `json:"pem,omitempty"`
	FileName                *string                `json:"filename,omitempty"`
	Fingerprint             *string                `json:"fingerprint,omitempty"`
	Issuer                  *string                `json:"issuer,omitempty"`
	NotAfter                *types.CustomTimestamp `json:"notafter,omitempty"`
	NotBefore               *types.CustomTimestamp `json:"notbefore,omitempty"`
	PublicKeyBits           *int                   `json:"public-key-bits,omitempty"`
	PublicKeyType           *string                `json:"public-key-type,omitempty"`
	Subject                 *string                `json:"subject,omitempty"`
	SubjectAlternativeNames *[]string              `json:"san,omitempty"`
}

CertificateListResponseData contains the data from a certificate list response.

type CertificateUpdateRequestBody

type CertificateUpdateRequestBody struct {
	Certificates string            `json:"certificates"      url:"certificates"`
	Force        *types.CustomBool `json:"force,omitempty"   url:"force,omitempty,int"`
	PrivateKey   *string           `json:"key,omitempty"     url:"key,omitempty"`
	Restart      *types.CustomBool `json:"restart,omitempty" url:"restart,omitempty,int"`
}

CertificateUpdateRequestBody contains the body for a custom certificate update request.

type Client

type Client struct {
	api.Client
	NodeName string
}

Client is an interface for accessing the Proxmox node API.

func (*Client) APIUpload

func (c *Client) APIUpload(
	ctx context.Context,
	datastoreID string,
	d *api.FileUploadRequest,
	uploadTimeout int,
	tempDir string,
) (*DatastoreUploadResponseBody, error)

APIUpload uploads a file to a datastore using the Proxmox API.

func (*Client) Container

func (c *Client) Container(vmID int) *containers.Client

Container returns a client for managing a specific container.

func (*Client) CreateNetworkInterface added in v0.22.0

func (c *Client) CreateNetworkInterface(ctx context.Context, d *NetworkInterfaceCreateUpdateRequestBody) error

CreateNetworkInterface creates a network interface for a specific node.

func (*Client) DeleteCertificate

func (c *Client) DeleteCertificate(ctx context.Context, d *CertificateDeleteRequestBody) error

DeleteCertificate deletes the custom certificate for a node.

func (*Client) DeleteDatastoreFile

func (c *Client) DeleteDatastoreFile(
	ctx context.Context,
	datastoreID, volumeID string,
) error

DeleteDatastoreFile deletes a file in a datastore.

func (*Client) DeleteNetworkInterface added in v0.22.0

func (c *Client) DeleteNetworkInterface(ctx context.Context, iface string) error

DeleteNetworkInterface deletes a network interface configuration for a specific node.

func (*Client) ExpandPath

func (c *Client) ExpandPath(path string) string

ExpandPath expands a relative path to a full node API path.

func (*Client) GetDNS

func (c *Client) GetDNS(ctx context.Context) (*DNSGetResponseData, error)

GetDNS retrieves the DNS configuration for a node.

func (*Client) GetDatastoreStatus

func (c *Client) GetDatastoreStatus(
	ctx context.Context,
	datastoreID string,
) (*DatastoreGetStatusResponseData, error)

GetDatastoreStatus gets status information for a given datastore.

func (*Client) GetHosts

func (c *Client) GetHosts(ctx context.Context) (*HostsGetResponseData, error)

GetHosts retrieves the Hosts configuration for a node.

func (*Client) GetTime

func (c *Client) GetTime(ctx context.Context) (*GetTimeResponseData, error)

GetTime retrieves the time information for a node.

func (*Client) ListCertificates

func (c *Client) ListCertificates(ctx context.Context) (*[]CertificateListResponseData, error)

ListCertificates retrieves the list of certificates for a node.

func (*Client) ListDatastoreFiles

func (c *Client) ListDatastoreFiles(
	ctx context.Context,
	datastoreID string,
) ([]*DatastoreFileListResponseData, error)

ListDatastoreFiles retrieves a list of the files in a datastore.

func (*Client) ListDatastores

func (c *Client) ListDatastores(
	ctx context.Context,
	d *DatastoreListRequestBody,
) ([]*DatastoreListResponseData, error)

ListDatastores retrieves a list of nodes.

func (*Client) ListNetworkInterfaces added in v0.22.0

func (c *Client) ListNetworkInterfaces(ctx context.Context) ([]*NetworkInterfaceListResponseData, error)

ListNetworkInterfaces retrieves a list of network interfaces for a specific nodes.

func (*Client) ListNodes

func (c *Client) ListNodes(ctx context.Context) ([]*ListResponseData, error)

ListNodes retrieves a list of nodes.

func (*Client) ReloadNetworkConfiguration added in v0.22.0

func (c *Client) ReloadNetworkConfiguration(ctx context.Context) error

ReloadNetworkConfiguration reloads the network configuration for a specific node.

func (*Client) RevertNetworkConfiguration added in v0.22.0

func (c *Client) RevertNetworkConfiguration(ctx context.Context) error

RevertNetworkConfiguration reverts the network configuration changes for a specific node.

func (*Client) Tasks added in v0.22.0

func (c *Client) Tasks() *tasks.Client

Tasks returns a client for managing VM tasks.

func (*Client) UpdateCertificate

func (c *Client) UpdateCertificate(ctx context.Context, d *CertificateUpdateRequestBody) error

UpdateCertificate updates the custom certificate for a node.

func (*Client) UpdateDNS

func (c *Client) UpdateDNS(ctx context.Context, d *DNSUpdateRequestBody) error

UpdateDNS updates the DNS configuration for a node.

func (*Client) UpdateHosts

func (c *Client) UpdateHosts(ctx context.Context, d *HostsUpdateRequestBody) error

UpdateHosts updates the Hosts configuration for a node.

func (*Client) UpdateNetworkInterface added in v0.22.0

func (c *Client) UpdateNetworkInterface(
	ctx context.Context,
	iface string,
	d *NetworkInterfaceCreateUpdateRequestBody,
) error

UpdateNetworkInterface updates a network interface for a specific node.

func (*Client) UpdateTime

func (c *Client) UpdateTime(ctx context.Context, d *UpdateTimeRequestBody) error

UpdateTime updates the time on a node.

func (*Client) VM

func (c *Client) VM(vmID int) *vms.Client

VM returns a client for managing a specific VM.

type CustomCommands

type CustomCommands []string

CustomCommands contains an array of commands to execute.

func (CustomCommands) EncodeValues

func (r CustomCommands) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomCommands array to a JSON encoded URL value.

type DNSGetResponseBody

type DNSGetResponseBody struct {
	Data *DNSGetResponseData `json:"data,omitempty"`
}

DNSGetResponseBody contains the body from a DNS get response.

type DNSGetResponseData

type DNSGetResponseData struct {
	Server1      *string `json:"dns1,omitempty"   url:"dns1,omitempty"`
	Server2      *string `json:"dns2,omitempty"   url:"dns2,omitempty"`
	Server3      *string `json:"dns3,omitempty"   url:"dns3,omitempty"`
	SearchDomain *string `json:"search,omitempty" url:"search,omitempty"`
}

DNSGetResponseData contains the data from a DNS get response.

type DNSUpdateRequestBody

type DNSUpdateRequestBody struct {
	Server1      *string `json:"dns1,omitempty"   url:"dns1,omitempty"`
	Server2      *string `json:"dns2,omitempty"   url:"dns2,omitempty"`
	Server3      *string `json:"dns3,omitempty"   url:"dns3,omitempty"`
	SearchDomain *string `json:"search,omitempty" url:"search,omitempty"`
}

DNSUpdateRequestBody contains the body for a DNS update request.

type DatastoreFileListResponseBody

type DatastoreFileListResponseBody struct {
	Data []*DatastoreFileListResponseData `json:"data,omitempty"`
}

DatastoreFileListResponseBody contains the body from a datastore content list response.

type DatastoreFileListResponseData

type DatastoreFileListResponseData struct {
	ContentType    string  `json:"content"`
	FileFormat     string  `json:"format"`
	FileSize       int64   `json:"size"`
	ParentVolumeID *string `json:"parent,omitempty"`
	SpaceUsed      *int    `json:"used,omitempty"`
	VMID           *int    `json:"vmid,omitempty"`
	VolumeID       string  `json:"volid"`
}

DatastoreFileListResponseData contains the data from a datastore content list response.

type DatastoreGetStatusResponseBody

type DatastoreGetStatusResponseBody struct {
	Data *DatastoreGetStatusResponseData `json:"data,omitempty"`
}

DatastoreGetStatusResponseBody contains the body from a datastore status get request.

type DatastoreGetStatusResponseData

type DatastoreGetStatusResponseData struct {
	Active         *types.CustomBool               `json:"active,omitempty"`
	AvailableBytes *int64                          `json:"avail,omitempty"`
	Content        *types.CustomCommaSeparatedList `json:"content,omitempty" url:"content,omitempty,comma"`
	Enabled        *types.CustomBool               `json:"enabled,omitempty"`
	Shared         *types.CustomBool               `json:"shared,omitempty"`
	TotalBytes     *int64                          `json:"total,omitempty"`
	Type           *string                         `json:"type,omitempty"`
	UsedBytes      *int64                          `json:"used,omitempty"`
}

DatastoreGetStatusResponseData contains the data from a datastore status get request.

type DatastoreListRequestBody

type DatastoreListRequestBody struct {
	ContentTypes types.CustomCommaSeparatedList `json:"content,omitempty" url:"content,omitempty,comma"`
	Enabled      *types.CustomBool              `json:"enabled,omitempty" url:"enabled,omitempty,int"`
	Format       *types.CustomBool              `json:"format,omitempty"  url:"format,omitempty,int"`
	ID           *string                        `json:"storage,omitempty" url:"storage,omitempty"`
	Target       *string                        `json:"target,omitempty"  url:"target,omitempty"`
}

DatastoreListRequestBody contains the body for a datastore list request.

type DatastoreListResponseBody

type DatastoreListResponseBody struct {
	Data []*DatastoreListResponseData `json:"data,omitempty"`
}

DatastoreListResponseBody contains the body from a datastore list response.

type DatastoreListResponseData

type DatastoreListResponseData struct {
	Active              *types.CustomBool               `json:"active,omitempty"`
	ContentTypes        *types.CustomCommaSeparatedList `json:"content,omitempty"`
	Enabled             *types.CustomBool               `json:"enabled,omitempty"`
	ID                  string                          `json:"storage,omitempty"`
	Shared              *types.CustomBool               `json:"shared,omitempty"`
	SpaceAvailable      *int                            `json:"avail,omitempty"`
	SpaceTotal          *int                            `json:"total,omitempty"`
	SpaceUsed           *int                            `json:"used,omitempty"`
	SpaceUsedPercentage *float64                        `json:"used_fraction,omitempty"`
	Type                string                          `json:"type,omitempty"`
}

DatastoreListResponseData contains the data from a datastore list response.

type DatastoreUploadResponseBody

type DatastoreUploadResponseBody struct {
	UploadID *string `json:"data,omitempty"`
}

DatastoreUploadResponseBody contains the body from a datastore upload response.

type ExecuteRequestBody

type ExecuteRequestBody struct {
	Commands CustomCommands `json:"commands" url:"commands"`
}

ExecuteRequestBody contains the data for a node execute request.

type GetTimeResponseBody

type GetTimeResponseBody struct {
	Data *GetTimeResponseData `json:"data,omitempty"`
}

GetTimeResponseBody contains the body from a node time zone get response.

type GetTimeResponseData

type GetTimeResponseData struct {
	LocalTime types.CustomTimestamp `json:"localtime"`
	TimeZone  string                `json:"timezone"`
	UTCTime   types.CustomTimestamp `json:"time"`
}

GetTimeResponseData contains the data from a node list response.

type HostsGetResponseBody

type HostsGetResponseBody struct {
	Data *HostsGetResponseData `json:"data,omitempty"`
}

HostsGetResponseBody contains the body from a hosts get response.

type HostsGetResponseData

type HostsGetResponseData struct {
	Data   string  `json:"data"`
	Digest *string `json:"digest,omitempty"`
}

HostsGetResponseData contains the data from a hosts get response.

type HostsUpdateRequestBody

type HostsUpdateRequestBody struct {
	Data   string  `json:"data"             url:"data"`
	Digest *string `json:"digest,omitempty" url:"digest,omitempty"`
}

HostsUpdateRequestBody contains the body for a hosts update request.

type ListResponseBody

type ListResponseBody struct {
	Data []*ListResponseData `json:"data,omitempty"`
}

ListResponseBody contains the body from a node list response.

type ListResponseData

type ListResponseData struct {
	CPUCount        *int     `json:"maxcpu,omitempty"`
	CPUUtilization  *float64 `json:"cpu,omitempty"`
	MemoryAvailable *int     `json:"maxmem,omitempty"`
	MemoryUsed      *int     `json:"mem,omitempty"`
	Name            string   `json:"node"`
	SSLFingerprint  *string  `json:"ssl_fingerprint,omitempty"`
	Status          *string  `json:"status"`
	SupportLevel    *string  `json:"level,omitempty"`
	Uptime          *int     `json:"uptime"`
}

ListResponseData contains the data from a node list response.

type NetworkInterfaceCreateUpdateRequestBody added in v0.22.0

type NetworkInterfaceCreateUpdateRequestBody struct {
	Iface string `json:"iface" url:"iface"`
	Type  string `json:"type"  url:"type"`

	Address            *string           `json:"address,omitempty"               url:"address,omitempty"`
	Address6           *string           `json:"address6,omitempty"              url:"address6,omitempty"`
	Autostart          *types.CustomBool `json:"autostart,omitempty"             url:"autostart,omitempty,int"`
	BondPrimary        *string           `json:"bond-primary,omitempty"          url:"bond-primary,omitempty"`
	BondMode           *string           `json:"bond_mode,omitempty"             url:"bond_mode,omitempty"`
	BondXmitHashPolicy *string           `json:"bond_xmit_hash_policy,omitempty" url:"bond_xmit_hash_policy,omitempty"`
	BridgePorts        *string           `json:"bridge_ports,omitempty"          url:"bridge_ports,omitempty"`
	BridgeVLANAware    *types.CustomBool `json:"bridge_vlan_aware,omitempty"     url:"bridge_vlan_aware,omitempty,int"`
	CIDR               *string           `json:"cidr,omitempty"                  url:"cidr,omitempty"`
	CIDR6              *string           `json:"cidr6,omitempty"                 url:"cidr6,omitempty"`
	Comments           *string           `json:"comments,omitempty"              url:"comments,omitempty"`
	Comments6          *string           `json:"comments6,omitempty"             url:"comments6,omitempty"`
	Gateway            *string           `json:"gateway,omitempty"               url:"gateway,omitempty"`
	Gateway6           *string           `json:"gateway6,omitempty"              url:"gateway6,omitempty"`
	Delete             *[]string         `json:"delete,omitempty"                url:"delete,omitempty"`
	MTU                *int64            `json:"mtu,omitempty"                   url:"mtu,omitempty"`
	Netmask            *string           `json:"netmask,omitempty"               url:"netmask,omitempty"`
	Netmask6           *string           `json:"netmask6,omitempty"              url:"netmask6,omitempty"`
	OVSBonds           *string           `json:"ovs_bonds,omitempty"             url:"ovs_bonds,omitempty"`
	OVSBridge          *string           `json:"ovs_bridge,omitempty"            url:"ovs_bridge,omitempty"`
	OVSOptions         *string           `json:"ovs_options,omitempty"           url:"ovs_options,omitempty"`
	OVSPorts           *string           `json:"ovs_ports,omitempty"             url:"ovs_ports,omitempty"`
	OVSTag             *string           `json:"ovs_tag,omitempty"               url:"ovs_tag,omitempty"`
	Slaves             *string           `json:"slaves,omitempty"                url:"slaves,omitempty"`
	VLANID             *int64            `json:"vlan-id,omitempty"               url:"vlan-id,omitempty"`
	VLANRawDevice      *string           `json:"vlan-raw-device,omitempty"       url:"vlan-raw-device,omitempty"`
}

NetworkInterfaceCreateUpdateRequestBody contains the body for a node network interface create / update request.

type NetworkInterfaceListResponseBody added in v0.22.0

type NetworkInterfaceListResponseBody struct {
	Data []*NetworkInterfaceListResponseData `json:"data,omitempty"`
}

NetworkInterfaceListResponseBody contains the body from a node network interface list response.

type NetworkInterfaceListResponseData added in v0.22.0

type NetworkInterfaceListResponseData struct {
	Active          *types.CustomBool `json:"active,omitempty"`
	Address         *string           `json:"address,omitempty"`
	Address6        *string           `json:"address6,omitempty"`
	Autostart       *types.CustomBool `json:"autostart,omitempty"`
	BridgePorts     *string           `json:"bridge_ports,omitempty"`
	BridgeSTP       *string           `json:"bridge_stp,omitempty"`
	BridgeVIDs      *string           `json:"bridge_vids,omitempty"`
	BridgeVLANAware *types.CustomBool `json:"bridge_vlan_aware,omitempty"`
	CIDR            *string           `json:"cidr,omitempty"`
	CIDR6           *string           `json:"cidr6,omitempty"`
	Comments        *string           `json:"comments,omitempty"`
	Exists          *types.CustomBool `json:"exists,omitempty"`
	Families        *[]string         `json:"families,omitempty"`
	Gateway         *string           `json:"gateway,omitempty"`
	Gateway6        *string           `json:"gateway6,omitempty"`
	Iface           string            `json:"iface"`
	MethodIPv4      *string           `json:"method,omitempty"`
	MethodIPv6      *string           `json:"method6,omitempty"`
	MTU             *string           `json:"mtu,omitempty"`
	Netmask         *string           `json:"netmask,omitempty"`
	VLANID          *string           `json:"vlan-id,omitempty"`
	VLANRawDevice   *string           `json:"vlan-raw-device,omitempty"`
	Priority        int               `json:"priority"`
	Type            string            `json:"type"`
}

NetworkInterfaceListResponseData contains the data from a node network interface list response.

type ReloadNetworkResponseBody added in v0.22.0

type ReloadNetworkResponseBody struct {
	Data *string `json:"data,omitempty"`
}

ReloadNetworkResponseBody contains the body from a node network reload response.

type UpdateTimeRequestBody

type UpdateTimeRequestBody struct {
	TimeZone string `json:"timezone" url:"timezone"`
}

UpdateTimeRequestBody contains the body for a node time update request.

Directories

Path Synopsis
vms

Jump to

Keyboard shortcuts

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