github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/ultradns/resource_ultradns_tcpool_test.go (about)

     1  package ultradns
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/Ensighten/udnssdk"
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  )
    10  
    11  func TestAccUltradnsTcpool(t *testing.T) {
    12  	var record udnssdk.RRSet
    13  	domain := "ultradns.phinze.com"
    14  
    15  	resource.Test(t, resource.TestCase{
    16  		PreCheck:     func() { testAccPreCheck(t) },
    17  		Providers:    testAccProviders,
    18  		CheckDestroy: testAccTcpoolCheckDestroy,
    19  		Steps: []resource.TestStep{
    20  			resource.TestStep{
    21  				Config: fmt.Sprintf(testCfgTcpoolMinimal, domain),
    22  				Check: resource.ComposeTestCheckFunc(
    23  					testAccCheckUltradnsRecordExists("ultradns_tcpool.it", &record),
    24  					// Specified
    25  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "zone", domain),
    26  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "name", "test-tcpool-minimal"),
    27  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "ttl", "300"),
    28  
    29  					// hashRdatas(): 10.6.0.1 -> 2847814707
    30  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.host", "10.6.0.1"),
    31  					// Defaults
    32  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "act_on_probes", "true"),
    33  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "description", "Minimal TC Pool"),
    34  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "max_to_lb", "0"),
    35  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "run_probes", "true"),
    36  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.failover_delay", "0"),
    37  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.priority", "1"),
    38  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.run_probes", "true"),
    39  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.state", "NORMAL"),
    40  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.threshold", "1"),
    41  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2847814707.weight", "2"),
    42  					// Generated
    43  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "id", "test-tcpool-minimal.ultradns.phinze.com"),
    44  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "hostname", "test-tcpool-minimal.ultradns.phinze.com."),
    45  				),
    46  			},
    47  			resource.TestStep{
    48  				Config: fmt.Sprintf(testCfgTcpoolMaximal, domain),
    49  				Check: resource.ComposeTestCheckFunc(
    50  					testAccCheckUltradnsRecordExists("ultradns_tcpool.it", &record),
    51  					// Specified
    52  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "zone", domain),
    53  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "name", "test-tcpool-maximal"),
    54  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "ttl", "300"),
    55  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "description", "traffic controller pool with all settings tuned"),
    56  
    57  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "act_on_probes", "false"),
    58  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "max_to_lb", "2"),
    59  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "run_probes", "false"),
    60  
    61  					// hashRdatas(): 10.6.1.1 -> 2826722820
    62  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.host", "10.6.1.1"),
    63  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.failover_delay", "30"),
    64  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.priority", "1"),
    65  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.run_probes", "true"),
    66  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.state", "ACTIVE"),
    67  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.threshold", "1"),
    68  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.2826722820.weight", "2"),
    69  
    70  					// hashRdatas(): 10.6.1.2 -> 829755326
    71  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.host", "10.6.1.2"),
    72  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.failover_delay", "30"),
    73  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.priority", "2"),
    74  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.run_probes", "true"),
    75  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.state", "INACTIVE"),
    76  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.threshold", "1"),
    77  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.829755326.weight", "4"),
    78  
    79  					// hashRdatas(): 10.6.1.3 -> 1181892392
    80  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.host", "10.6.1.3"),
    81  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.failover_delay", "30"),
    82  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.priority", "3"),
    83  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.run_probes", "false"),
    84  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.state", "NORMAL"),
    85  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.threshold", "1"),
    86  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "rdata.1181892392.weight", "8"),
    87  					// Generated
    88  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "id", "test-tcpool-maximal.ultradns.phinze.com"),
    89  					resource.TestCheckResourceAttr("ultradns_tcpool.it", "hostname", "test-tcpool-maximal.ultradns.phinze.com."),
    90  				),
    91  			},
    92  		},
    93  	})
    94  }
    95  
    96  const testCfgTcpoolMinimal = `
    97  resource "ultradns_tcpool" "it" {
    98    zone        = "%s"
    99    name        = "test-tcpool-minimal"
   100    ttl         = 300
   101    description = "Minimal TC Pool"
   102  
   103    rdata {
   104      host = "10.6.0.1"
   105    }
   106  }
   107  `
   108  
   109  const testCfgTcpoolMaximal = `
   110  resource "ultradns_tcpool" "it" {
   111    zone        = "%s"
   112    name        = "test-tcpool-maximal"
   113    ttl         = 300
   114    description = "traffic controller pool with all settings tuned"
   115  
   116    act_on_probes = false
   117    max_to_lb     = 2
   118    run_probes    = false
   119  
   120    rdata {
   121      host = "10.6.1.1"
   122  
   123      failover_delay = 30
   124      priority       = 1
   125      run_probes     = true
   126      state          = "ACTIVE"
   127      threshold      = 1
   128      weight         = 2
   129    }
   130  
   131    rdata {
   132      host = "10.6.1.2"
   133  
   134      failover_delay = 30
   135      priority       = 2
   136      run_probes     = true
   137      state          = "INACTIVE"
   138      threshold      = 1
   139      weight         = 4
   140    }
   141  
   142    rdata {
   143      host = "10.6.1.3"
   144  
   145      failover_delay = 30
   146      priority       = 3
   147      run_probes     = false
   148      state          = "NORMAL"
   149      threshold      = 1
   150      weight         = 8
   151    }
   152  
   153    backup_record_rdata          = "10.6.1.4"
   154    backup_record_failover_delay = 30
   155  }
   156  `