Loading domain.go +70 −0 Original line number Diff line number Diff line Loading @@ -957,6 +957,7 @@ const ( DOMAIN_GUEST_INFO_DISKS = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_DISKS) DOMAIN_GUEST_INFO_INTERFACES = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_INTERFACES) DOMAIN_GUEST_INFO_LOAD = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_LOAD) DOMAIN_GUEST_INFO_DEVICES = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_DEVICES) ) type DomainAgentSetResponseTimeoutValues int Loading Loading @@ -5632,6 +5633,56 @@ func getDomainGuestInfoLoadFieldInfo(params *DomainGuestInfoLoad) map[string]typ } } type DomainGuestInfoDevice struct { DriverNameSet bool DriverName string DriverDateSet bool DriverDate int64 DriverVersionSet bool DriverVersion string IDTypeSet bool IDType string PCIVendorSet bool PCIVendor uint PCIDeviceSet bool PCIDevice uint } func getDomainGuestInfoDeviceFieldInfo(idx int, params *DomainGuestInfoDevice) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_NAME, idx): typedParamsFieldInfo{ set: ¶ms.DriverNameSet, s: ¶ms.DriverName, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_DATE, idx): typedParamsFieldInfo{ set: ¶ms.DriverDateSet, l: ¶ms.DriverDate, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_VERSION, idx): typedParamsFieldInfo{ set: ¶ms.DriverVersionSet, s: ¶ms.DriverVersion, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_ID_TYPE, idx): typedParamsFieldInfo{ set: ¶ms.IDTypeSet, s: ¶ms.IDType, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_VENDOR, idx): typedParamsFieldInfo{ set: ¶ms.PCIVendorSet, ui: ¶ms.PCIVendor, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_DEVICE, idx): typedParamsFieldInfo{ set: ¶ms.PCIDeviceSet, ui: ¶ms.PCIDevice, }, } } type DomainGuestInfo struct { Users []DomainGuestInfoUser OS *DomainGuestInfoOS Loading @@ -5642,6 +5693,7 @@ type DomainGuestInfo struct { Disks []DomainGuestInfoDisk Interfaces []DomainGuestInfoInterface Load *DomainGuestInfoLoad Devices []DomainGuestInfoDevice } func getDomainGuestInfoFieldInfo(params *DomainGuestInfo) map[string]typedParamsFieldInfo { Loading @@ -5662,6 +5714,8 @@ type domainGuestInfoLengths struct { DiskCount uint InterfaceCountSet bool InterfaceCount uint DeviceCountSet bool DeviceCount uint } func getDomainGuestInfoLengthsFieldInfo(params *domainGuestInfoLengths) map[string]typedParamsFieldInfo { Loading @@ -5682,6 +5736,10 @@ func getDomainGuestInfoLengthsFieldInfo(params *domainGuestInfoLengths) map[stri set: ¶ms.InterfaceCountSet, ui: ¶ms.InterfaceCount, }, C.VIR_DOMAIN_GUEST_INFO_DEVICE_COUNT: typedParamsFieldInfo{ set: ¶ms.DeviceCountSet, ui: ¶ms.DeviceCount, }, } } Loading Loading @@ -5846,6 +5904,18 @@ func (d *Domain) GetGuestInfo(types DomainGuestInfoTypes, flags uint32) (*Domain return nil, gerr } if lengths.DeviceCountSet && lengths.DeviceCount > 0 { info.Devices = make([]DomainGuestInfoDevice, lengths.DeviceCount) for i := 0; i < int(lengths.DeviceCount); i++ { device := getDomainGuestInfoDeviceFieldInfo(i, &info.Devices[i]) _, gerr = typedParamsUnpack(cparams, cnparams, device) if gerr != nil { return nil, gerr } } } return &info, nil } Loading Loading
domain.go +70 −0 Original line number Diff line number Diff line Loading @@ -957,6 +957,7 @@ const ( DOMAIN_GUEST_INFO_DISKS = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_DISKS) DOMAIN_GUEST_INFO_INTERFACES = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_INTERFACES) DOMAIN_GUEST_INFO_LOAD = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_LOAD) DOMAIN_GUEST_INFO_DEVICES = DomainGuestInfoTypes(C.VIR_DOMAIN_GUEST_INFO_DEVICES) ) type DomainAgentSetResponseTimeoutValues int Loading Loading @@ -5632,6 +5633,56 @@ func getDomainGuestInfoLoadFieldInfo(params *DomainGuestInfoLoad) map[string]typ } } type DomainGuestInfoDevice struct { DriverNameSet bool DriverName string DriverDateSet bool DriverDate int64 DriverVersionSet bool DriverVersion string IDTypeSet bool IDType string PCIVendorSet bool PCIVendor uint PCIDeviceSet bool PCIDevice uint } func getDomainGuestInfoDeviceFieldInfo(idx int, params *DomainGuestInfoDevice) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_NAME, idx): typedParamsFieldInfo{ set: ¶ms.DriverNameSet, s: ¶ms.DriverName, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_DATE, idx): typedParamsFieldInfo{ set: ¶ms.DriverDateSet, l: ¶ms.DriverDate, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_VERSION, idx): typedParamsFieldInfo{ set: ¶ms.DriverVersionSet, s: ¶ms.DriverVersion, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_ID_TYPE, idx): typedParamsFieldInfo{ set: ¶ms.IDTypeSet, s: ¶ms.IDType, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_VENDOR, idx): typedParamsFieldInfo{ set: ¶ms.PCIVendorSet, ui: ¶ms.PCIVendor, }, fmt.Sprintf(C.VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX+"%d"+ C.VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_DEVICE, idx): typedParamsFieldInfo{ set: ¶ms.PCIDeviceSet, ui: ¶ms.PCIDevice, }, } } type DomainGuestInfo struct { Users []DomainGuestInfoUser OS *DomainGuestInfoOS Loading @@ -5642,6 +5693,7 @@ type DomainGuestInfo struct { Disks []DomainGuestInfoDisk Interfaces []DomainGuestInfoInterface Load *DomainGuestInfoLoad Devices []DomainGuestInfoDevice } func getDomainGuestInfoFieldInfo(params *DomainGuestInfo) map[string]typedParamsFieldInfo { Loading @@ -5662,6 +5714,8 @@ type domainGuestInfoLengths struct { DiskCount uint InterfaceCountSet bool InterfaceCount uint DeviceCountSet bool DeviceCount uint } func getDomainGuestInfoLengthsFieldInfo(params *domainGuestInfoLengths) map[string]typedParamsFieldInfo { Loading @@ -5682,6 +5736,10 @@ func getDomainGuestInfoLengthsFieldInfo(params *domainGuestInfoLengths) map[stri set: ¶ms.InterfaceCountSet, ui: ¶ms.InterfaceCount, }, C.VIR_DOMAIN_GUEST_INFO_DEVICE_COUNT: typedParamsFieldInfo{ set: ¶ms.DeviceCountSet, ui: ¶ms.DeviceCount, }, } } Loading Loading @@ -5846,6 +5904,18 @@ func (d *Domain) GetGuestInfo(types DomainGuestInfoTypes, flags uint32) (*Domain return nil, gerr } if lengths.DeviceCountSet && lengths.DeviceCount > 0 { info.Devices = make([]DomainGuestInfoDevice, lengths.DeviceCount) for i := 0; i < int(lengths.DeviceCount); i++ { device := getDomainGuestInfoDeviceFieldInfo(i, &info.Devices[i]) _, gerr = typedParamsUnpack(cparams, cnparams, device) if gerr != nil { return nil, gerr } } } return &info, nil } Loading