Skip to content

Commit 7b4332d

Browse files
mbfrahrystack72
authored andcommitted
Add test to PR 9320 (hashicorp#11645)
1 parent 07a7cc0 commit 7b4332d

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

builtin/providers/google/resource_compute_instance.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,10 @@ func resourceComputeInstanceRead(d *schema.ResourceData, meta interface{}) error
671671

672672
d.Set("can_ip_forward", instance.CanIpForward)
673673

674+
machineTypeResource := strings.Split(instance.MachineType, "/")
675+
machineType := machineTypeResource[len(machineTypeResource)-1]
676+
d.Set("machine_type", machineType)
677+
674678
// Set the service accounts
675679
serviceAccounts := make([]map[string]interface{}, 0, 1)
676680
for _, serviceAccount := range instance.ServiceAccounts {

builtin/providers/google/resource_compute_instance_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,66 @@ func TestAccComputeInstance_invalid_disk(t *testing.T) {
547547
})
548548
}
549549

550+
func TestAccComputeInstance_forceChangeMachineTypeManually(t *testing.T) {
551+
var instance compute.Instance
552+
var instanceName = fmt.Sprintf("instance-test-%s", acctest.RandString(10))
553+
554+
resource.Test(t, resource.TestCase{
555+
PreCheck: func() { testAccPreCheck(t) },
556+
Providers: testAccProviders,
557+
CheckDestroy: testAccCheckComputeInstanceDestroy,
558+
Steps: []resource.TestStep{
559+
resource.TestStep{
560+
Config: testAccComputeInstance_basic(instanceName),
561+
Check: resource.ComposeTestCheckFunc(
562+
testAccCheckComputeInstanceExists("google_compute_instance.foobar", &instance),
563+
testAccCheckComputeInstanceUpdateMachineType("google_compute_instance.foobar"),
564+
),
565+
ExpectNonEmptyPlan: true,
566+
},
567+
},
568+
})
569+
}
570+
571+
func testAccCheckComputeInstanceUpdateMachineType(n string) resource.TestCheckFunc {
572+
return func(s *terraform.State) error {
573+
rs, ok := s.RootModule().Resources[n]
574+
if !ok {
575+
return fmt.Errorf("Not found: %s", n)
576+
}
577+
578+
if rs.Primary.ID == "" {
579+
return fmt.Errorf("No ID is set")
580+
}
581+
582+
config := testAccProvider.Meta().(*Config)
583+
584+
op, err := config.clientCompute.Instances.Stop(config.Project, rs.Primary.Attributes["zone"], rs.Primary.ID).Do()
585+
if err != nil {
586+
return fmt.Errorf("Could not stop instance: %s", err)
587+
}
588+
err = computeOperationWaitZone(config, op, config.Project, rs.Primary.Attributes["zone"], "Waiting on stop")
589+
if err != nil {
590+
return fmt.Errorf("Could not stop instance: %s", err)
591+
}
592+
593+
machineType := compute.InstancesSetMachineTypeRequest{
594+
MachineType: "zones/us-central1-a/machineTypes/f1-micro",
595+
}
596+
597+
op, err = config.clientCompute.Instances.SetMachineType(
598+
config.Project, rs.Primary.Attributes["zone"], rs.Primary.ID, &machineType).Do()
599+
if err != nil {
600+
return fmt.Errorf("Could not change machine type: %s", err)
601+
}
602+
err = computeOperationWaitZone(config, op, config.Project, rs.Primary.Attributes["zone"], "Waiting machine type change")
603+
if err != nil {
604+
return fmt.Errorf("Could not change machine type: %s", err)
605+
}
606+
return nil
607+
}
608+
}
609+
550610
func testAccCheckComputeInstanceDestroy(s *terraform.State) error {
551611
config := testAccProvider.Meta().(*Config)
552612

0 commit comments

Comments
 (0)