forked from nutanix/terraform-provider-nutanix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata_source_nutanix_host_test.go
105 lines (89 loc) · 3.17 KB
/
data_source_nutanix_host_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package nutanix
import (
"fmt"
"testing"
"github.com/hashicorp/terraform-plugin-sdk/helper/acctest"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
)
func TestAccNutanixHostDataSource_basic(t *testing.T) {
dataSourceName := "data.nutanix_host.test"
vmResourceName := "nutanix_virtual_machine.vm"
imgName := fmt.Sprintf("test-acc-dou-image-%s", acctest.RandString(3))
vmName := fmt.Sprintf("test-acc-dou-vm-%s", acctest.RandString(3))
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
Steps: []resource.TestStep{
{
Config: testAccHostDataSourceConfig(imgName, vmName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet(vmResourceName, "name"),
resource.TestCheckResourceAttrSet(vmResourceName, "cluster_uuid"),
resource.TestCheckResourceAttrSet(vmResourceName, "num_vcpus_per_socket"),
resource.TestCheckResourceAttrSet(vmResourceName, "num_sockets"),
resource.TestCheckResourceAttrSet(vmResourceName, "memory_size_mib"),
resource.TestCheckResourceAttrSet(vmResourceName, "serial_port_list.#"),
resource.TestCheckResourceAttrSet(vmResourceName, "disk_list.#"),
resource.TestCheckResourceAttr(vmResourceName, "name", vmName),
resource.TestCheckResourceAttr(vmResourceName, "num_vcpus_per_socket", "1"),
resource.TestCheckResourceAttr(vmResourceName, "num_sockets", "1"),
resource.TestCheckResourceAttr(vmResourceName, "memory_size_mib", "186"),
resource.TestCheckResourceAttr(vmResourceName, "serial_port_list.0.index", "1"),
resource.TestCheckResourceAttr(vmResourceName, "serial_port_list.0.is_connected", "true"),
resource.TestCheckResourceAttr(vmResourceName, "disk_list.#", "4"),
resource.TestCheckResourceAttrSet(dataSourceName, "host_id"),
),
},
},
})
}
func testAccHostDataSourceConfig(imgName, vmName string) string {
return fmt.Sprintf(`
data "nutanix_clusters" "clusters" {}
locals {
cluster1 = "${data.nutanix_clusters.clusters.entities.0.service_list.0 == "PRISM_CENTRAL"
? data.nutanix_clusters.clusters.entities.1.metadata.uuid : data.nutanix_clusters.clusters.entities.0.metadata.uuid}"
}
resource "nutanix_image" "cirros-034-disk" {
name = "%s"
source_uri = "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img"
description = "heres a tiny linux image, not an iso, but a real disk!"
}
resource "nutanix_virtual_machine" "vm" {
name = "%s"
cluster_uuid = "${local.cluster1}"
num_vcpus_per_socket = 1
num_sockets = 1
memory_size_mib = 186
serial_port_list {
index = 1
is_connected = true
}
disk_list {
data_source_reference = {
kind = "image"
uuid = "${nutanix_image.cirros-034-disk.id}"
}
device_properties {
disk_address = {
device_index = 0,
adapter_type = "IDE"
}
device_type = "CDROM"
}
}
disk_list {
disk_size_mib = 100
}
disk_list {
disk_size_mib = 200
}
disk_list {
disk_size_mib = 300
}
}
data "nutanix_host" "test" {
host_id = nutanix_virtual_machine.vm.host_reference.uuid
}
`, imgName, vmName)
}