Documentation ¶
Index ¶
- func AssertNoNonSchemaValues(devices pxapi.QemuDevices, schemaDef *schema.Schema) error
- func BIOSValidator() schema.SchemaValidateDiagFunc
- func BoolPointer(b bool) *bool
- func BuildSmbiosArgs(smbiosList []interface{}) string
- func ByteCountIEC(b int64) string
- func ConfigureLogger(enableOutput bool, logPath string, inputLogLevels map[string]string)
- func CreateSubLogger(loggerName string) (zerolog.Logger, error)
- func DevicesListToDevices(devicesList []interface{}, key string) pxapi.QemuDevices
- func DevicesSetToMap(devicesSet *schema.Set) (pxapi.QemuDevices, error)
- func DevicesSetToMapWithoutId(devicesSet *schema.Set) pxapi.QemuDevices
- func DropElementsFromMap(elements []string, mapList []map[string]interface{}) ([]map[string]interface{}, error)
- func ExpandDevicesList(deviceList []interface{}) (pxapi.QemuDevices, error)
- func FlattenDevicesList(proxmoxDevices pxapi.QemuDevices) ([]map[string]interface{}, error)
- func MacAddressValidator() schema.SchemaValidateDiagFunc
- func MachineTypeValidator() schema.SchemaValidateDiagFunc
- func Provider() *schema.Provider
- func ReadSmbiosArgs(smbios string) []interface{}
- func UpdateDeviceConfDefaults(activeDeviceConf pxapi.QemuDevice, defaultDeviceConf *schema.Set) *schema.Set
- func UpdateDevicesSet(devicesSet *schema.Set, devicesMap pxapi.QemuDevices, idKey string) *schema.Set
- func VMIDValidator() schema.SchemaValidateDiagFunc
- func VMStateValidator() schema.SchemaValidateDiagFunc
- type KeyedDeviceMap
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertNoNonSchemaValues ¶
func AssertNoNonSchemaValues( devices pxapi.QemuDevices, schemaDef *schema.Schema, ) error
func BIOSValidator ¶
func BIOSValidator() schema.SchemaValidateDiagFunc
func BoolPointer ¶
func BuildSmbiosArgs ¶
func BuildSmbiosArgs(smbiosList []interface{}) string
func ByteCountIEC ¶
func ConfigureLogger ¶
Configure the debug logger for this provider. The goal here is to enable selective amounts of output for targetted debugging without overwhelming with data from sources the user/developer doesn't care about.
logLevels can be specifed as follows:
map[string]string keys can be: * '_root' - to affect the root logger * '_capturelog' - (with any level set) to tell us to capture all message through the native log library * '_default' - sets the default log level (if this is not set, the default is INFO) (any other string) - the level to set that SubLogger to Eventually we'll have a list of all subloggers that can be displayed/generated but for now, unfortuantely, the code is the manual on that. I'll do my best to keep this doc string updated. Known Subloggers: * resource_vm_create - logs from the create function * resource_vm_read - logs from the read function values can be one of "panic", "fatal", "error", "warn", "info", "debug", "trace". these will be mapped out to the zerolog levels. See the levelStringToZerologLevel function.
logs will be written out to the logPath specified. An existing file at that path will be appended to. note that there are some information (like our redirection of the built-in log library) which will not follow the zerolog pattern and thus could mess with parsing. This is annoying but something to fix in a future verison.
func CreateSubLogger ¶
Create a sublogger from the rootLogger This is helpful as it allows for custom logging level for each component/part of the system.
The loggerName string is used to set the name of the logger in message outputs (as a key-val pair) but also as a way to know what we should set the logging level for this sublogger to (info/trace/warn/etc)
func DevicesListToDevices ¶
func DevicesListToDevices(devicesList []interface{}, key string) pxapi.QemuDevices
func DevicesSetToMap ¶
func DevicesSetToMap(devicesSet *schema.Set) (pxapi.QemuDevices, error)
Converting from schema.TypeSet to map of id and conf for each device, which will be sent to Proxmox API.
func DevicesSetToMapWithoutId ¶
func DevicesSetToMapWithoutId(devicesSet *schema.Set) pxapi.QemuDevices
func DropElementsFromMap ¶
func DropElementsFromMap(elements []string, mapList []map[string]interface{}) ([]map[string]interface{}, error)
Drops an element from each map in a []map[string]interface{} this allows a quick and easy way to remove things like "id" that is added by the proxmox api go library when we instead encode that id as the list index (and thus terraform would reject it in a d.Set(..) call WARNING mutates the list fed in! make a copy if you need to keep the original
func ExpandDevicesList ¶
func ExpandDevicesList(deviceList []interface{}) (pxapi.QemuDevices, error)
Consumes a terraform TypeList of a Qemu Device (network, hard drive, etc) and returns the "Expanded" version of the equivalent configuration that the API understands (the struct pxapi.QemuDevices). NOTE this expects the provided deviceList to be []map[string]interface{}.
func FlattenDevicesList ¶
func FlattenDevicesList(proxmoxDevices pxapi.QemuDevices) ([]map[string]interface{}, error)
Consumes an API return (pxapi.QemuDevices) and "flattens" it into a []map[string]interface{} as expected by the terraform interface for TypeList
func MacAddressValidator ¶
func MacAddressValidator() schema.SchemaValidateDiagFunc
func MachineTypeValidator ¶
func MachineTypeValidator() schema.SchemaValidateDiagFunc
func ReadSmbiosArgs ¶
func ReadSmbiosArgs(smbios string) []interface{}
func UpdateDevicesSet ¶
func UpdateDevicesSet( devicesSet *schema.Set, devicesMap pxapi.QemuDevices, idKey string, ) *schema.Set
Update schema.TypeSet with new values comes from Proxmox API. TODO: remove these set functions and convert attributes using a set to a list instead.
func VMIDValidator ¶
func VMIDValidator() schema.SchemaValidateDiagFunc
func VMStateValidator ¶
func VMStateValidator() schema.SchemaValidateDiagFunc
Types ¶
type KeyedDeviceMap ¶
type KeyedDeviceMap map[interface{}]pxapi.QemuDevice
func DeviceToMap ¶
func DeviceToMap(device pxapi.QemuDevice, key interface{}) KeyedDeviceMap
func DevicesListToMapByKey ¶
func DevicesListToMapByKey(devicesList []interface{}, key string) KeyedDeviceMap