summaryrefslogtreecommitdiff
path: root/libvirt/utils_libvirt.go
diff options
context:
space:
mode:
authorThomas Hipp <thipp@suse.de>2017-02-22 13:20:09 +0100
committerThomas Hipp <thipp@suse.de>2017-03-15 13:59:59 +0100
commitd6174cad42eef4d8d08bddb4d316620ae0a75f9b (patch)
tree1061566017c02c6d1aa31b7834914139ee246332 /libvirt/utils_libvirt.go
parent7bcecfecfe90390ea14d27c324111a1224b86280 (diff)
downloadterraform-provider-libvirt-d6174cad42eef4d8d08bddb4d316620ae0a75f9b.tar
terraform-provider-libvirt-d6174cad42eef4d8d08bddb4d316620ae0a75f9b.tar.gz
Exclude `graphics` block on s390x and ppc64
Since the `graphics` and `video` devices cause problems on s390x and ppc64, they are ignored when creating a domain. Signed-off-by: Thomas Hipp <thipp@suse.de>
Diffstat (limited to 'libvirt/utils_libvirt.go')
-rw-r--r--libvirt/utils_libvirt.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/libvirt/utils_libvirt.go b/libvirt/utils_libvirt.go
index e14e9554..5b38a5ea 100644
--- a/libvirt/utils_libvirt.go
+++ b/libvirt/utils_libvirt.go
@@ -1,6 +1,7 @@
package libvirt
import (
+ "encoding/xml"
"log"
libvirt "github.com/dmacvicar/libvirt-go"
@@ -39,3 +40,26 @@ func updateHost(n *libvirt.VirNetwork, ip, mac, name string) error {
log.Printf("Updating host with XML:\n%s", xmlDesc)
return n.UpdateXMLDesc(xmlDesc, libvirt.VIR_NETWORK_UPDATE_COMMAND_MODIFY, libvirt.VIR_NETWORK_SECTION_IP_DHCP_HOST)
}
+
+func getHostArchitecture(virConn *libvirt.VirConnection) (string, error) {
+ type HostCapabilities struct {
+ XMLName xml.Name `xml:"capabilities"`
+ Host struct {
+ XMLName xml.Name `xml:"host"`
+ CPU struct {
+ XMLName xml.Name `xml:"cpu"`
+ Arch string `xml:"arch"`
+ }
+ }
+ }
+
+ info, err := virConn.GetCapabilities()
+ if err != nil {
+ return "", err
+ }
+
+ capabilities := HostCapabilities{}
+ xml.Unmarshal([]byte(info), &capabilities)
+
+ return capabilities.Host.CPU.Arch, nil
+}