Commit Graph

6595 Commits

Author SHA1 Message Date
Clint 1daac2f5c7 provider/aws: Update spot instance request to store new ipv6 (#12571) 2017-03-10 14:49:28 -06:00
Sean Chittenden 17fb98afa2 Circonus Provider (#12338)
* Begin stubbing out the Circonus provider.

* Remove all references to `reverse:secret_key`.

This value is dynamically set by the service and unused by Terraform.

* Update the `circonus_check` resource.

Still a WIP.

* Add docs for the `circonus_check` resource.

Commit miss, this should have been included in the last commit.

* "Fix" serializing check tags

I still need to figure out how I can make them order agnostic w/o using
a TypeSet.  I'm worried that's what I'm going to have to do.

* Spike a quick circonus_broker data source.

* Convert tags to a Set so the order does not matter.

* Add a `circonus_account` data source.

* Correctly spell account.

Pointed out by: @postwait

* Add the `circonus_contact_group` resource.

* Push descriptions into their own file in order to reduce the busyness of the schema when reviewing code.

* Rename `circonus_broker` and `broker` to `circonus_collector` and `collector`, respectively.

Change made with concent by Circonus to reduce confusion (@postwait, @maier, and several others).

* Use upstream contsants where available.

* Import the latest circonus-gometrics.

* Move to using a Set of collectors vs a list attached to a single attribute.

* Rename "cid" to "id" in the circonus_account data source and elsewhere
where possible.

* Inject a tag automatically.  Update gometrics.

* Checkpoint `circonus_metric` resource.

* Enable provider-level auto-tagging.  This is disabled by default.

* Rearrange metric.  This is an experimental "style" of a provider.  We'll see.

That moment. When you think you've gone off the rails on a mad scientist
experiment but like the outcome and think you may be onto something but
haven't proven it to yourself or anyone else yet?  That.  That exact
feeling of semi-confidence while being alone in the wilderness.  Please
let this not be the Terraform provider equivalent of DJB's C style of
coding.

We'll know in another resource or two if this was a horrible mistake or
not.

* Begin moving `resource_circonus_check` over to the new world order/structure:

Much of this is WIP and incomplete, but here is the new supported
structure:

```
variable "used_metric_name" {
  default = "_usage`0`_used"
}

resource "circonus_check" "usage" {
  # collectors = ["${var.collectors}"]
  collector {
    id = "${var.collectors[0]}"
  }

  name       = "${var.check_name}"
  notes      = "${var.notes}"

  json {
    url = "https://${var.target}/account/current"

    http_headers = {
      "Accept"                = "application/json"
      "X-Circonus-App-Name"   = "TerraformCheck"
      "X-Circonus-Auth-Token" = "${var.api_token}"
    }
  }

  stream {
    name = "${circonus_metric.used.name}"
    tags = "${circonus_metric.used.tags}"
    type = "${circonus_metric.used.type}"
  }

  tags = {
    source = "circonus"
  }
}

resource "circonus_metric" "used" {
  name = "${var.used_metric_name}"

  tags = {
    source = "circonus"
  }

  type = "numeric"
}
```

* Document the `circonus_metric` resource.

* Updated `circonus_check` docs.

* If a port was present, automatically set it in the Config.

* Alpha sort the check parameters now that they've been renamed.

* Fix a handful of panics as a result of the schema changing.

* Move back to a `TypeSet` for tags.  After a stint with `TypeMap`, move
back to `TypeSet`.

A set of strings seems to match the API the best.  The `map` type was
convenient because it reduced the amount of boilerplate, but you loose
out on other things.  For instance, tags come in the form of
`category:value`, so naturally it seems like you could use a map, but
you can't without severe loss of functionality because assigning two
values to the same category is common.  And you can't normalize map
input or suppress the output correctly (this was eventually what broke
the camel's back).  I tried an experiment of normalizing the input to be
`category:value` as the key in the map and a value of `""`, but... seee
diff suppress.  In this case, simple is good.

While here bring some cleanups to _Metric since that was my initial
testing target.

* Rename `providerConfig` to `_ProviderConfig`

* Checkpoint the `json` check type.

* Fix a few residual issues re: missing descriptions.

* Rename `validateRegexp` to `_ValidateRegexp`

* Use tags as real sets, not just a slice of strings.

* Move the DiffSuppressFunc for tags down to the Elem.

* Fix up unit tests to chase the updated, default hasher function being used.

* Remove `Computed` attribute from `TypeSet` objects.

This fixes a pile of issues re: update that I was having.

* Rename functions.

`GetStringOk` -> `GetStringOK`
`GetSetAsListOk` -> `GetSetAsListOK`
`GetIntOk` -> `GetIntOK`

* Various small cleanups and comments rolled into a single commit.

* Add a `postgresql` check type for the `circonus_check` resource.

* Rename various validator functions to be _CapitalCase vs capitalCase.

* Err... finish the validator renames.

* Add `GetFloat64()` support.

* Add `icmp_ping` check type support.

* Catch up to the _API*Attr renames.

Deliberately left out of the previous commit in order to create a clean
example of what is required to add a new check type to the
`circonus_check` resource.

* Clarify when the `target` attribute is required for the `postgresql`
check type.

* Correctly pull the metric ID attribute from the right location.

* Add a circonus_stream_group resource (a.k.a. a Circonus "metric cluster")

* Add support for the [`caql`](https://login.circonus.com/user/docs/caql_reference) check type.

* Add support for the `http` check type.

* `s/SSL/TLS/g`

* Add support for `tcp` check types.

* Enumerate the available metrics that are supported for each check type.

* Add [`cloudwatch`](https://login.circonus.com/user/docs/Data/CheckTypes/CloudWatch) check type support.

* Add a `circonus_trigger` resource (a.k.a Circonus Ruleset).

* Rename a handful of functions to make it clear in the function name the
direction of flow for information moving through the provider.

TL;DR: Replace `parse` and `read` with "foo to bar"-like names.

* Fix the attribute name used in a validator.  Absent != After.

* Set the minimum `absent` predicate to 70s per testing.

* Fix the regression tests for circonus_trigger now that absent has a 70s min

* Fix up the `tcp` check to require a `host` attribute.

Fix tests.  It's clear I didn't run these before committing/pushing the
`tcp` check last time.

* Fix `circonus_check` for `cloudwatch` checks.

* Rename `parsePerCheckTypeConfig()` to `_CheckConfigToAPI` to be
consistent with other function names.

grep(1)ability of code++

* Slack buttons as an integer are string encoded.

* Fix updates for `circonus_contact`.

* Fix the out parameters for contact groups.

* Move to using `_CastSchemaToTF()` where appropriate.

* Fix circonus_contact_group.  Updates work as expected now.

* Use `_StateSet()` in place of `d.Set()` everywhere.

* Make a quick pass over the collector datasource to modernize its style

* Quick pass for items identified by `golint`.

* Fix up collectors

* Fix the `json` check type.

Reconcile possible sources of drift.  Update now works as expected.

* Normalize trigger durations to seconds.

* Improve the robustness of the state handling for the `circonus_contact_group` resource.

* I'm torn on this, but sort the contact groups in the notify list.

This does mean that if the first contact group in the list has a higher
lexical sort order the plan won't converge until the offending resource
is tainted and recreated.  But there's also some sorting happening
elsewhere, so.... sort and taint for now and this will need to be
revisited in the future.

* Add support for the `httptrap` check type.

* Remove empty units from the state file.

* Metric clusters can return a 404.  Detect this accordingly in its
respective Exists handler.

* Add a `circonus_graph` resource.

* Fix a handful of bugs in the graph provider.

* Re-enable the necessary `ConflictsWith` definitions and normalize attribute names.

* Objects that have been deleted via the UI return a 404. Handle in Exists().

* Teach `circonus_graph`'s Stack set to accept nil values.

* Set `ForceNew: true` for a graph's name.

* Chase various API fixes required to make `circonus_graph` work as expected.

* Fix up the handling of sub-1 zoom resolutions for graphs.

* Add the `check_by_collector` out parameter to the `circonus_check` resource.

* Improve validation of line vs area graphs.  Fix graph_style.

* Fix up the `logarithmic` graph axis option.

* Resolve various trivial `go vet` issues.

* Add a stream_group out parameter.

* Remove incorrectly applied `Optional` attributes to the `circonus_account` resource.

* Remove various `Optional` attributes from the `circonus_collector` data source.

* Centralize the common need to suppress leading and trailing whitespace into `suppressWhitespace`.

* Sync up with upstream vendor fixes for circonus_graph.

* Update the checksum value for the http check.

* Chase `circonus_graph`'s underlying `line_style` API object change from `string` to `*string`.

* Clean up tests to use a generic terraform regression testing account.

* Add support for the MySQL to the `circonus_check` resource.

* Begin stubbing out the Circonus provider.

* Remove all references to `reverse:secret_key`.

This value is dynamically set by the service and unused by Terraform.

* Update the `circonus_check` resource.

Still a WIP.

* Add docs for the `circonus_check` resource.

Commit miss, this should have been included in the last commit.

* "Fix" serializing check tags

I still need to figure out how I can make them order agnostic w/o using
a TypeSet.  I'm worried that's what I'm going to have to do.

* Spike a quick circonus_broker data source.

* Convert tags to a Set so the order does not matter.

* Add a `circonus_account` data source.

* Correctly spell account.

Pointed out by: @postwait

* Add the `circonus_contact_group` resource.

* Push descriptions into their own file in order to reduce the busyness of the schema when reviewing code.

* Rename `circonus_broker` and `broker` to `circonus_collector` and `collector`, respectively.

Change made with concent by Circonus to reduce confusion (@postwait, @maier, and several others).

* Use upstream contsants where available.

* Import the latest circonus-gometrics.

* Move to using a Set of collectors vs a list attached to a single attribute.

* Rename "cid" to "id" in the circonus_account data source and elsewhere
where possible.

* Inject a tag automatically.  Update gometrics.

* Checkpoint `circonus_metric` resource.

* Enable provider-level auto-tagging.  This is disabled by default.

* Rearrange metric.  This is an experimental "style" of a provider.  We'll see.

That moment. When you think you've gone off the rails on a mad scientist
experiment but like the outcome and think you may be onto something but
haven't proven it to yourself or anyone else yet?  That.  That exact
feeling of semi-confidence while being alone in the wilderness.  Please
let this not be the Terraform provider equivalent of DJB's C style of
coding.

We'll know in another resource or two if this was a horrible mistake or
not.

* Begin moving `resource_circonus_check` over to the new world order/structure:

Much of this is WIP and incomplete, but here is the new supported
structure:

```
variable "used_metric_name" {
  default = "_usage`0`_used"
}

resource "circonus_check" "usage" {
  # collectors = ["${var.collectors}"]
  collector {
    id = "${var.collectors[0]}"
  }

  name       = "${var.check_name}"
  notes      = "${var.notes}"

  json {
    url = "https://${var.target}/account/current"

    http_headers = {
      "Accept"                = "application/json"
      "X-Circonus-App-Name"   = "TerraformCheck"
      "X-Circonus-Auth-Token" = "${var.api_token}"
    }
  }

  stream {
    name = "${circonus_metric.used.name}"
    tags = "${circonus_metric.used.tags}"
    type = "${circonus_metric.used.type}"
  }

  tags = {
    source = "circonus"
  }
}

resource "circonus_metric" "used" {
  name = "${var.used_metric_name}"

  tags = {
    source = "circonus"
  }

  type = "numeric"
}
```

* Document the `circonus_metric` resource.

* Updated `circonus_check` docs.

* If a port was present, automatically set it in the Config.

* Alpha sort the check parameters now that they've been renamed.

* Fix a handful of panics as a result of the schema changing.

* Move back to a `TypeSet` for tags.  After a stint with `TypeMap`, move
back to `TypeSet`.

A set of strings seems to match the API the best.  The `map` type was
convenient because it reduced the amount of boilerplate, but you loose
out on other things.  For instance, tags come in the form of
`category:value`, so naturally it seems like you could use a map, but
you can't without severe loss of functionality because assigning two
values to the same category is common.  And you can't normalize map
input or suppress the output correctly (this was eventually what broke
the camel's back).  I tried an experiment of normalizing the input to be
`category:value` as the key in the map and a value of `""`, but... seee
diff suppress.  In this case, simple is good.

While here bring some cleanups to _Metric since that was my initial
testing target.

* Rename `providerConfig` to `_ProviderConfig`

* Checkpoint the `json` check type.

* Fix a few residual issues re: missing descriptions.

* Rename `validateRegexp` to `_ValidateRegexp`

* Use tags as real sets, not just a slice of strings.

* Move the DiffSuppressFunc for tags down to the Elem.

* Fix up unit tests to chase the updated, default hasher function being used.

* Remove `Computed` attribute from `TypeSet` objects.

This fixes a pile of issues re: update that I was having.

* Rename functions.

`GetStringOk` -> `GetStringOK`
`GetSetAsListOk` -> `GetSetAsListOK`
`GetIntOk` -> `GetIntOK`

* Various small cleanups and comments rolled into a single commit.

* Add a `postgresql` check type for the `circonus_check` resource.

* Rename various validator functions to be _CapitalCase vs capitalCase.

* Err... finish the validator renames.

* Add `GetFloat64()` support.

* Add `icmp_ping` check type support.

* Catch up to the _API*Attr renames.

Deliberately left out of the previous commit in order to create a clean
example of what is required to add a new check type to the
`circonus_check` resource.

* Clarify when the `target` attribute is required for the `postgresql`
check type.

* Correctly pull the metric ID attribute from the right location.

* Add a circonus_stream_group resource (a.k.a. a Circonus "metric cluster")

* Add support for the [`caql`](https://login.circonus.com/user/docs/caql_reference) check type.

* Add support for the `http` check type.

* `s/SSL/TLS/g`

* Add support for `tcp` check types.

* Enumerate the available metrics that are supported for each check type.

* Add [`cloudwatch`](https://login.circonus.com/user/docs/Data/CheckTypes/CloudWatch) check type support.

* Add a `circonus_trigger` resource (a.k.a Circonus Ruleset).

* Rename a handful of functions to make it clear in the function name the
direction of flow for information moving through the provider.

TL;DR: Replace `parse` and `read` with "foo to bar"-like names.

* Fix the attribute name used in a validator.  Absent != After.

* Set the minimum `absent` predicate to 70s per testing.

* Fix the regression tests for circonus_trigger now that absent has a 70s min

* Fix up the `tcp` check to require a `host` attribute.

Fix tests.  It's clear I didn't run these before committing/pushing the
`tcp` check last time.

* Fix `circonus_check` for `cloudwatch` checks.

* Rename `parsePerCheckTypeConfig()` to `_CheckConfigToAPI` to be
consistent with other function names.

grep(1)ability of code++

* Slack buttons as an integer are string encoded.

* Fix updates for `circonus_contact`.

* Fix the out parameters for contact groups.

* Move to using `_CastSchemaToTF()` where appropriate.

* Fix circonus_contact_group.  Updates work as expected now.

* Use `_StateSet()` in place of `d.Set()` everywhere.

* Make a quick pass over the collector datasource to modernize its style

* Quick pass for items identified by `golint`.

* Fix up collectors

* Fix the `json` check type.

Reconcile possible sources of drift.  Update now works as expected.

* Normalize trigger durations to seconds.

* Improve the robustness of the state handling for the `circonus_contact_group` resource.

* I'm torn on this, but sort the contact groups in the notify list.

This does mean that if the first contact group in the list has a higher
lexical sort order the plan won't converge until the offending resource
is tainted and recreated.  But there's also some sorting happening
elsewhere, so.... sort and taint for now and this will need to be
revisited in the future.

* Add support for the `httptrap` check type.

* Remove empty units from the state file.

* Metric clusters can return a 404.  Detect this accordingly in its
respective Exists handler.

* Add a `circonus_graph` resource.

* Fix a handful of bugs in the graph provider.

* Re-enable the necessary `ConflictsWith` definitions and normalize attribute names.

* Objects that have been deleted via the UI return a 404. Handle in Exists().

* Teach `circonus_graph`'s Stack set to accept nil values.

* Set `ForceNew: true` for a graph's name.

* Chase various API fixes required to make `circonus_graph` work as expected.

* Fix up the handling of sub-1 zoom resolutions for graphs.

* Add the `check_by_collector` out parameter to the `circonus_check` resource.

* Improve validation of line vs area graphs.  Fix graph_style.

* Fix up the `logarithmic` graph axis option.

* Resolve various trivial `go vet` issues.

* Add a stream_group out parameter.

* Remove incorrectly applied `Optional` attributes to the `circonus_account` resource.

* Remove various `Optional` attributes from the `circonus_collector` data source.

* Centralize the common need to suppress leading and trailing whitespace into `suppressWhitespace`.

* Sync up with upstream vendor fixes for circonus_graph.

* Update the checksum value for the http check.

* Chase `circonus_graph`'s underlying `line_style` API object change from `string` to `*string`.

* Clean up tests to use a generic terraform regression testing account.

* Rename all identifiers that began with a `_` and replace with a corresponding lowercase glyph.

* Remove stale comment in types.

* Move the calls to `ResourceData`'s `SetId()` calls to be first in the
list so that no resources are lost in the event of a `panic()`.

* Remove `stateSet` from the `circonus_trigger` resource.

* Remove `stateSet` from the `circonus_stream_group` resource.

* Remove `schemaSet` from the `circonus_graph` resource.

* Remove `stateSet` from the `circonus_contact` resource.

* Remove `stateSet` from the `circonus_metric` resource.

* Remove `stateSet` from the `circonus_account` data source.

* Remove `stateSet` from the `circonus_collector` data source.

* Remove stray `stateSet` call from the `circonus_contact` resource.

This is an odd artifact to find... I'm completely unsure as to why it
was there to begin with but am mostly certain it's a bug and needs to be
removed.

* Remove `stateSet` from the `circonus_check` resource.

* Remove the `stateSet` helper function.

All call sites have been converted to return errors vs `panic()`'ing at
runtime.

* Remove a pile of unused functions and type definitions.

* Remove the last of the `attrReader` interface.

* Remove an unused `Sprintf` call.

* Update `circonus-gometrics` and remove unused files.

* Document what `convertToHelperSchema()` does.

Rename `castSchemaToTF` to `convertToHelperSchema`.

Change the function parameter ordering so the `map` of attribute
descriptions: this is much easier to maintain when the description map
is first when creating schema inline.

* Move descriptions into their respective source files.

* Remove all instances of `panic()`.

In the case of software bugs, log an error.  Never `panic()` and always
return a value.

* Rename `stream_group` to `metric_cluster`.

* Rename triggers to rule sets

* Rename `stream` to `metric`.

* Chase the `stream` -> `metric` change into the docs.

* Remove some unused test functions.

* Add the now required `color` attribute for graphing a `metric_cluster`.

* Add a missing description to silence a warning.

* Add `id` as a selector for the account data source.

* Futureproof testing: Randomize all asset names to prevent any possible resource conflicts.

This isn't a necessary change for our current build and regression
testing, but *just in case* we have a radical change to our testing
framework in the future, make all resource names fully random.

* Rename various values to match the Circonus docs.

* s/alarm/alert/g

* Ensure ruleset criteria can not be empty.
2017-03-10 14:19:17 -06:00
clint shryock 4a34fb1d34 fix go vet issue 2017-03-10 11:25:58 -06:00
clint shryock 87c91f5bc8 provider/aws: annoymize tags in VPC data source test 2017-03-10 10:48:35 -06:00
Andy Lindeman fa18174713 Updates heroku-go to the latest revision (#12575) 2017-03-10 14:00:03 +02:00
Clint d24c761bbb more aws acc test fixes (#12568)
* provider/aws: fix TestAccAWSAutoScalingGroup_ALB_TargetGroups_ELBCapacity

* provider/aws: Randomize to fix TestAccDataSourceAwsVpc_basic
2017-03-09 16:01:18 -06:00
Clint 3fdeacdca7 helper/schema: Rename Timeout resource block to Timeouts (#12533)
helper/schema: Rename Timeout resource block to Timeouts

- Pluralize configuration argument name to better represent that there is
one block for many timeouts
- use a const for the configuration timeouts key
- update docs
2017-03-09 14:40:14 -06:00
James Bardin 343b96c9d7 Add MetaReset
Make sure the ArmClient gets a new StopContext for each test
2017-03-09 08:39:02 -05:00
John Engelman 8d35e3dc22 Closes #11054. Apply the set value for finish_upgrade. (#12545) 2017-03-09 01:32:28 +02:00
Seth Vargo d387860c19 Hash custom_data in state storage (#12214)
This also switches to helpers for b64.
2017-03-08 23:57:51 +02:00
clint shryock 3022eb6da0 provider/aws: fix acc test for data source 2017-03-08 15:43:57 -06:00
Paul Stack 10f080f315 provider/aws: Prevent aws_dms_replication_task panic (#12539)
Fixes: #12506

When a replication_task cdc_start_time was specified as an int, it was
causing a panic as the conversion to a Unix timestampe was expecting a
string

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAwsDmsReplicationTaskBasic'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/03/08 22:55:29 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAwsDmsReplicationTaskBasic -timeout 120m
=== RUN   TestAccAwsDmsReplicationTaskBasic
--- PASS: TestAccAwsDmsReplicationTaskBasic (1089.77s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	1089.802s
```
2017-03-08 23:27:47 +02:00
clint shryock 7f87abae91 provider/aws: increase randomization in beantsalk app version tests 2017-03-08 15:25:41 -06:00
Clint c5b833b999 provider/aws: Default build_timeout to 60, matching docs, update tests (#12531) 2017-03-08 14:14:02 -06:00
Robert Rudduck bf4d6d5b1e provider/azurerm: Add support for managed availability sets. (#12532)
* Add support for managed availability sets.

* Formatting.
2017-03-08 21:30:11 +02:00
Paul Stack b5b53bc56a provider/aws: Error on trying to recreate an existing customer gateway (#12501)
Fixes: #7492

When we use the same IP Address, BGP ASN and VPN Type as an existing
aws_customer_gateway, terraform will take control of that gateway (not
import it!) and try and modify it. This could be very bad

There is a warning on the AWS documentation that one gateway of the same
parameters can be created, Terraform is now going to error if a gateway
of the same parameters is attempted to be created

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSCustomerGateway_'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/03/07 18:40:39 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSCustomerGateway_ -timeout 120m
=== RUN   TestAccAWSCustomerGateway_importBasic
--- PASS: TestAccAWSCustomerGateway_importBasic (31.11s)
=== RUN   TestAccAWSCustomerGateway_basic
--- PASS: TestAccAWSCustomerGateway_basic (68.72s)
=== RUN   TestAccAWSCustomerGateway_similarAlreadyExists
--- PASS: TestAccAWSCustomerGateway_similarAlreadyExists (35.18s)
=== RUN   TestAccAWSCustomerGateway_disappears
--- PASS: TestAccAWSCustomerGateway_disappears (25.13s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	160.172s
```
2017-03-08 21:11:59 +02:00
Paul Stack 0b0a76a3d5 provider/aws: Add the IPV6 cidr block to the vpc datasource (#12529)
Fixes: #12526

```
% make testacc TEST=./builtin/providers/aws  TESTARGS='-run=TestAccDataSourceAwsVpc_ipv6Associated'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/03/08 17:42:13 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v
-run=TestAccDataSourceAwsVpc_ipv6Associated -timeout 120m
=== RUN   TestAccDataSourceAwsVpc_ipv6Associated
--- PASS: TestAccDataSourceAwsVpc_ipv6Associated (71.33s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws71.366s
```
2017-03-08 21:08:37 +02:00
tpoindessous 9a2e9914de providers/google : google_compute_disk.go : Minor correction : "Deleting disk" message in Delete method (#12521)
* WIP: added a new resource type : google_compute_snapshot

* [WIP]: added a test acceptance for google_compute_snapshot

* Cleanup

* Minor correction : "Deleting disk" message in Delete method

* Error in merge action

* Error in merge action
2017-03-08 17:34:49 +02:00
Clint f6ac200aca provider/aws: Rename 'timeout' to 'build_timeout' for Codebuild (#12503) 2017-03-08 09:29:54 -06:00
Brandon Tosch c2a6625d0f Bug Fix: Terraform crashes during azurerm_container_service provisioning (#12516)
* Corrected referencing on sshKeys map

* changed tests to use East US due to resource availability
2017-03-08 17:25:51 +02:00
Clint 5d894e4ffd Fix up command and some go fmt issues (#12509) 2017-03-07 16:03:45 -06:00
Daniel Portella 88cdae91e6 provider/docker: added support for linux capabilities (#12045)
* added support for linux capabilities

Refs #11623

Added capabilities block
Added tests for it
Added documentation for it.

My PC doesnt support memory swap so it errors there.

```
$ make testacc TEST=./builtin/providers/docker TESTARGS='-run=TestAccDockerContainer_'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/17 14:57:08 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/docker -v -run=TestAccDockerContainer_ -timeout 120m
=== RUN   TestAccDockerContainer_basic
--- PASS: TestAccDockerContainer_basic (44.50s)
=== RUN   TestAccDockerContainer_volume
--- PASS: TestAccDockerContainer_volume (40.73s)
=== RUN   TestAccDockerContainer_customized
--- FAIL: TestAccDockerContainer_customized (50.27s)
	testing.go:265: Step 0 error: Check failed: Check 2/2 error: Container has wrong memory swap setting: -1
	Please check that you machine supports memory swap (you can do that by running 'docker info' command).
=== RUN   TestAccDockerContainer_upload
--- PASS: TestAccDockerContainer_upload (38.56s)
FAIL
exit status 1
FAIL	github.com/hashicorp/terraform/builtin/providers/docker	174.070s
Makefile:48: recipe for target 'testacc' failed
make: *** [testacc] Error 1
```

* Documentation changes.

* added maxitems and rerun tests
2017-03-07 18:48:20 +02:00
Paul Stack b57e0bee2a provider/datadog: Update to datadog_monitor still used d.GetOk (#12497)
Fixes: #12494

The Create was changed to use the default and not d.GetOk - the update
wasn't - this was causing issues when trying to update to a false value

```
% make testacc TEST=./builtin/providers/datadog
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/03/07 16:20:54 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/datadog -v  -timeout 120m
=== RUN   TestDatadogMonitor_import
--- PASS: TestDatadogMonitor_import (4.77s)
=== RUN   TestDatadogUser_import
--- PASS: TestDatadogUser_import (6.23s)
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccDatadogMonitor_Basic
--- PASS: TestAccDatadogMonitor_Basic (3.83s)
=== RUN   TestAccDatadogMonitor_BasicNoTreshold
--- PASS: TestAccDatadogMonitor_BasicNoTreshold (4.92s)
=== RUN   TestAccDatadogMonitor_Updated
--- PASS: TestAccDatadogMonitor_Updated (5.88s)
=== RUN   TestAccDatadogMonitor_TrimWhitespace
--- PASS: TestAccDatadogMonitor_TrimWhitespace (3.23s)
=== RUN   TestAccDatadogMonitor_Basic_float_int
--- PASS: TestAccDatadogMonitor_Basic_float_int (5.73s)
=== RUN   TestAccDatadogTimeboard_update
--- PASS: TestAccDatadogTimeboard_update (8.86s)
=== RUN   TestValidateAggregatorMethod
--- PASS: TestValidateAggregatorMethod (0.00s)
=== RUN   TestAccDatadogUser_Updated
--- PASS: TestAccDatadogUser_Updated (6.05s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/datadog	49.506s
```
2017-03-07 16:36:37 +02:00
Matt Dainty 3d335e48ff Check instance is running before trying to attach (#12459)
This covers the scenario of an instance created by a spot request. Using
Terraform we only know the spot request is fulfilled but the instance can
still be pending which causes the attachment to fail.
2017-03-07 16:20:01 +02:00
Jack Bruno 6c0caaf1dd Fix aws_dms_replication_task diff for json with whitespace. (#12380) 2017-03-07 16:00:02 +02:00
stack72 1dedf666df
provider/aws: Adding an acceptance test to for ForceNew on
ecs_task_definition volumes
2017-03-07 15:53:00 +02:00
Pawel Burchard aa8de2f8cf
provider/aws: (#10587) Changing volumes in ECS task definition should force new revision. 2017-03-07 15:53:00 +02:00
stack72 61c101da29
Merge branch 'Originate-mb-fix-spot-fleet-request' 2017-03-07 15:28:24 +02:00
stack72 80e8418846
provider/aws: Change aws_spot_fleet_request tests to use the correct
hash values in test cases
2017-03-07 15:14:52 +02:00
Clint d2f728e6cd provider/aws: Only send iops when creating io1 devices. Fix docs (#12392) 2017-03-07 14:44:39 +02:00
Paddy 6cce8d6c1a provider/google: fix container instance group URLs
Google Container Engine's cluster API returned instance group manager
URLs when it meant to return instance group URLs. See #4336 for details
about the bug.

While this is undeniably an upstream problem, this PR:

* detects the error, meaning it will work as expected when the API is
  fixed.
* corrects the error by requesting the instance group manager, then
  retrieving its instance group URL, and using that instead.
* adds a test that exercises the error and the solution, to ensure it is
  functioning properly.
2017-03-06 21:14:32 -08:00
Dana Hoffman 322044695b provider/google: initial commit for node pool resource (#11802)
provider/google: initial commit for node pool resource
2017-03-06 14:59:24 -08:00
stack72 2d0770c507
Merge branch 'mb-fix-spot-fleet-request' of https://github.com/Originate/terraform into Originate-mb-fix-spot-fleet-request 2017-03-06 16:03:16 +02:00
Máximo Cuadros b58709aa91 provider/ignition: migration from resources to data resources (#11851)
* provider/ignition: migration from resources to data resources

* website: provider/ignition documention updated to data resources

* provider/ignition: backwards compatibility support for old resources
2017-03-06 14:23:04 +02:00
Brandon Clodius 22f69b1592 aws/provider: Fixes issue for aws_lb_ssl_negotiation_policy of already deleted ELB (#12360)
* Ensures elb exists before negotiation policy check; Fixes #11260

* Adds acceptance test case for missing elb

* Adds back https properties for test elb
2017-03-06 13:48:35 +02:00
Paul Stack bed8940953 provider/aws: Populate the iam_instance_profile uniqueId (#12449)
Fixes: #12430
2017-03-06 13:39:49 +02:00
yanndegat 09b1f4e1be provider/openstack: Add openstack_networking_network_v2 datasource (#12304) 2017-03-06 13:25:08 +02:00
Joe Topjian 3759e36784 provider/cobbler: Profile and System Fixes (#12452)
* vendor: Updating cobblerclient for Cobbler

* provider/cobbler: Fix Profile Repos

This commit fixes a bug where adding repos would result in an error.
This was due to the Cobbler API wanting a space-separated list of
repos rather than an array. The Cobbler Service will split the string
by space when used internally, but will always present the repos
as a string.

* provider/cobbler: System Interface Management Test

This commit adds a test to verify that the Management
parameter of System Interfaces works.
2017-03-06 13:19:30 +02:00
Pasha Palangpour ce633f2321 provider/ns1: Add notify list resource (#12373)
* Allow for local development with ns1 provider.

* Adds first implementation of ns1 notification list resource.

* NS1 record.use_client_subnet defaults to true, and added test for field.

* Adds more test cases for monitoring jobs.

* Adds webhook/datafeed notifier types and acctests for notifylists.

* Adds docs for notifylists resource.

* Updates ns1-go rest client via govendor

* Fix typos in record docs
2017-03-05 16:21:06 +02:00
Joe Topjian 120e3af178 provider/openstack: Toggle Creation of Default Security Group Rules (#12119)
This commit modifies the behavior implemented in #9799 by enabling
the user to be able to toggle the creation of the default security
group rules.
2017-03-05 16:18:00 +02:00
Radek Simko 7d6e2837e1 mysql: Avoid crash on un-interpolated provider cfg (#12391) 2017-03-05 15:58:15 +02:00
Joe Topjian 4ba145a3ac provider/openstack: Handle cases where volumes are disabled (#12374)
This commit handles the case where the volume API extensions are
disabled.
2017-03-05 15:53:09 +02:00
Andre Silva d50f2aca6f provider/statuscake: use default status code list when updating test (#12375) 2017-03-05 15:44:22 +02:00
David Harris 01f995fed5 provider/aws: Return errors from Elastic Beanstalk (#12425)
In the event that an unexpected state is returned from
`environmentStateRefreshFunc` errors in the Elastic Beanstalk console
will not be returned to the user.
2017-03-05 15:28:37 +02:00
Joe Topjian 959c197dc3 provider/openstack: rename image data source files (#12439) 2017-03-04 20:24:19 +02:00
Maxime Bury 0af10dec41 Fix spurious user_data diffs 2017-03-03 17:58:18 -08:00
Maxime Bury 93c4730de7 Properly handle 'vpc_security_group_ids', drop phantom 'security_groups' 2017-03-03 17:25:15 -08:00
Maxime Bury 4eba77eaee Default 'ebs_optimized' and 'monitoring' to false 2017-03-03 17:23:15 -08:00
Paddy 6de8e25b16 Merge pull request #12434 from hashicorp/paddy_fix_gcp_storage_region_test
provider/google: add location to storage tests.
2017-03-03 16:58:18 -08:00
Paddy 6531ef57e1 provider/google: log the op name in sql op errors.
To aid in tracking down the error that's causing
TestAccGoogleSqlDatabaseInstance_basic to fail (it's claiming an op
can't be found?) I've added the op name (which is unique) to the error
output for op errors.
2017-03-03 16:45:25 -08:00
Paddy a318cd9d61 provider/google: add location to storage tests.
Add location to storage tests that need it, which fixes the failing
TestAccStorageStorageClass test.
2017-03-03 15:51:36 -08:00
Paddy 09a2886546 Merge pull request #12397 from hashicorp/paddy_gcp_storage_rate_limit
provider/google: retry storage creation/deletion on rate limiting
2017-03-03 13:15:46 -08:00
clint shryock a0a26748f8 provider/aws: Randomize a flow log test 2017-03-03 11:55:58 -06:00
clint shryock 2d045a3302 provider/aws: Update Autoscaling attachment test 2017-03-03 11:18:30 -06:00
Paddy 3cb5107bd2 provider/google: retry storage creation/deletion on rate limiting
Our GCP storage tests are really flaky right now due to rate limiting.
In theory, this could also impact Terraform users that are
deleting/creating large numbers of Google Cloud Storage buckets at once.

To fix, I'm detecting the specific error code that GCP returns when it's
a rate limit error, and using that with resource.Retry to try the
request again.
2017-03-02 16:42:28 -08:00
Clint 3aba4af5b0 Merge pull request #12385 from hashicorp/b-aws-instance-ipv6-fix
provider/aws: Always set ipv6 addresses in read
2017-03-02 16:32:38 -06:00
Paddy 9b1da31ca4 provider/google: ignore expanded v collapsed policies in diff
When comparing the config and state for google_project_iam_policy,
always merge the bindings down to a common representation, to avoid a
perpetual diff.

Fixes #11763.
2017-03-02 14:00:45 -08:00
clint shryock 9bb2628c49 provider/aws: Always set ipv6 addresses in read 2017-03-02 15:00:24 -06:00
Clint 2fe5976aec helper/schema: Add configurable Timeouts (#12311)
* helper/schema: Add custom Timeout block for resources

* refactor DefaultTimeout to suuport multiple types. Load meta in Refresh from Instance State

* update vpc but it probably wont last anyway

* refactor test into table test for more cases

* rename constant keys

* refactor configdecode

* remove VPC demo

* remove comments

* remove more comments

* refactor some

* rename timeKeys to timeoutKeys

* remove note

* documentation/resources: Document the Timeout block

* document timeouts

* have a test case that covers 'hours'

* restore a System default timeout of 20 minutes, instead of 0

* restore system default timeout of 20 minutes, refactor tests, add test method to handle system default

* rename timeout key constants

* test applying timeout to state

* refactor test

* Add resource Diff test

* clarify docs

* update to use constants
2017-03-02 11:07:49 -06:00
stack72 0d4f4cac18
provider/aws: Adding a test that covers the new IAM Instance Profile
association to AWS Instance
2017-03-02 10:38:33 +00:00
stack72 185b59f125
Merge branch 'master' of https://github.com/myoung34/terraform into myoung34-master 2017-03-02 05:26:54 +00:00
Joe Topjian 1ab3750085 provider/openstack: Redesign openstack_blockstorage_volume_attach_v2 (#12071)
* provider/openstack: Redesign openstack_blockstorage_volume_attach_v2

The current design of openstack_blockstorage_volume_attach_v2 does
not correctly implement the Block Storage API attachment call. It
was only partially implemented, only marking volumes as being
attached, while never actually attaching them.

This redesign is a closer alignment to how creating attachments
to a standalone Block Storage service works.

For creating attachments specifically in the case of OpenStack
Compute instances, the openstack_compute_volume_attach_v2 resource
is required.

* provider/openstack: re-adding instance_id for backwards compatibility
2017-03-02 05:20:56 +00:00
Joe Topjian 1dba855daf provider/openstack: openstack_compute_floatingip_associate_v2 resource (#12190)
This commit adds the openstack_compute_floatingip_associate_v2
resource which specifically handles associating a floating IP
address to an instance. This can be used instead of the existing
floating_ip options in the openstack_compute_instance_v2 resource.
2017-03-02 05:18:57 +00:00
Simone Carletti 8ae31740e3 Upgrade DNSimple provider to API v2 (#10760)
* Replace DNSimple API client with the official Go client

* Upgrade DNSimple provider to use the new API v2

Acceptance tests pass:

```
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccDNSimpleRecord_Basic
--- PASS: TestAccDNSimpleRecord_Basic (2.67s)
=== RUN   TestAccDNSimpleRecord_Updated
--- PASS: TestAccDNSimpleRecord_Updated (1.88s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/dnsimple
```

Note that the code still has to be updated to pass the account ID
dynamically in place of "TODO-ACCOUNT".

* Refactor DNSimple provider to expose both client and config

The config is required as the new API wants to know the identifier of
the account you are operating to. The account is not stored in the
client (as the client can talk with different accounts), hence I need
to pass it as part of the config.

* Identify Terraform requests to DNSimple via UserAgent

* Upgrade to the latest dnsimple-go version

* Update docs

Provide upgrade instructions and update the docs for API v2.

* Remove rendundant type declaration
2017-03-02 05:12:34 +00:00
netjunki 72a8b1d62f aws/provider: redshift cluster exercise invalid password char path (#12359)
* aws/provider: redshift cluster exercise invalid password char path

* we need the password to be valid except for the one problem character
2017-03-02 04:55:42 +00:00
Alexander 59d1d7056c provider/pagerduty: Updated implementation of pagerduty_vendor & pagerduty_service_integration (#12357)
* Vendor update

* Updated implementation of pagerduty_vendor

* Update pagerduty_vendor tests

* Update pagerduty_vendor documentation

* Updated implementation of pagerduty_service_integration

* Update pagerduty_service_integration tests

* Update pagerduty_service_integration documentation
2017-03-01 23:59:16 +00:00
netjunki 2cfe385653 provider/aws: improve redshift cluster validation (#12313)
* provider/aws: improve redshift cluster validation

* aws/provider: redshift cluster mixed case name should be an invalid name
2017-03-01 23:56:22 +00:00
Paul Stack c5da896d22 provider/aws: Add support for import of aws_elasticsearch_domain (#12330)
Fixes: #12180
2017-03-01 23:53:35 +00:00
Jasmin Gacic 73006a243a Acceptance tests volume password change (#12356) 2017-03-01 23:05:11 +00:00
netjunki 8e48a5bbcb provider/aws: more details on which s3 bucket had an error (#12314)
* provider/aws: more details on which s3 bucket had an error

* provider/aws: s3 bucket data source adjust error output
2017-03-01 23:00:47 +00:00
Paul Stack 185c3dffe0 provider/aws: Refresh cloudwatch log subscription filter on 404 (#12333)
Fixes:#11750

Before this change, adding a log_subscription_filter and then deleting
it manually would yield this error on terraform plan/apply:

```
% terraform plan                                                                                                             ✹ ✭
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_iam_role.iam_for_lambda: Refreshing state... (ID: test_lambdafuntion_iam_role_example123)
aws_cloudwatch_log_group.logs: Refreshing state... (ID: example_lambda_name)
aws_iam_role_policy.test_lambdafunction_iam_policy: Refreshing state... (ID: test_lambdafuntion_iam_role_example123:test_lambdafunction_iam_policy)
aws_lambda_function.test_lambdafunction: Refreshing state... (ID: example_lambda_name_example123)
aws_lambda_permission.allow_cloudwatch_logs: Refreshing state... (ID: AllowExecutionFromCloudWatchLogs)
aws_cloudwatch_log_subscription_filter.test_lambdafunction_logfilter: Refreshing state... (ID: cwlsf-992677504)
Error refreshing state: 1 error(s) occurred:

* aws_cloudwatch_log_subscription_filter.test_lambdafunction_logfilter: aws_cloudwatch_log_subscription_filter.test_lambdafunction_logfilter: Subscription filter for log group example_lambda_name with name prefix test_lambdafunction_logfilter not found!

```

After this patch, we get the following behaviour:

```
% terraform plan                                                                                                             ✹ ✭
[WARN] /Users/stacko/Code/go/bin/terraform-provider-aws overrides an internal plugin for aws-provider.
  If you did not expect to see this message you will need to remove the old plugin.
  See https://www.terraform.io/docs/internals/internal-plugins.html
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_iam_role.iam_for_lambda: Refreshing state... (ID: test_lambdafuntion_iam_role_example123)
aws_cloudwatch_log_group.logs: Refreshing state... (ID: example_lambda_name)
aws_lambda_function.test_lambdafunction: Refreshing state... (ID: example_lambda_name_example123)
aws_iam_role_policy.test_lambdafunction_iam_policy: Refreshing state... (ID: test_lambdafuntion_iam_role_example123:test_lambdafunction_iam_policy)
aws_lambda_permission.allow_cloudwatch_logs: Refreshing state... (ID: AllowExecutionFromCloudWatchLogs)
aws_cloudwatch_log_subscription_filter.test_lambdafunction_logfilter: Refreshing state... (ID: cwlsf-992677504)
The Terraform execution plan has been generated and is shown below.
Resources are shown in alphabetical order for quick scanning. Green resources
will be created (or destroyed and then created if an existing resource
exists), yellow resources are being changed in-place, and red resources
will be destroyed. Cyan entries are data sources to be read.

Note: You didn't specify an "-out" parameter to save this plan, so when
"apply" is called, Terraform can't guarantee this is what will execute.

+ aws_cloudwatch_log_subscription_filter.test_lambdafunction_logfilter
    destination_arn: "arn:aws:lambda:us-west-2:187416307283:function:example_lambda_name_example123"
    filter_pattern:  "logtype test"
    log_group_name:  "example_lambda_name"
    name:            "test_lambdafunction_logfilter"
    role_arn:        "<computed>"

Plan: 1 to add, 0 to change, 0 to destroy.
```
2017-03-01 22:12:50 +00:00
Paul Stack 26926aca77 provider/aws: reading multiple pages of aws_efs_file_system tags (#12328)
Fixes: #12232

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSEFSFileSystem_pagedTags'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSEFSFileSystem_pagedTags -timeout 120m
=== RUN   TestAccAWSEFSFileSystem_pagedTags
--- PASS: TestAccAWSEFSFileSystem_pagedTags (39.51s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws    39.537s
```
2017-03-01 22:09:13 +00:00
Paul Stack 177400dbbf provider/aws: Implement IPV6 Support for ec2 / VPC (#10538)
* provider/aws: Add support for IPV6 enabled VPC

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSVpc'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/12/09 14:07:31 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSVpc -timeout 120m
=== RUN   TestAccAWSVpc_importBasic
--- PASS: TestAccAWSVpc_importBasic (43.03s)
=== RUN   TestAccAWSVpc_basic
--- PASS: TestAccAWSVpc_basic (36.32s)
=== RUN   TestAccAWSVpc_enableIpv6
--- PASS: TestAccAWSVpc_enableIpv6 (29.37s)
=== RUN   TestAccAWSVpc_dedicatedTenancy
--- PASS: TestAccAWSVpc_dedicatedTenancy (36.63s)
=== RUN   TestAccAWSVpc_tags
--- PASS: TestAccAWSVpc_tags (67.54s)
=== RUN   TestAccAWSVpc_update
--- PASS: TestAccAWSVpc_update (66.16s)
=== RUN   TestAccAWSVpc_bothDnsOptionsSet
--- PASS: TestAccAWSVpc_bothDnsOptionsSet (16.82s)
=== RUN   TestAccAWSVpc_DisabledDnsSupport
--- PASS: TestAccAWSVpc_DisabledDnsSupport (36.52s)
=== RUN   TestAccAWSVpc_classiclinkOptionSet
--- PASS: TestAccAWSVpc_classiclinkOptionSet (38.13s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	739.543s
```

* provider/aws: New Resource: aws_egress_only_internet_gateway

```
make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSEgressOnlyInternetGateway_'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/12/09 14:22:16 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSEgressOnlyInternetGateway_ -timeout 120m
=== RUN   TestAccAWSEgressOnlyInternetGateway_basic
--- PASS: TestAccAWSEgressOnlyInternetGateway_basic (32.67s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	32.692s
```

* provider/aws: Add IPV6 support to aws_subnet

```
% make testacc TEST=./builtin/providers/aws
% TESTARGS='-run=TestAccAWSSubnet_'
% 1 ↵ ✹ ✭
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/27 19:08:34 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSSubnet_
-timeout 120m
=== RUN   TestAccAWSSubnet_importBasic
--- PASS: TestAccAWSSubnet_importBasic (69.88s)
=== RUN   TestAccAWSSubnet_basic
--- PASS: TestAccAWSSubnet_basic (51.28s)
=== RUN   TestAccAWSSubnet_ipv6
--- PASS: TestAccAWSSubnet_ipv6 (90.39s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws211.574s
```

* provider/aws: Add support for running aws_instances with ipv6 addresses
2017-03-01 16:16:59 +00:00
Paul Stack 3d198295f2 provider/aws: No longer ForceNew resource on lambda_function runtime (#12329)
update

Fixes: #12181

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSLambdaFunction_updateRuntime'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/03/01 11:20:18 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSLambdaFunction_updateRuntime -timeout 120m
=== RUN   TestAccAWSLambdaFunction_updateRuntime
--- PASS: TestAccAWSLambdaFunction_updateRuntime (110.25s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	110.279s
```
2017-03-01 15:30:39 +00:00
James Bardin f9aa3d3a0b Merge pull request #12182 from hashicorp/jbardin/environments
Environments
2017-03-01 10:30:03 -05:00
Dana Hoffman 75eb9209b7 provider/google: fix url map test and update logic (#12317) 2017-03-01 09:47:12 +00:00
Paul Stack cf3d234f5c provider/aws: Refresh aws_autoscaling_schedule from state when autoscaling_group (#12312)
not found

Fixes: #12279

When manually deleting an autoscaling_group from the console, a
terraform plan would look as follows:

```
% terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_launch_configuration.foobar: Refreshing state... (ID: test-0096cf26c7eebdc9fcb5bd1837)
aws_autoscaling_group.foobar: Refreshing state... (ID: test)
aws_autoscaling_schedule.foobar: Refreshing state... (ID: foobar)
Error refreshing state: 1 error(s) occurred:

* aws_autoscaling_schedule.foobar: aws_autoscaling_schedule.foobar: Error retrieving Autoscaling Scheduled Actions: ValidationError: Group test not found
	status code: 400, request id: 093e9ed5-fe01-11e6-b990-1f64334b3a10

```

After this patch:

```
% terraform plan                                                                                                                          ✹ ✭
[WARN] /Users/stacko/Code/go/bin/terraform-provider-aws overrides an internal plugin for aws-provider.
  If you did not expect to see this message you will need to remove the old plugin.
  See https://www.terraform.io/docs/internals/internal-plugins.html
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_launch_configuration.foobar: Refreshing state... (ID: test-0096cf26c7eebdc9fcb5bd1837)
aws_autoscaling_group.foobar: Refreshing state... (ID: test)
aws_autoscaling_schedule.foobar: Refreshing state... (ID: foobar)
The Terraform execution plan has been generated and is shown below.
Resources are shown in alphabetical order for quick scanning. Green resources
will be created (or destroyed and then created if an existing resource
exists), yellow resources are being changed in-place, and red resources
will be destroyed. Cyan entries are data sources to be read.

Note: You didn't specify an "-out" parameter to save this plan, so when
"apply" is called, Terraform can't guarantee this is what will execute.

+ aws_autoscaling_group.foobar
    arn:                               "<computed>"
    availability_zones.#:              "1"
    availability_zones.2487133097:     "us-west-2a"
    default_cooldown:                  "<computed>"
    desired_capacity:                  "<computed>"
    force_delete:                      "true"
    health_check_grace_period:         "300"
    health_check_type:                 "ELB"
    launch_configuration:              "test-0096cf26c7eebdc9fcb5bd1837"
    load_balancers.#:                  "<computed>"
    max_size:                          "1"
    metrics_granularity:               "1Minute"
    min_size:                          "1"
    name:                              "test"
    protect_from_scale_in:             "false"
    tag.#:                             "1"
    tag.157008572.key:                 "Foo"
    tag.157008572.propagate_at_launch: "true"
    tag.157008572.value:               "foo-bar"
    termination_policies.#:            "1"
    termination_policies.0:            "OldestInstance"
    vpc_zone_identifier.#:             "<computed>"
    wait_for_capacity_timeout:         "10m"

+ aws_autoscaling_schedule.foobar
    arn:                    "<computed>"
    autoscaling_group_name: "test"
    desired_capacity:       "0"
    end_time:               "2017-12-12T06:00:00Z"
    max_size:               "1"
    min_size:               "0"
    recurrence:             "<computed>"
    scheduled_action_name:  "foobar"
    start_time:             "2017-12-11T18:00:00Z"

Plan: 2 to add, 0 to change, 0 to destroy.
```
2017-02-28 22:08:22 +00:00
James Bardin 6c3800d17f update the remote state datasource
Add an `environment` field to the terraform remote state data source.
2017-02-28 16:35:46 -05:00
Joe Topjian 85de5f1e04 provider/openstack: Rename provider to loadbalancer_provider (#12239)
* provider/openstack: Rename provider to loadbalancer_provider

This commit renames provider to loadbalancer_provider in the
openstack_lb_loadbalancer_v2 resource.

It also changes security_group_ids to Computed so default
security groups are added to the state correctly.

* provider/openstack: Switch to a deprecation path for loadbalancer provider

This commit switches to using a deprecation path for removal of the
previous "provider" argument in favor of the new "loadbalancer_provider".
2017-02-28 16:06:49 +00:00
Brian Flad 4372592f0c
provider/datadog: Add datadog_user resource (#12268)
* provider/datadog: Add datadog_user resource

* provider/datadog: Fix datadog_user import test, simplify datadog_user ACC tests, more consise documentation
2017-02-27 10:38:54 +00:00
Joe Topjian 5a514f22f7 provider/openstack: Add Additional Targets for LBaaS v1 Member (#12266)
This commit adds CREATED and DOWN as additional valid targets
for creating LBaaS v1 members.
2017-02-27 10:32:16 +00:00
Joe Topjian 9d3606c1b2 provider/openstack: Update Development Documentation (#12265)
This commit removes the bundled devstack script and updates the
documentation to point to the latest build scripts used for
testing. It also mentions that development should be possible on
any OpenStack environment.
2017-02-27 10:27:55 +00:00
Eric Westfall 72da290e1d provider/aws: Fix error message returned when an invalid SSM document type is provided. The original error appears to have been copied from the CodeBuild resource and provides incorrect information about valid types. 2017-02-25 06:26:59 +00:00
Paddy 6868ba72c7 Update the docs for resolveImage.
Update the explanation of the logic being followed in resolveImage.
2017-02-23 22:09:07 -08:00
Paddy 90254b9451 provider/google: update image resolution code.
Add tests that ensure that image syntax resolves to API input the way we
want it to.

Add a lot of different input forms for images, to more closely map to
what the API accepts, so anything that's valid input to the API should
also be valid input in a config.

Stop resolving image families to specific image URLs, allowing things
like instance templates to evolve over time as new images are pushed.
2017-02-23 21:55:30 -08:00
Paddy 73565af503 Merge branch 'master' into paddy_10984_better_image_resolution 2017-02-23 15:12:47 -08:00
Erik Jansson 99e839b66d provider/aws: Fix update of environment_variable in codebuild_project (#12169)
* Fix for environment_variable not updating

* Add update test

* Fix for tags not passing update test

* Fix for nil in statefile
2017-02-23 23:57:34 +02:00
Paul Stack 861706921c provider/digitalocean: Add support for LoadBalancers (#12077)
* provider/digitalocean: Add support for LoadBalancers

Fixes: #11945

```
% make testacc TEST=./builtin/providers/digitalocean TESTARGS='-run=TestAccDigitalOceanLoadbalancer_'                                  2 ↵ ✹ ✭
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/18 21:49:11 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/digitalocean -v -run=TestAccDigitalOceanLoadbalancer_ -timeout 120m
=== RUN   TestAccDigitalOceanLoadbalancer_Basic
--- PASS: TestAccDigitalOceanLoadbalancer_Basic (121.18s)
=== RUN   TestAccDigitalOceanLoadbalancer_Updated
--- PASS: TestAccDigitalOceanLoadbalancer_Updated (168.35s)
=== RUN   TestAccDigitalOceanLoadbalancer_dropletTag
--- PASS: TestAccDigitalOceanLoadbalancer_dropletTag (131.31s)
PASS
ok	github.com/hashicorp/terraform/builtin/providers/digitalocean	420.851s
```

* provider/digitalocean: Addressing PR feedback from @catsby
2017-02-23 23:41:20 +02:00
Paul Stack 9fc577547c provider/aws: Fix the panic in ssm_association with parameters (#12215)
Fixes: #12205

You cannot use an index of an empty slide therefore, we got a panic as follows:

```
aws_ssm_association.foo: Creating...
  instance_id:              "" => "i-002f3898dc95350e7"
  name:                     "" => "test_document_association-%s"
  parameters.%:             "" => "2"
  parameters.directoryId:   "" => "d-926720980b"
  parameters.directoryName: "" => "corp.mydomain.com"
Error applying plan:

1 error(s) occurred:

* aws_ssm_association.foo: 1 error(s) occurred:

* aws_ssm_association.foo: unexpected EOF

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.
panic: runtime error: index out of range
2017/02/23 21:41:45 [DEBUG] plugin: terraform-provider-aws:
2017/02/23 21:41:45 [DEBUG] plugin: terraform-provider-aws: goroutine 1419 [running]:
2017/02/23 21:41:45 [DEBUG] plugin: terraform-provider-aws: panic(0x1567480, 0xc42000c110)
2017/02/23 21:41:45 [DEBUG] plugin: terraform-provider-aws: 	/usr/local/Cellar/go/1.7.4_1/libexec/src/runtime/panic.go:500 +0x1a1
```
2017-02-23 22:22:14 +02:00
Alexander e72ac9f279 Setting incident_urgency_rule as optional (#12211) 2017-02-23 21:35:45 +02:00
Alexander 229a1343b4 provider/pagerduty: Import support for service integrations (#12141)
* Remove custom imports

* Add import support for service integrations
2017-02-23 21:19:35 +02:00
Mitchell Hashimoto f77646aa5b Merge pull request #12210 from hashicorp/b-computed-elem
flatmap: mark computed list as a computed value in Expand
2017-02-23 10:27:14 -08:00
Mitchell Hashimoto c6d0333dc0
flatmap: mark computed list as a computed value in Expand
Fixes #12183

The fix is in flatmap for this but the entire issue is a bit more
complex. Given a schema with a computed set, if you reference it like
this:

    lookup(attr[0], "field")

And "attr" contains a computed set within it, it would panic even though
"field" is available. There were a couple avenues I could've taken to
fix this:

1.) Any complex value containing any unknown value at any point is
entirely unknown.

2.) Only the specific part of the complex value is unknown.

I took route 2 so that the above works without any computed (since
"name" is not computed but something else is). This may actually have an
effect on other parts of Terraform configs, however those similar
configs would've simply crashed previously so it shouldn't break any
pre-existing configs.
2017-02-23 10:03:59 -08:00
Paul Stack 05e87be7d5 provider/azurerm: Bump AzureRM SDK to v8.0.1-beta (#11866)
* provider/azurerm: Bump AzureRM SDK to v8.0.1-beta

* provider/azurerm: Renaming SDK packages as per MSFT updates

* Bump azurerm sdk 8.0.1 (#12076)

* Updating the constructors to match the updated types

* Updating the Redis Client name

* ObjectID is now a string

* Updating to match the new Storage API specs
2017-02-23 18:14:55 +02:00
stack72 e0e3692076
provider/profitbricks: fmt changes post cherry-pick 2017-02-23 18:07:29 +02:00
Jasmin Gacic b71103b0f2 Profitbricks primary nic fix (#12197)
* Primary Nic fix

* Cleanup
2017-02-23 17:16:55 +02:00
Martin Atkins bc60bd4561 Merge #12188: AWS Lambda DeadLetterConfig support 2017-02-22 19:24:40 -08:00
Mitchell Hashimoto 8f11068ab2 Merge pull request #12173 from hashicorp/b-remote-state-ds
providers/terraform: remote state data source supports backends
2017-02-22 18:43:06 -08:00
Martin Atkins db9fbe67fa provider/aws: Lambda DeadLetterConfig support
This feature allows sending a notification to either an SQS queue or an
SNS topic when an error occurs running an AWS Lambda function.

This fixes #10630.
2017-02-22 17:50:10 -08:00
Ben Lau ae2d7f7065 what was the value of the cluster id which caused the problem 2017-02-22 17:26:53 -08:00
Paul Stack 210474a2a5 provider/spotinst: Disallow passing an empty user_data string (#12179)
Was missed off the merged as I didn't merge from local to master
2017-02-22 23:25:03 +02:00
Liran Polak f37800ae62 New Provider: Spotinst (#5001)
* providers/spotinst: Add support for Spotinst resources

* providers/spotinst: Fix merge conflict - layouts/docs.erb

* docs/providers/spotinst: Fix the resource description field

* providers/spotinst: Fix the acceptance tests

* providers/spotinst: Mark the device_index as a required field

* providers/spotinst: Change the associate_public_ip_address field to TypeBool

* docs/providers/spotinst: Update the description of the adjustment field

* providers/spotinst: Rename IamRole to IamInstanceProfile to make it more compatible with the AWS provider

* docs/providers/spotinst: Rename iam_role to iam_instance_profile

* providers/spotinst: Deprecate the iam_role attribute

* providers/spotinst: Fix a misspelled var (IamRole)

* providers/spotinst: Fix possible null pointer exception related to "iam_instance_profile"

* docs/providers/spotinst: Add "load_balancer_names" missing description

* providers/spotinst: New resource "spotinst_subscription" added

* providers/spotinst: Eliminate a possible null pointer exception in "spotinst_aws_group"

* providers/spotinst: Eliminate a possible null pointer exception in "spotinst_subscription"

* providers/spotinst: Mark spotinst_subscription as deleted in destroy

* providers/spotinst: Add support for custom event format in spotinst_subscription

* providers/spotinst: Disable the destroy step of spotinst_subscription

* providers/spotinst: Add support for update subscriptions

* providers/spotinst: Merge fixed conflict - layouts/docs.erb

* providers/spotinst: Vendor dependencies

* providers/spotinst: Return a detailed error message

* provider/spotinst: Update the plugin list

* providers/spotinst: Vendor dependencies using govendor

* providers/spotinst: New resource "spotinst_healthcheck" added

* providers/spotinst: Update the Spotinst SDK

* providers/spotinst: Comment out unnecessary log.Printf

* providers/spotinst: Fix the acceptance tests

* providers/spotinst: Gofmt fixes

* providers/spotinst: Use multiple functions to expand each block

* providers/spotinst: Allow ondemand_count to be zero

* providers/spotinst: Change security_group_ids from TypeSet to TypeList

* providers/spotinst: Remove unnecessary `ForceNew` fields

* providers/spotinst: Update the Spotinst SDK

* providers/spotinst: Add support for capacity unit

* providers/spotinst: Add support for EBS volume pool

* providers/spotinst: Delete health check

* providers/spotinst: Allow to set multiple availability zones

* providers/spotinst: Gofmt

* providers/spotinst: Omit empty strings from the load_balancer_names field

* providers/spotinst: Update the Spotinst SDK to v1.1.9

* providers/spotinst: Add support for new strategy parameters

* providers/spotinst: Update the Spotinst SDK to v1.2.0

* providers/spotinst: Add support for Kubernetes integration

* providers/spotinst: Fix merge conflict - vendor/vendor.json

* providers/spotinst: Update the Spotinst SDK to v1.2.1

* providers/spotinst: Add support for Application Load Balancers

* providers/spotinst: Do not allow to set ondemand_count to 0

* providers/spotinst: Update the Spotinst SDK to v1.2.2

* providers/spotinst: Add support for scaling policy operators

* providers/spotinst: Add dimensions to spotinst_aws_group tests

* providers/spotinst: Allow both ARN and name for IAM instance profiles

* providers/spotinst: Allow ondemand_count=0

* providers/spotinst: Split out the set funcs into flatten style funcs

* providers/spotinst: Update the Spotinst SDK to v1.2.3

* providers/spotinst: Add support for EBS optimized flag

* providers/spotinst: Update the Spotinst SDK to v2.0.0

* providers/spotinst: Use stringutil.Stringify for debugging

* providers/spotinst: Update the Spotinst SDK to v2.0.1

* providers/spotinst: Key pair is now optional

* providers/spotinst: Make sure we do not nullify signals on strategy update

* providers/spotinst: Hash both Strategy and EBS Block Device

* providers/spotinst: Hash AWS load balancer

* providers/spotinst: Update the Spotinst SDK to v2.0.2

* providers/spotinst: Verify namespace exists before appending policy

* providers/spotinst: Image ID will be in a separate block from now on, so as to allow ignoring changes only on the image ID. This change is backwards compatible.

* providers/spotinst: user data decoded when returned from spotinst api, so that TF compares the two states properly, and does not update without cause.
2017-02-22 22:57:16 +02:00
Seth Vargo 9d34612be0 Ignore case on protocol and allocation types (#12176) 2017-02-22 22:30:07 +02:00
Mitchell Hashimoto 52720ce880
providers/terraform: data source uses backends for state loading 2017-02-22 11:37:56 -08:00
Paul Stack f5a515ed68 provider/aws: Missing skip_final_snapshot on opsworks rds db instance (#12171) 2017-02-22 20:58:33 +02:00
Paul Stack 8c9bfb7bfe provider/datadog: Adding default values to datadog_monitor (#12168)
Fixes: #8055
Fixes: #10264
Fixes: #10881

We have swapped from using d.GetOk (as that func returns nil when a
default value is used) and moved to using default values that we can
pass directly to the Struct. The fact we have default values, means that
we can use d.Get which will work here

```
% make testacc TEST=./builtin/providers/datadog
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/22 18:56:03 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/datadog -v  -timeout 120m
=== RUN   TestDatadogMonitor_import
--- PASS: TestDatadogMonitor_import (8.66s)
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccDatadogMonitor_Basic
--- PASS: TestAccDatadogMonitor_Basic (5.68s)
=== RUN   TestAccDatadogMonitor_BasicNoTreshold
--- PASS: TestAccDatadogMonitor_BasicNoTreshold (3.13s)
=== RUN   TestAccDatadogMonitor_Updated
--- PASS: TestAccDatadogMonitor_Updated (6.41s)
=== RUN   TestAccDatadogMonitor_TrimWhitespace
--- PASS: TestAccDatadogMonitor_TrimWhitespace (3.22s)
=== RUN   TestAccDatadogMonitor_Basic_float_int
--- PASS: TestAccDatadogMonitor_Basic_float_int (5.50s)
=== RUN   TestAccDatadogTimeboard_update
--- PASS: TestAccDatadogTimeboard_update (8.35s)
=== RUN   TestValidateAggregatorMethod
--- PASS: TestValidateAggregatorMethod (0.00s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/datadog	40.954s
```
2017-02-22 19:36:59 +02:00
Erik Jansson 62aa2c583a provider/aws: New resource codepipeline (#11814)
* provider/aws: New resource codepipeline

* Vendor aws/codepipeline

* Add tests

* Add docs

* Bump codepipeline to v1.6.25

* Adjustments based on feedback

* Force new resource on ID change

* Improve tests

* Switch update to read

Since we don't require a second pass, only do a read.

* Skip tests if GITHUB_TOKEN is not set
2017-02-22 19:31:24 +02:00
Paul Stack dc7f267758 provider/azurerm: Auto base64encode virtual_machine custom data (#12164)
Reported by @sethvargo - we auto encode for AWS, we should follow a
similar pattern for Azure.

In order to escape the double encoding, we check that it's not already
encoded before encoding
2017-02-22 18:26:35 +02:00
Paul Stack 3e9b6f18f0 provider/aws: Refactor snapshot tests to always delete the snapshot (#12013)
first

//cc @radeksimko
2017-02-22 16:13:04 +02:00
Jake Champlin 757b83aeeb Merge pull request #12122 from netjunki/which-bucket-had-a-tag-value-err
aws/provider: aws_s3_bucket doesn't report bucket name when encounter…
2017-02-21 16:19:54 -05:00
Ben Lau fa77fbf4f4 tweak the output string for better readability 2017-02-21 12:51:58 -08:00
Marcus Young 7fd8be3890 Remove need to destroy/create AWS instance for iam_role_profile change 2017-02-21 11:31:55 -06:00
Cameron Wood 7c122604a0 provider/aws: data_aws_sns_topic (#11752)
* Initial commit of provider/aws: data_aws_sns_topic

* Pull-request fixes
2017-02-21 17:47:48 +02:00
Jake Champlin 85fdca8cbb Merge pull request #11940 from bodgit/log_destination
Add support for Amazon CloudWatch Logs PutDestination/PutDestinationPolicy
2017-02-21 08:50:03 -05:00
Ben Lau a7bbff6c1e aws/provider: aws_s3_bucket doesn't report bucket name when encountering tag value problems 2017-02-20 11:59:47 -08:00
Paul Stack 2fce519f57 provider/aws: Update of inspector_assessment_target should use ARN not (#12115)
Name

fixes: #12112

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSInspectorTarget_basic'                                                  ✚
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/20 19:08:18 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSInspectorTarget_basic -timeout 120m
=== RUN   TestAccAWSInspectorTarget_basic
--- PASS: TestAccAWSInspectorTarget_basic (33.58s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	33.607s
```
2017-02-20 20:12:17 +02:00
Evan Brown facc50d308 providers/google: google_project supports billing account (#11653)
* Vendor google.golang.org/api/cloudbilling/v1

* providers/google: Add cloudbilling client

* providers/google: google_project supports billing account

This change allows a Terraform user to set and update the billing
account associated with their project.

* providers/google: Testing project billing account

This change adds optional acceptance tests for project billing accounts.
GOOGLE_PROJECT_BILLING_ACCOUNT and GOOGLE_PROJECT_BILLING_ACCOUNT_2
must be set in the environment for the tests to run; otherwise, they
will be skipped.

Also includes a few code cleanups per review.

* providers/google: Improve project billing error message
2017-02-20 19:32:24 +02:00
Dana Hoffman 069467edc1 provider/google: Write the raw disk encryption key in the state file to avoid diffs on plan (#12068) 2017-02-20 19:28:32 +02:00
stack72 9bb678d76c
provider/aws: Only send the Owner Account to Redshift cluster if not
empty
2017-02-20 19:14:13 +02:00
stack72 ee9bcadbb9
Merge branch 'redshift-cluster-OwnerAccount' of https://github.com/jklukas/terraform into jklukas-redshift-cluster-OwnerAccount 2017-02-20 19:13:12 +02:00
Joe Topjian 8ea8588c52 provider/openstack: Image Data Source (#12097)
* vendor: Updating Gophercloud

* provider/openstack: Image Data Source

This commit adds the openstack_images_image_v2 data source which
is able to query the Image Service v2 API for a specific image.
2017-02-20 19:03:17 +02:00
Mattias Gees 20b312034a Add VRRP to allowed protocols in network ACL rules (#12107) 2017-02-20 15:05:45 +02:00
Otto Jongerius 2310316666 provider/datadog: Upgrade to Datadog API v2 (#12098)
* provider/datadog: Pulls v2 and removes v1 of library go-datadog-api.

    See https://github.com/zorkian/go-datadog-api/issues/56 for context.

    * Fixes bug in backoff implementation that decreased performance significantly.
    * Uses pointers for field types, providing support of distinguishing
        between if a value is set, or the default value for that type is
        effective.

* provider/datadog: Convert provider to use v2 of go-datadog-api.

* provider/datadog: Update vendored library.

* provider/datadog: Update dashboard resource to reflect API updates.
2017-02-20 14:48:32 +02:00
Joe Topjian 1b5694b7f4 provider/openstack: Enable HTTP Logging (#12089)
This commit adds the ability to log all requests and responses
between Terraform and the OpenStack cloud. To enable, set the
OS_DEBUG environment variable to 1.
2017-02-20 14:36:05 +02:00
Joe Topjian 6d4fc8d21a provider/openstack: Don't allow floating IP and port (#12099)
This commit adds a check to prevent a user from specifying both
a floating IP and a port on a specific network. While this
configuration is currently allowed, the Port will be chosen and
applying the configuration again will show a state mismatch. This
attempts to prevent such a misconfiguration.
2017-02-20 14:32:28 +02:00
Joe Topjian 9188a80192 provider/openstack: Updates to openstack_images_image_v2 resource
This commit has a few more fixes to the recently added
openstack_images_image_v2 resource:

* tags were changed to a Set because the OpenStack Image API does
not seem to respect ordering.
* The visibility argument was fixed.
* Acceptance tests for all updatable fields has been implemented.
* Documentation updates, including a new entry in the sidebar.
2017-02-19 21:20:29 +00:00
Joe Topjian 96d2ac21d4 provider/openstack: Fix Creation of Empty Tags
This commit fixes a bug where images would be created with empty tags.
Acceptance tests were also tidied up.
2017-02-19 18:44:42 +00:00
Joe Topjian b3b9247ad0 Merge pull request #11942 from yanndegat/master
Add resource_openstack_images_image_v2
2017-02-19 10:21:58 -07:00
Matt Dainty e141df0cd0
Seed test value names and tidy up whitespace 2017-02-18 18:53:32 +00:00
netjunki 70f1113918 provider/aws: aws_ecs_service should output service name along with error (#12072) 2017-02-18 15:59:49 +02:00
Paddy 27c185e1c9 Merge pull request #12044 from sbadia/gcs_storage_class
doc: gcs - Update storage_class documentation and tests
2017-02-17 16:13:29 -08:00
Mike Fowler bfdeae0e33 provider/google-cloud: Add maintenance window (#12042)
* provider/google-cloud: Add maintenance window

Allows specification of the `maintenance_window` within the `settings`
block. This controls when Google will restart a database in order to
apply updates. It is also possible to select an `update_track` to
relatively control updating between instances in the same project.

* Adjustments as suggested in code review.
2017-02-18 01:33:47 +02:00
clint shryock be6ae20ac1 Merge branch 'pr-8299'
* pr-8299:
  Patch up website docs
  provider/dns: DNS dynamic updates (RFC 2136)
  vendor: Capture new dependency miekg-dns
2017-02-17 17:02:37 -06:00
Paddy 672f496344 Merge pull request #12002 from hashicorp/paddy_catch_metadata_delete_error
provider/google: Check for errors when deleting project metadata.
2017-02-17 14:23:48 -08:00
Jeff Klukas 305eaf6968 Add owner_account option to aws_redshift_cluster 2017-02-17 16:40:55 -05:00
Sean Chittenden 3127998ecd Remove the AWS Access Key and Secret Access keys from the (#12061)
`consul_agent_self` data source.

Pro tip: update consul!  I was using an old branch of Consul, not
`origin/master`.
2017-02-17 13:36:38 -08:00
Traver Tischio 84308439aa provider/fastly Adds fastly response object (#12032)
* Adds basic schema for response object

* Updates based on differences in fastly response objects

* Refreshes and flattens fastly response object

* Tests fastly response object

* Adds documentation for a fastly response object
2017-02-17 10:36:05 -06:00
Clint 5353515f5b Merge pull request #12025 from hashicorp/f-fastly-optional-backend
provider/fastly: Make Backends optional if used in VCL
2017-02-17 10:23:29 -06:00
David Harris 2ab6fcc16b provider/aws: Elastic Beanstalk Application Version (#5770)
* Added new resource aws_elastic_beanstalk_application_version.

* Changing bucket and key to required.

* Update to use d.Id() directly in DescribeApplicationVersions.

* Checking err to make sure that the application version is successfully deleted.

* Update `version_label` to `Computed: true`.

* provider/aws: Updating to python solution stack

* provider/aws: Beanstalk App Version delete source

The Elastic Beanstalk API call to delete `application_version` resource
should not delete the s3 bundle, as this object is managed by another
Terraform resource

* provider/aws: Update application version docs

* Fix application version test

* Add `version_label` update test

Adds test that fails after rebasing branch onto v0.8.x. `version_label`
changes do not update the `aws_elastic_beanstalk_environment` resource.

* `version_label` changes to update environment

* Prevent unintended delete of `application_version`

Prevents an `application_version` used by multiple environments from
being deleted.

* Add `force_delete` attribute

* Update documentation
2017-02-17 17:54:07 +02:00
Jesse Szwedko 5b7e3701cb [datadog] add support for new host delay to the datadog_monitor resource (#11975)
* [datadog] Update go-datadog-api library

Involves one breaking API change. Also some `gofmt`ing.

* [datadog] Add support for new_host_delay to the datadog_monitor resource

New API parameter that Datadog added for monitors to ignore new hosts
for the specified time period in monitor evaluation.
2017-02-17 17:08:31 +02:00
Sebastien Badia e15f1628c2
doc: gcs - Update storage_class documentation and tests
`STANDARD` storage_class is now replaced by `MULTI_REGIONAL` depending
the bucket location. Same for `DURABLE_REDUCED_AVAILABILITY` replaced
by `REGIONAL`.

refs: https://cloud.google.com/storage/docs/storage-classes#standard
2017-02-17 15:59:25 +01:00
Yann DEGAT e3a6b00db0 provider/openstack: Adding Image Resource 2017-02-17 09:35:16 +01:00
Sean Chittenden 5f3b6ffdb2
Add `consul_agent_self` docs and synchronize a few missing attributes. 2017-02-16 15:10:50 -08:00
clint shryock 896d1d30fb provider/fastly: Make Fastly Service Backends optional
Backends must be defined in the config, but may optionally be declared
inside custom VCL. Here we mark Backends optional to enable that.
2017-02-16 16:22:41 -06:00
Sean Chittenden dfb86a8983
Fix a `go vet` issue re: missing arg to `fmt.Sprintf`. 2017-02-16 14:08:15 -08:00
Sean Chittenden 99d91d1f28
Chase the update to the out parameter: `s/services/service/g` 2017-02-16 13:58:08 -08:00
Sean Chittenden e7a8f25388
Push out the last of the docs and fixes for the `consul_catalog_nodes` data source. 2017-02-16 13:50:06 -08:00
Sean Chittenden 1c7a924258
Update and provide docs to the `consul_catalog_service` data source. 2017-02-16 13:50:06 -08:00
Sean Chittenden 9d06a47069
Add docs for the `consul_catalog_services` data source. 2017-02-16 13:50:06 -08:00
Sean Chittenden b7c9dedf4e
Add a `consul_catalog_services` resource that enumerates the list of services in a given Consul datacenter. 2017-02-16 13:50:06 -08:00
Sean Chittenden 4003c47c71
Remove some accidentally leaked `q.Q()` calls from earlier debugging.x 2017-02-16 13:50:06 -08:00
Sean Chittenden 59925478c3
Add a `consul_catalog_service` resource to obtain detailed information about a specific Consul service. 2017-02-16 13:50:06 -08:00
Sean Chittenden 41e4208777
Commit miss: `s/query_opts/query_options/` 2017-02-16 13:50:05 -08:00
Sean Chittenden 974415d5cf
Move the query options schema into its own set and nested collection of attributes.
This is being done in advance of supporting the services data source.
2017-02-16 13:50:05 -08:00
Sean Chittenden 0d049026be
Remove unused helper functions. 2017-02-16 13:50:05 -08:00
Sean Chittenden efb76b3374
Update the style of the `consul_catalog_nodes` data source. 2017-02-16 13:50:05 -08:00
Sean Chittenden 1476445593
Update `consul_catalog_nodes` to conform to normal resource guidelines. 2017-02-16 13:50:05 -08:00
Sean Chittenden 5567732814
Remove underscores from private identifiers that were not to be exported and strictly use lowercase letters instead. 2017-02-16 13:50:05 -08:00
Sean Chittenden 0d5ee1e953
Catch API drift with Consul. 2017-02-16 13:50:04 -08:00
Sean Chittenden ac1294633a
Add a datasource for catalog nodes. 2017-02-16 13:50:04 -08:00
Sean Chittenden db2f217f25
Change the signature of map writer to take a map that isn't a pointer. Force the use of `ToMap()` to retrieve the created `map[string]interface{}`. 2017-02-16 13:50:04 -08:00
Sean Chittenden 15fb969f3e
Add an attribute reader interface and a config reader implementation. 2017-02-16 13:50:04 -08:00
Sean Chittenden 77d7e25018
Remove stale code that would never be called at present. 2017-02-16 13:50:04 -08:00
Sean Chittenden 4b73ac7abe
Add the `circonus_agent_self` data source. 2017-02-16 13:50:04 -08:00
Erik Jansson 1f40e23c1c provider/aws: Use proper Set for source.Auth in resource_aws_codebuild_project (#11741)
* provider/aws: Use proper Set for Source.Auth

* Adding auth to source in test
2017-02-16 23:18:18 +02:00
Clint 469216982d Merge pull request #12023 from hashicorp/b-aws-test-fixes
provider/aws: Fix more lambda tests
2017-02-16 14:52:36 -06:00
clint shryock fc5b7b9619 don't send qualifier if it's empty 2017-02-16 14:20:34 -06:00
clint shryock da0d8d5817 random some lambda tests 2017-02-16 10:43:41 -06:00
Seth Vargo 5d79395354
Add a prefix option to random_id provider 2017-02-16 11:08:17 -05:00
Jake Champlin 555c8bb723 Merge pull request #12011 from hashicorp/f-fix-role-regexp
provider/aws: Fix matching regexp in invalid role config test
2017-02-16 10:32:00 -05:00
Jake Champlin 18bb3aade3 Merge pull request #11993 from hashicorp/b-fix-cloudflare-validator
provider/cloudflare: Fix record validation
2017-02-16 10:15:46 -05:00
Jake Champlin c85a874e16
provider/aws: Fix matching regexp in invalid role config test
```
$ make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSRole_badJSON'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/16 10:08:07 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSRole_badJSON -timeout 120m
=== RUN   TestAccAWSRole_badJSON
--- PASS: TestAccAWSRole_badJSON (0.00s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws    0.011s
```
2017-02-16 10:14:25 -05:00
Paul Stack 546b424d7d provider/aws: Allow aws_instances to be resized rather than forcing a (#11998)
new instance

Fixes: #9157

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSInstance_changeInstanceType'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/16 15:13:21 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSInstance_changeInstanceType -timeout 120m
=== RUN   TestAccAWSInstance_changeInstanceType
--- PASS: TestAccAWSInstance_changeInstanceType (303.85s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	303.876s
```
2017-02-16 16:43:09 +02:00
Paul Stack f81616d292 provider/statuscake: Fixing up the StatusCake acceptance tests (#12006)
```
% make testacc TEST=./builtin/providers/statuscake                                                      2 ↵ ✹
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/16 15:30:40 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/statuscake -v  -timeout 120m
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccStatusCake_basic
--- PASS: TestAccStatusCake_basic (2.14s)
=== RUN   TestAccStatusCake_tcp
--- PASS: TestAccStatusCake_tcp (1.66s)
=== RUN   TestAccStatusCake_withUpdate
--- PASS: TestAccStatusCake_withUpdate (3.62s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/statuscake	7.435s
```
2017-02-16 16:20:23 +02:00
Jake Champlin e052ded267
add missing return 2017-02-16 07:57:34 -05:00
lstolyarov 3f3884890a making the sql admin password sensitive (#12004) 2017-02-16 12:16:00 +00:00
Paddy 50ee426b72 Check for errors when deleting project metadata.
Our delete operation for google_compute_project_metadata didn't check an
error when making the call to delete metadata, which led to a panic in
our tests. This is also probably indicative of why our tests
failed/metadata got left dangling.
2017-02-16 02:36:03 -08:00
Jake Champlin 125641e2bd provider/aws: Fix asg lifecycle hook test (#11995)
Fixes the `TestAccAWSAutoscalingLifecycleHook_omitDefaultResult` acceptance test to run in parallel.

```
$ make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSAutoscalingLifecycleHook_omitDefaultResult'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/15 22:33:26 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSAutoscalingLifecycleHook_omitDefaultResult -timeout 120m
=== RUN   TestAccAWSAutoscalingLifecycleHook_omitDefaultResult
--- PASS: TestAccAWSAutoscalingLifecycleHook_omitDefaultResult (146.91s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws    146.917s
```
2017-02-16 05:22:12 +00:00
Jake Champlin 3219037359 provider/aws: Fix sg data source acctests (#11994)
Fixes the `data_source_aws_security_group` acceptance tests

```
$ make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccDataSourceAwsSecurityGroup'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/15 22:19:51 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccDataSourceAwsSecurityGroup -timeout 120m
=== RUN   TestAccDataSourceAwsSecurityGroup
--- PASS: TestAccDataSourceAwsSecurityGroup (45.67s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws    45.676s
```
2017-02-16 05:21:56 +00:00
Jake Champlin 179aa62ad4
provider/cloudflare: Fix record validation
Previously we only validated that the cloudflare record provided was a valid record type. However, a record can be of a valid type, and still not be proxied, making it an invalid record type.

The main downside to having to check for whether or not the record type is proxied or not during validation, is that it relies on having two schema keys populated. This means that we can only catch the improper record type during `apply` time, instead of `plan` time.

```
$ go test -v -run "TestValidateRecordType" ./builtin/providers/cloudflare
=== RUN   TestValidateRecordType
--- PASS: TestValidateRecordType (0.00s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/cloudflare     0.004s
```
2017-02-15 21:52:04 -05:00
Paul Stack e5f899d357 provider/statuscake: Add support for Port in statuscake_test (#11966)
Fixes: #11923

This required the upstream library to have a PR accepted
2017-02-15 23:29:05 +00:00
netjunki 508da1ec10 provider/aws: add bucket name to delete error notification (#11952)
* provider/aws: add bucket name to delete error notification

* cast Get; use %q instead of '%s'
2017-02-15 23:07:55 +00:00
Paul Stack 97cf8f6543 provider/azurerm: Mark the azurerm_scale_set machine password as (#11982)
sensitive

This was pointed out at the HUG in London tonight that we save the plain
text password in state

I don't think this will be ported back to 0-8-stable
2017-02-15 23:03:55 +00:00
Paul Stack 69f397d5c9 provider/aws: Add support for AWS EBS Elastic Volumes (#11981)
This allows for updates to size, type and iops

Fixes: #11931

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSEBSVolume_update'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/15 22:35:43 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSEBSVolume_update -timeout 120m
=== RUN   TestAccAWSEBSVolume_updateSize
--- PASS: TestAccAWSEBSVolume_updateSize (53.57s)
=== RUN   TestAccAWSEBSVolume_updateType
--- PASS: TestAccAWSEBSVolume_updateType (57.53s)
=== RUN   TestAccAWSEBSVolume_updateIops
--- PASS: TestAccAWSEBSVolume_updateIops (53.63s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	164.753s
```
2017-02-15 22:54:32 +00:00
James Bardin 7c83819e78 Merge pull request #11974 from hashicorp/jbardin/azurerm-vet
Fix copied schema.Set values
2017-02-15 16:41:28 -05:00
Dana Hoffman 917e00f2ae Merge pull request #11631 from drebes/lts_fix
provider/google: make local_traffic_selector computed now that we rea…
2017-02-15 12:57:25 -08:00
James Bardin cb2381b38c Fix copied schema.Set values
schema.Set contains a sync structure which can't be copied.
2017-02-15 15:03:40 -05:00
Roberto Jung Drebes 4b184853a1 provider/google: make local_traffic_selector computed now that we read it back from server 2017-02-15 19:48:44 +01:00
Paul Stack da2202277d provider/aws: Enable snapshotting by default on aws_redshift_cluster (#11695)
This extends the work in #11668 to enable final snapshots by default.
This time it's for redshift

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSRedshiftCluster_withFinalSnapshot'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/02/04 13:53:02 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSRedshiftCluster_withFinalSnapshot -timeout 120m
=== RUN   TestAccAWSRedshiftCluster_withFinalSnapshot
--- PASS: TestAccAWSRedshiftCluster_withFinalSnapshot (859.96s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	859.986s
```
2017-02-15 16:37:06 +00:00
Matt Dainty de2542ef6b
Add acceptance tests
Refactor the `DescribeDestinations` call so it can be used by the tests as
well as the normal code.
2017-02-15 14:59:28 +00:00
Matt Dainty 93b2ac36dc
Handle specific exceptions at creation
If we get `InvalidParameterException` with the message "Could not deliver test
message to specified" then retry as this is often down to some sort of internal
delay in Amazons API. Also increase the timeout from 30 seconds to 3 minutes as
it has been observed to take that long sometimes for the creation to succeed.

This applies to both log destinations and subscription filters.
2017-02-15 11:35:39 +00:00
James Nugent c455cccb68 Merge pull request #11958 from hashicorp/b-datadog-spelling-mistake
provider/datadog: Fix spelling mistake of monitor in datadog_monitor error message
2017-02-15 04:48:44 -06:00
stack72 b6f67b2374
provider/datadog: Fix spelling mistake of monitor in datadog_monitor
error message

Fixes: #11951
2017-02-15 10:41:37 +00:00
Radek Simko 0e8997f369 Merge pull request #11954 from hashicorp/f-google-compute-zones
provider/google: Add google_compute_zones data source
2017-02-15 10:00:39 +00:00
Traver Tischio e0aae4392b provider/fastly Allows for conditional settings across fastly (#11843)
* Adds response conditions for papertrail in fastly

* Adds cache conditional for gzip in fastly

* Opens up conitionals under fastly headers

* Adds request conditions to s3 logging for fastly

* Creates conditionals properly for testing

* Clarifies conditionals documentation for the website

* Clarifies resource descriptions for conditionals

* Formats papertrail testing properly

* Fizes syntax issues in gzip and s3 fastly testing

* Tests full schemas for gzip basic testing

* Updates header testing to check full schema

* Fixes gzip and headers testing

* Fixes s3 conditional testing
2017-02-15 09:53:59 +00:00
Raphaël Pinson c3042765a0 rancher: parse Rancher client cli.json config file (#11658)
* rancher: parse Rancher client cli.json config file

* Make it work
2017-02-15 09:51:56 +00:00
Radek Simko 76c40ac451
provider/google: Add google_compute_zones data source 2017-02-15 09:50:25 +00:00
Matt Dainty e4b4d2b563
Improve error reporting at creation
Code borrowed from nearby subscription filter resource.
2017-02-15 09:39:37 +00:00
Joe Topjian 47bf2eff09 provider/openstack BlockStorage v1 availability_zone Fix (#11949)
* vendor: Updating Gophercloud

* provider/openstack: Fix upstream AvailabilityZone field

This commit complements an upstream fix where "availability" was being sent instead of
"availability_zone".
2017-02-15 09:37:05 +00:00
Matt Dainty 3939a7220d
Add import functionality 2017-02-14 18:09:48 +00:00