@@ -2288,27 +2288,80 @@ func TestAccComputeInstance_enableDisplay(t *testing.T) {
2288
2288
})
2289
2289
}
2290
2290
2291
- func TestAccComputeInstance_desiredStatusOnCreation (t *testing.T) {
2291
+ func TestAccComputeInstance_desiredStatusTerminatedOnCreation (t *testing.T) {
2292
2292
t.Parallel()
2293
2293
2294
2294
var instance compute.Instance
2295
- var instanceName = fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10))
2295
+
2296
+ context_1 := map[string]interface{}{
2297
+ "instance_name": fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10)),
2298
+ "zone": "us-central1-a",
2299
+ "desired_status": "TERMINATED",
2300
+ }
2301
+
2302
+ context_2 := map[string]interface{}{
2303
+ "instance_name": context_1["instance_name"],
2304
+ "zone": context_1["zone"],
2305
+ "desired_status": "RUNNING",
2306
+ }
2296
2307
2297
2308
acctest.VcrTest(t, resource.TestCase{
2298
- PreCheck: func() { acctest.AccTestPreCheck(t) },
2309
+ PreCheck: func() { acctest.AccTestPreCheck(t) },
2299
2310
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
2300
- CheckDestroy: testAccCheckComputeInstanceDestroyProducer(t),
2311
+ CheckDestroy: testAccCheckComputeInstanceDestroyProducer(t),
2301
2312
Steps: []resource.TestStep{
2302
2313
{
2303
- Config: testAccComputeInstance_machineType_desiredStatus_allowStoppingForUpdate(instanceName, "e2-medium", "TERMINATED", false),
2304
- ExpectError: regexp.MustCompile("When creating an instance, desired_status can only accept RUNNING value"),
2314
+ Config: testAccComputeInstance_desiredStatusOnCreation(context_1),
2315
+ Check: resource.ComposeTestCheckFunc(
2316
+ testAccCheckComputeInstanceExists(t, "google_compute_instance.foobar", &instance),
2317
+ testAccCheckComputeInstanceHasStatus(&instance, context_1["desired_status"].(string)),
2318
+ ),
2305
2319
},
2306
2320
{
2307
- Config: testAccComputeInstance_machineType_desiredStatus_allowStoppingForUpdate(instanceName, "e2-medium", "RUNNING", false ),
2321
+ Config: testAccComputeInstance_desiredStatusOnCreation(context_2 ),
2308
2322
Check: resource.ComposeTestCheckFunc(
2309
- testAccCheckComputeInstanceExists(
2310
- t, "google_compute_instance.foobar", &instance),
2311
- testAccCheckComputeInstanceHasStatus(&instance, "RUNNING"),
2323
+ testAccCheckComputeInstanceExists(t, "google_compute_instance.foobar", &instance),
2324
+ testAccCheckComputeInstanceHasStatus(&instance, context_2["desired_status"].(string)),
2325
+ ),
2326
+ },
2327
+ },
2328
+ })
2329
+ }
2330
+
2331
+ func TestAccComputeInstance_desiredStatusSuspendedOnCreation(t *testing.T) {
2332
+ t.Parallel()
2333
+
2334
+ var instance compute.Instance
2335
+
2336
+ context_1 := map[string]interface{}{
2337
+ "instance_name": fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10)),
2338
+ "zone": "us-central1-a",
2339
+ "desired_status": "SUSPENDED",
2340
+ }
2341
+
2342
+ context_2 := map[string]interface{}{
2343
+ "instance_name": context_1["instance_name"],
2344
+ "zone": context_1["zone"],
2345
+ "desired_status": "RUNNING",
2346
+ }
2347
+
2348
+ acctest.VcrTest(t, resource.TestCase{
2349
+ PreCheck: func() { acctest.AccTestPreCheck(t) },
2350
+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
2351
+ CheckDestroy: testAccCheckComputeInstanceDestroyProducer(t),
2352
+ Steps: []resource.TestStep{
2353
+ {
2354
+ Config: testAccComputeInstance_desiredStatusOnCreation(context_1),
2355
+ Check: resource.ComposeTestCheckFunc(
2356
+ testAccCheckComputeInstanceExists(t, "google_compute_instance.foobar", &instance),
2357
+ testAccCheckComputeInstanceHasStatus(&instance, context_1["desired_status"].(string)),
2358
+ ),
2359
+ },
2360
+ {
2361
+ Config: testAccComputeInstance_desiredStatusOnCreation(context_2),
2362
+ Check: resource.ComposeTestCheckFunc(
2363
+ testAccCheckComputeInstanceExists(t, "google_compute_instance.foobar", &instance),
2364
+ testAccCheckComputeInstanceHasStatus(&instance, context_2["desired_status"].(string)),
2312
2365
),
2313
2366
},
2314
2367
},
@@ -8974,6 +9027,33 @@ resource "google_compute_instance" "foobar" {
8974
9027
`, instance)
8975
9028
}
8976
9029
9030
+ func testAccComputeInstance_desiredStatusOnCreation(context map[string]interface{}) string {
9031
+ return acctest.Nprintf(`
9032
+ data "google_compute_image" "my_image" {
9033
+ family = "debian-11"
9034
+ project = "debian-cloud"
9035
+ }
9036
+
9037
+ resource "google_compute_instance" "foobar" {
9038
+ name = "%{instance_name}"
9039
+ machine_type = "e2-medium"
9040
+ zone = "%{zone}"
9041
+
9042
+ boot_disk {
9043
+ initialize_params{
9044
+ image = "${data.google_compute_image.my_image.self_link}"
9045
+ }
9046
+ }
9047
+
9048
+ network_interface {
9049
+ network = "default"
9050
+ }
9051
+
9052
+ desired_status = "%{desired_status}"
9053
+ }
9054
+ `, context)
9055
+ }
9056
+
8977
9057
func testAccComputeInstance_resourcePolicyCollocate(instance, suffix string) string {
8978
9058
return fmt.Sprintf(`
8979
9059
data "google_compute_image" "my_image" {
0 commit comments