github.com/peterbale/terraform@v0.9.0-beta2.0.20170315142748-5723acd55547/builtin/providers/circonus/resource_circonus_check_json_test.go (about)

     1  package circonus
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/hashicorp/terraform/helper/resource"
     7  )
     8  
     9  func TestAccCirconusCheckJSON_basic(t *testing.T) {
    10  	resource.Test(t, resource.TestCase{
    11  		PreCheck:     func() { testAccPreCheck(t) },
    12  		Providers:    testAccProviders,
    13  		CheckDestroy: testAccCheckDestroyCirconusCheckBundle,
    14  		Steps: []resource.TestStep{
    15  			{
    16  				Config: testAccCirconusCheckJSONConfig1,
    17  				Check: resource.ComposeTestCheckFunc(
    18  					resource.TestCheckResourceAttr("circonus_check.usage", "active", "true"),
    19  					resource.TestCheckResourceAttr("circonus_check.usage", "collector.#", "1"),
    20  					resource.TestCheckResourceAttr("circonus_check.usage", "collector.2388330941.id", "/broker/1"),
    21  					resource.TestCheckResourceAttr("circonus_check.usage", "json.#", "1"),
    22  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.auth_method", ""),
    23  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.auth_password", ""),
    24  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.auth_user", ""),
    25  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.ca_chain", ""),
    26  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.certificate_file", ""),
    27  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.ciphers", ""),
    28  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.key_file", ""),
    29  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.payload", ""),
    30  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.headers.%", "3"),
    31  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.headers.Accept", "application/json"),
    32  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.headers.X-Circonus-App-Name", "TerraformCheck"),
    33  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.headers.X-Circonus-Auth-Token", "<env 'CIRCONUS_API_TOKEN'>"),
    34  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.version", "1.0"),
    35  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.method", "GET"),
    36  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.port", "443"),
    37  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.read_limit", "1048576"),
    38  					resource.TestCheckResourceAttr("circonus_check.usage", "json.2626248092.url", "https://api.circonus.com/account/current"),
    39  					resource.TestCheckResourceAttr("circonus_check.usage", "name", "Terraform test: api.circonus.com metric usage check"),
    40  					resource.TestCheckResourceAttr("circonus_check.usage", "notes", ""),
    41  					resource.TestCheckResourceAttr("circonus_check.usage", "period", "60s"),
    42  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.#", "2"),
    43  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.active", "true"),
    44  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.name", "_usage`0`_limit"),
    45  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.tags.#", "1"),
    46  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.tags.3241999189", "source:circonus"),
    47  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.type", "numeric"),
    48  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.unit", "qty"),
    49  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.active", "true"),
    50  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.name", "_usage`0`_used"),
    51  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.tags.#", "1"),
    52  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.tags.3241999189", "source:circonus"),
    53  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.type", "numeric"),
    54  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.unit", "qty"),
    55  					resource.TestCheckResourceAttr("circonus_check.usage", "tags.#", "2"),
    56  					resource.TestCheckResourceAttr("circonus_check.usage", "tags.3241999189", "source:circonus"),
    57  					resource.TestCheckResourceAttr("circonus_check.usage", "tags.3839162439", "source:unittest"),
    58  					resource.TestCheckResourceAttr("circonus_check.usage", "target", "api.circonus.com"),
    59  					resource.TestCheckResourceAttr("circonus_check.usage", "type", "json"),
    60  				),
    61  			},
    62  			{
    63  				Config: testAccCirconusCheckJSONConfig2,
    64  				Check: resource.ComposeTestCheckFunc(
    65  					resource.TestCheckResourceAttr("circonus_check.usage", "active", "true"),
    66  					resource.TestCheckResourceAttr("circonus_check.usage", "collector.#", "1"),
    67  					resource.TestCheckResourceAttr("circonus_check.usage", "collector.2388330941.id", "/broker/1"),
    68  					resource.TestCheckResourceAttr("circonus_check.usage", "json.#", "1"),
    69  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.auth_method", ""),
    70  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.auth_password", ""),
    71  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.auth_user", ""),
    72  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.ca_chain", ""),
    73  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.certificate_file", ""),
    74  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.ciphers", ""),
    75  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.key_file", ""),
    76  					// resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.payload", ""),
    77  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.headers.%", "3"),
    78  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.headers.Accept", "application/json"),
    79  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.headers.X-Circonus-App-Name", "TerraformCheck"),
    80  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.headers.X-Circonus-Auth-Token", "<env 'CIRCONUS_API_TOKEN'>"),
    81  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.version", "1.1"),
    82  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.method", "GET"),
    83  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.port", "443"),
    84  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.read_limit", "1048576"),
    85  					resource.TestCheckResourceAttr("circonus_check.usage", "json.3951979786.url", "https://api.circonus.com/account/current"),
    86  					resource.TestCheckResourceAttr("circonus_check.usage", "name", "Terraform test: api.circonus.com metric usage check"),
    87  					resource.TestCheckResourceAttr("circonus_check.usage", "notes", "notes!"),
    88  					resource.TestCheckResourceAttr("circonus_check.usage", "period", "300s"),
    89  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.#", "2"),
    90  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.active", "true"),
    91  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.name", "_usage`0`_limit"),
    92  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.tags.#", "1"),
    93  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.tags.3241999189", "source:circonus"),
    94  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.type", "numeric"),
    95  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.1992097900.unit", "qty"),
    96  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.active", "true"),
    97  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.name", "_usage`0`_used"),
    98  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.tags.#", "1"),
    99  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.tags.3241999189", "source:circonus"),
   100  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.type", "numeric"),
   101  					resource.TestCheckResourceAttr("circonus_check.usage", "metric.3280673139.unit", "qty"),
   102  					resource.TestCheckResourceAttr("circonus_check.usage", "tags.#", "2"),
   103  					resource.TestCheckResourceAttr("circonus_check.usage", "tags.3241999189", "source:circonus"),
   104  					resource.TestCheckResourceAttr("circonus_check.usage", "tags.3839162439", "source:unittest"),
   105  					resource.TestCheckResourceAttr("circonus_check.usage", "target", "api.circonus.com"),
   106  					resource.TestCheckResourceAttr("circonus_check.usage", "type", "json"),
   107  				),
   108  			},
   109  		},
   110  	})
   111  }
   112  
   113  const testAccCirconusCheckJSONConfig1 = `
   114  variable "usage_default_unit" {
   115    default = "qty"
   116  }
   117  
   118  resource "circonus_metric" "limit" {
   119    name = "_usage` + "`0`" + `_limit"
   120    tags = [ "source:circonus" ]
   121    type = "numeric"
   122    unit = "${var.usage_default_unit}"
   123  }
   124  
   125  resource "circonus_metric" "used" {
   126    name = "_usage` + "`0`" + `_used"
   127    tags = [ "source:circonus" ]
   128    type = "numeric"
   129    unit = "${var.usage_default_unit}"
   130  }
   131  
   132  resource "circonus_check" "usage" {
   133    active = true
   134    name = "Terraform test: api.circonus.com metric usage check"
   135    period = "60s"
   136  
   137    collector {
   138      id = "/broker/1"
   139    }
   140  
   141    json {
   142      url = "https://api.circonus.com/account/current"
   143      headers = {
   144        Accept                = "application/json",
   145        X-Circonus-App-Name   = "TerraformCheck",
   146        X-Circonus-Auth-Token = "<env 'CIRCONUS_API_TOKEN'>",
   147      }
   148      version = "1.0"
   149      method = "GET"
   150      port = 443
   151      read_limit = 1048576
   152    }
   153  
   154    metric {
   155      name = "${circonus_metric.used.name}"
   156      tags = [ "${circonus_metric.used.tags}" ]
   157      type = "${circonus_metric.used.type}"
   158      unit = "${coalesce(circonus_metric.used.unit, var.usage_default_unit)}"
   159    }
   160  
   161    metric {
   162      name = "${circonus_metric.limit.name}"
   163      tags = [ "${circonus_metric.limit.tags}" ]
   164      type = "${circonus_metric.limit.type}"
   165      unit = "${coalesce(circonus_metric.limit.unit, var.usage_default_unit)}"
   166    }
   167  
   168    tags = [ "source:circonus", "source:unittest" ]
   169  }
   170  `
   171  
   172  const testAccCirconusCheckJSONConfig2 = `
   173  variable "usage_default_unit" {
   174    default = "qty"
   175  }
   176  
   177  resource "circonus_metric" "limit" {
   178    name = "_usage` + "`0`" + `_limit"
   179    tags = [ "source:circonus" ]
   180    type = "numeric"
   181    unit = "${var.usage_default_unit}"
   182  }
   183  
   184  resource "circonus_metric" "used" {
   185    name = "_usage` + "`0`" + `_used"
   186    tags = [ "source:circonus" ]
   187    type = "numeric"
   188    unit = "${var.usage_default_unit}"
   189  }
   190  
   191  resource "circonus_check" "usage" {
   192    active = true
   193    name = "Terraform test: api.circonus.com metric usage check"
   194    notes = "notes!"
   195    period = "300s"
   196  
   197    collector {
   198      id = "/broker/1"
   199    }
   200  
   201    json {
   202      url = "https://api.circonus.com/account/current"
   203      headers = {
   204        Accept                = "application/json",
   205        X-Circonus-App-Name   = "TerraformCheck",
   206        X-Circonus-Auth-Token = "<env 'CIRCONUS_API_TOKEN'>",
   207      }
   208      version = "1.1"
   209      method = "GET"
   210      port = 443
   211      read_limit = 1048576
   212    }
   213  
   214    metric {
   215      name = "${circonus_metric.used.name}"
   216      tags = [ "${circonus_metric.used.tags}" ]
   217      type = "${circonus_metric.used.type}"
   218      unit = "${coalesce(circonus_metric.used.unit, var.usage_default_unit)}"
   219    }
   220  
   221    metric {
   222      name = "${circonus_metric.limit.name}"
   223      tags = [ "${circonus_metric.limit.tags}" ]
   224      type = "${circonus_metric.limit.type}"
   225      unit = "${coalesce(circonus_metric.limit.unit, var.usage_default_unit)}"
   226    }
   227  
   228    tags = [ "source:circonus", "source:unittest" ]
   229  }
   230  `