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 `