summaryrefslogtreecommitdiff
path: root/libvirt/resource_libvirt_domain.go
diff options
context:
space:
mode:
authorThomas Hipp <thipp@suse.de>2017-12-22 14:02:17 +0100
committerThomas Hipp <thipp@suse.de>2017-12-22 14:19:00 +0100
commitfdb9486330b90d2f75d39b33a0c5abf5ccf5b4ea (patch)
treee28f761f91b40ebd84b882b7cb1c6d35d5e14794 /libvirt/resource_libvirt_domain.go
parent7b2adfc1f28d76399d63aaf50ff914268efbb87a (diff)
downloadterraform-provider-libvirt-fdb9486330b90d2f75d39b33a0c5abf5ccf5b4ea.tar
terraform-provider-libvirt-fdb9486330b90d2f75d39b33a0c5abf5ccf5b4ea.tar.gz
domain: honor arch, machine, and emulator settings
The settings 'arch', 'machine', and 'emulator' should be honored. The default values have been removed. Instead, if not provided, the values are determined by consulting libvirt directly. This fixes #262. Signed-off-by: Thomas Hipp <thipp@suse.de>
Diffstat (limited to 'libvirt/resource_libvirt_domain.go')
-rw-r--r--libvirt/resource_libvirt_domain.go18
1 files changed, 7 insertions, 11 deletions
diff --git a/libvirt/resource_libvirt_domain.go b/libvirt/resource_libvirt_domain.go
index 25516f7b..404fcb84 100644
--- a/libvirt/resource_libvirt_domain.go
+++ b/libvirt/resource_libvirt_domain.go
@@ -144,12 +144,12 @@ func resourceLibvirtDomain() *schema.Resource {
"machine": {
Type: schema.TypeString,
Optional: true,
- Default: "pc",
+ Computed: true,
},
"arch": {
Type: schema.TypeString,
Optional: true,
- Default: "x86_64",
+ Computed: true,
},
"boot_device": {
Type: schema.TypeList,
@@ -161,8 +161,8 @@ func resourceLibvirtDomain() *schema.Resource {
},
"emulator": {
Type: schema.TypeString,
- Default: "/usr/bin/qemu-system-x86_64",
Optional: true,
+ Computed: true,
},
"kernel": {
Type: schema.TypeString,
@@ -230,10 +230,11 @@ func resourceLibvirtDomainCreate(d *schema.ResourceData, meta interface{}) error
return fmt.Errorf(LibVirtConIsNil)
}
- domainDef, err := newDomainDefForConnection(virConn)
+ domainDef, err := newDomainDefForConnection(virConn, d)
if err != nil {
return err
}
+
if name, ok := d.GetOk("name"); ok {
domainDef.Name = name.(string)
}
@@ -307,10 +308,6 @@ func resourceLibvirtDomainCreate(d *schema.ResourceData, meta interface{}) error
}
}
- domainDef.OS.Type.Arch = d.Get("arch").(string)
- domainDef.OS.Type.Machine = d.Get("machine").(string)
- domainDef.Devices.Emulator = d.Get("emulator").(string)
-
if firmware, ok := d.GetOk("firmware"); ok {
firmwareFile := firmware.(string)
if _, err := os.Stat(firmwareFile); os.IsNotExist(err) {
@@ -871,7 +868,7 @@ func resourceLibvirtDomainRead(d *schema.ResourceData, meta interface{}) error {
log.Printf("[DEBUG] read: obtained XML desc for domain:\n%s", xmlDesc)
- domainDef, err := newDomainDefForConnection(virConn)
+ domainDef, err := newDomainDefForConnection(virConn, d)
if err != nil {
return err
}
@@ -894,7 +891,6 @@ func resourceLibvirtDomainRead(d *schema.ResourceData, meta interface{}) error {
d.Set("cpu", domainDef.CPU)
d.Set("arch", domainDef.OS.Type.Arch)
d.Set("autostart", autostart)
- d.Set("arch", domainDef.OS.Type.Arch)
cmdLines, err := splitKernelCmdLine(domainDef.OS.KernelArgs)
if err != nil {
@@ -1116,7 +1112,7 @@ func resourceLibvirtDomainDelete(d *schema.ResourceData, meta interface{}) error
return fmt.Errorf("Error retrieving libvirt domain XML description: %s", err)
}
- domainDef, err := newDomainDefForConnection(virConn)
+ domainDef, err := newDomainDefForConnection(virConn, d)
if err != nil {
return err
}