@@ -22,6 +22,12 @@ func TestAccDataSourceComputeInstanceGuestAttributes_basic(t *testing.T) {
22
22
ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories (t ),
23
23
CheckDestroy : testAccCheckComputeInstanceDestroyProducer (t ),
24
24
Steps : []resource.TestStep {
25
+ {
26
+ Config : testAccDataSourceComputeInstanceGuestAttributesConfig_queryPath_empty (instanceName ),
27
+ Check : resource .ComposeTestCheckFunc (
28
+ resource .TestCheckNoResourceAttr ("data.google_compute_instance_guest_attributes.bar" , "query_value" ),
29
+ ),
30
+ },
25
31
{
26
32
//need to create the guest_attributes metadata from startup script first
27
33
Config : testAccDataSourceComputeInstanceGuestAttributesInitialConfig (instanceName ),
@@ -42,6 +48,12 @@ func TestAccDataSourceComputeInstanceGuestAttributes_basic(t *testing.T) {
42
48
resource .TestCheckResourceAttr ("data.google_compute_instance_guest_attributes.bar" , "query_value.1.value" , "test2" ),
43
49
),
44
50
},
51
+ {
52
+ Config : testAccDataSourceComputeInstanceGuestAttributesConfig_queryPath_nonExistent (instanceName ),
53
+ Check : resource .ComposeTestCheckFunc (
54
+ resource .TestCheckNoResourceAttr ("data.google_compute_instance_guest_attributes.bar" , "query_value" ),
55
+ ),
56
+ },
45
57
},
46
58
})
47
59
}
@@ -116,6 +128,77 @@ data "google_compute_instance_guest_attributes" "bar" {
116
128
` , instanceName )
117
129
}
118
130
131
+ func testAccDataSourceComputeInstanceGuestAttributesConfig_queryPath_nonExistent (instanceName string ) string {
132
+ return fmt .Sprintf (`
133
+ resource "google_compute_instance" "foo" {
134
+ name = "%s"
135
+ machine_type = "n1-standard-1"
136
+ zone = "us-central1-a"
137
+
138
+ boot_disk {
139
+ initialize_params {
140
+ image = "debian-8-jessie-v20160803"
141
+ }
142
+ }
143
+
144
+ network_interface {
145
+ network = "default"
146
+ access_config {
147
+ // Ephemeral IP
148
+ }
149
+ }
150
+
151
+ metadata = {
152
+ enable-guest-attributes = "TRUE"
153
+ }
154
+
155
+ metadata_startup_script = <<-EOF
156
+ curl -X PUT --data "test1" http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/testing/key1 -H "Metadata-Flavor: Google"
157
+ curl -X PUT --data "test2" http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/testing/key2 -H "Metadata-Flavor: Google"
158
+ EOF
159
+ }
160
+
161
+ data "google_compute_instance_guest_attributes" "bar" {
162
+ name = google_compute_instance.foo.name
163
+ zone = "us-central1-a"
164
+ query_path = "test/"
165
+ }
166
+ ` , instanceName )
167
+ }
168
+
169
+ func testAccDataSourceComputeInstanceGuestAttributesConfig_queryPath_empty (instanceName string ) string {
170
+ return fmt .Sprintf (`
171
+ resource "google_compute_instance" "foo" {
172
+ name = "%s"
173
+ machine_type = "n1-standard-1"
174
+ zone = "us-central1-a"
175
+
176
+ boot_disk {
177
+ initialize_params {
178
+ image = "debian-8-jessie-v20160803"
179
+ }
180
+ }
181
+
182
+ network_interface {
183
+ network = "default"
184
+ access_config {
185
+ // Ephemeral IP
186
+ }
187
+ }
188
+
189
+ metadata = {
190
+ enable-guest-attributes = "TRUE"
191
+ }
192
+ }
193
+
194
+ data "google_compute_instance_guest_attributes" "bar" {
195
+ name = google_compute_instance.foo.name
196
+ zone = "us-central1-a"
197
+ query_path = "test/"
198
+ }
199
+ ` , instanceName )
200
+ }
201
+
119
202
func testAccDataSourceComputeInstanceGuestAttributesConfig_variableKey (instanceName string ) string {
120
203
return fmt .Sprintf (`
121
204
resource "google_compute_instance" "foo" {
0 commit comments