github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/icinga2/resource_icinga2_host_test.go (about) 1 package icinga2 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/resource" 8 "github.com/hashicorp/terraform/terraform" 9 "github.com/lrsmith/go-icinga2-api/iapi" 10 ) 11 12 func TestAccCreateBasicHost(t *testing.T) { 13 14 var testAccCreateBasicHost = fmt.Sprintf(` 15 resource "icinga2_host" "tf-1" { 16 hostname = "terraform-host-1" 17 address = "10.10.10.1" 18 check_command = "hostalive" 19 }`) 20 21 resource.Test(t, resource.TestCase{ 22 PreCheck: func() { testAccPreCheck(t) }, 23 Providers: testAccProviders, 24 Steps: []resource.TestStep{ 25 resource.TestStep{ 26 Config: testAccCreateBasicHost, 27 Check: resource.ComposeTestCheckFunc( 28 testAccCheckHostExists("icinga2_host.tf-1"), 29 testAccCheckResourceState("icinga2_host.tf-1", "hostname", "terraform-host-1"), 30 testAccCheckResourceState("icinga2_host.tf-1", "address", "10.10.10.1"), 31 testAccCheckResourceState("icinga2_host.tf-1", "check_command", "hostalive"), 32 ), 33 }, 34 }, 35 }) 36 } 37 38 func TestAccCreateVariableHost(t *testing.T) { 39 40 var testAccCreateVariableHost = fmt.Sprintf(` 41 resource "icinga2_host" "tf-3" { 42 hostname = "terraform-host-3" 43 address = "10.10.10.3" 44 check_command = "hostalive" 45 vars { 46 os = "linux" 47 osver = "1" 48 allowance = "none" } 49 }`) 50 51 resource.Test(t, resource.TestCase{ 52 PreCheck: func() { testAccPreCheck(t) }, 53 Providers: testAccProviders, 54 Steps: []resource.TestStep{ 55 resource.TestStep{ 56 Config: testAccCreateVariableHost, 57 Check: resource.ComposeTestCheckFunc( 58 testAccCheckHostExists("icinga2_host.tf-3"), 59 testAccCheckResourceState("icinga2_host.tf-3", "hostname", "terraform-host-3"), 60 testAccCheckResourceState("icinga2_host.tf-3", "address", "10.10.10.3"), 61 testAccCheckResourceState("icinga2_host.tf-3", "check_command", "hostalive"), 62 testAccCheckResourceState("icinga2_host.tf-3", "vars.%", "3"), 63 testAccCheckResourceState("icinga2_host.tf-3", "vars.allowance", "none"), 64 testAccCheckResourceState("icinga2_host.tf-3", "vars.os", "linux"), 65 testAccCheckResourceState("icinga2_host.tf-3", "vars.osver", "1"), 66 ), 67 }, 68 }, 69 }) 70 } 71 72 func testAccCheckHostExists(rn string) resource.TestCheckFunc { 73 return func(s *terraform.State) error { 74 resource, ok := s.RootModule().Resources[rn] 75 if !ok { 76 return fmt.Errorf("Host resource not found: %s", rn) 77 } 78 79 if resource.Primary.ID == "" { 80 return fmt.Errorf("resource id not set") 81 } 82 83 client := testAccProvider.Meta().(*iapi.Server) 84 _, err := client.GetHost(resource.Primary.ID) 85 if err != nil { 86 return fmt.Errorf("error getting getting host: %s", err) 87 } 88 89 return nil 90 } 91 92 }