Commit Graph

7170 Commits

Author SHA1 Message Date
Martin Atkins eaac9fbca3 provider/template: template_dir explicitly create dest dir
Previously we were letting it get implicitly created as part of making
the structure for copying in each file, but that isn't sufficient if the
source directory is empty.

By explicitly creating the directory first we ensure that it will complete
successfully even in the case of an empty directory.
2017-04-25 10:48:26 -07:00
Martin Atkins eda2550074 provider/template: template_dir: don't crash if source dir nonexistent
When an error is passed, the FileInfo can be nil, which was previously
causing a crash on trying to evaluate f.IsDir(). By checking for an error
first we avoid this crash.
2017-04-25 10:48:26 -07:00
Quentin Machu f721608e4e provider/template: Add a 'dir' resource to template entire directories
When TerraForm is used to configure and deploy infrastructure
applications that require dozens templated files, such as Kubernetes, it
becomes extremely burdensome to template them individually: each of them
requires a data source block as well as an upload/export (file
provisioner, AWS S3, ...).

Instead, this commit introduces a mean to template an entire folder of
files (recursively), that can then be treated as a whole by any provider
or provisioner that support directory inputs (such as the
file provisioner, the archive provider, ...).

This does not intend to make TerraForm a full-fledged templating system
as the templating grammar and capabilities are left unchanged. This only
aims at improving the user-experience of the existing templating
provider by significantly reducing the overhead when several files are
to be generated - without forcing the users to rely on external tools
when these templates stay simple and that their generation in TerraForm
is justified.
2017-04-25 10:48:26 -07:00
Matthew Frahry f0272f5b14 Merge pull request #13918 from hashicorp/p-aws-ecs-service-test
Randomize mongodb names
2017-04-25 08:40:48 -06:00
Jake Champlin c839a7b2ff Merge pull request #13910 from bernerdschaefer/bs-heroku-buildpacks
provider/heroku: set app buildpacks from config
2017-04-25 10:40:19 -04:00
tombuildsstuff 5121995100 Ignoring the case of the create_option field. Fixes #13927. 2017-04-25 10:45:46 +01:00
evalphobia 4622960835 Fix import path on provider-localfile 2017-04-24 21:51:35 -07:00
= 15aabe93c3 Randomize mongodb names 2017-04-24 15:23:52 -06:00
Paul Stack 1eeb3c41e3 provider/aws: Allow AWS Subnet to change IPv6 CIDR Block without ForceNew (#13909)
Fixes: #13588

It was pointed out in #13588 that we don't need to ForceNew on a change
of IPv6 CIDR block. The logic I decided to implement here was to
disassociate then associate. We should only be able to be associated to
1 IPv6 CIDR block at once. This feels like a risky move. We can
disassociate and then error on the associate. This would leave us in a
situation where we have no IPv6 CIDR block associated

The alternative here would be that the failure of association, triggers
a reassociation with the old IPv6 CIDR block

I added a test to make sure that the subnet Ids don't change as the ipv6
block changes. Before removing the ForceNew from the ipv6_cidr_block,
the test results in the following:

```
=== RUN   TestAccAWSSubnet_ipv6
--- FAIL: TestAccAWSSubnet_ipv6 (92.09s)
	resource_aws_subnet_test.go:105: Expected SubnetIDs not to change, but both got before: subnet-0d2b6a6a and after: subnet-742c6d13
```

After the removal of ForceNew, the test result looks as follows:

```
=== RUN   TestAccAWSSubnet_ipv6
--- PASS: TestAccAWSSubnet_ipv6 (188.34s)
```

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSSubnet_'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/04/24 21:26:36 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 (85.63s)
=== RUN   TestAccAWSSubnet_basic
--- PASS: TestAccAWSSubnet_basic (80.28s)
=== RUN   TestAccAWSSubnet_ipv6
--- PASS: TestAccAWSSubnet_ipv6 (188.34s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	354.283s
```
2017-04-24 23:39:28 +03:00
Radek Simko f33afb7e4e
provider/aws: Support IPSets with 0 descriptors 2017-04-24 21:53:25 +02:00
Radek Simko 01aa3fd76a
provider/aws: Fix WAF IPSet descriptors removal on update 2017-04-24 21:53:25 +02:00
Radek Simko cda84b1674 provider/aws: Expose invoke ARN from Lambda function (for APIG) (#13890) 2017-04-24 20:47:11 +02:00
Radek Simko 3c2a40a192 provider/aws: Expose execution ARN + invoke URL for APIG deployment (#13889) 2017-04-24 20:43:56 +02:00
Julien Pivotto 61d183eded provider/digitaocean: Test that droplets are indempotent (#13883)
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2017-04-24 21:43:27 +03:00
Bernerd Schaefer acdb5c659a provider/heroku: set app buildpacks from config
Many apps deployed to Heroku require that multiple buildpacks be
configured in a particular order to operate correctly.

This updates the builtin Heroku provider's app resource to support
configuring buildpacks and the related documentation in the website.

Similar to config vars, externally set buildpacks will not be altered if
the config is not set.
2017-04-24 11:40:29 -07:00
Radek Simko 5681a47260 Merge pull request #13878 from hashicorp/f-core-computed-fields-validation
helper/schema: Disallow validation+diff suppression on computed fields
2017-04-24 20:04:28 +02:00
Paul Stack 1d350ed5ef provider/aws: Adding support for ipv6 to aws_subnets needs migration (#13876)
Fixes: #13829

When IPv6 support was added to subnets, we added a new parameter that
had a default value. This means that users are experiencing unexpected
changes in their configuration

We need a schema migration in place to make sure this isn't the case for
the users who have not upgraded yet

```
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/04/23 10:36:43 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAWSSubnetMigrateState -timeout 120m
=== RUN   TestAWSSubnetMigrateState
2017/04/23 10:37:27 [INFO] Found AWS Subnet State v0; migrating to v1
2017/04/23 10:37:27 [DEBUG] Attributes before migration: map[string]string{}
2017/04/23 10:37:27 [DEBUG] Attributes after migration: map[string]string{"assign_ipv6_address_on_creation":"false"}
--- PASS: TestAWSSubnetMigrateState (0.00s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	0.021s
```
2017-04-24 18:20:32 +01:00
Andy Lindeman 46fd77bbed Clears branch protection from state only if error is an HTTP 404 (#13887) 2017-04-24 18:19:27 +01:00
clint shryock fe15c68aa9 provider/aws: Fix-up TestAccAWSIAMInstanceProfile_missingRoleThrowsError
A change in the error produced by the resource was causing the regex to
fail
2017-04-24 10:24:34 -05:00
Tom Harvey a7401ad354 Merge pull request #13899 from hashicorp/azurerm-redis-bug
provider/azurerm: fixing a bug refreshing the `azurerm_redis_cache`
2017-04-24 16:17:00 +01:00
tombuildsstuff 04bf00f0c6 Comment explaning why we can have deleted resources in the state 2017-04-24 15:35:59 +01:00
Jake Champlin 78bc9ed09d Merge pull request #13861 from hashicorp/pr-10594
provider/aws: Adds aws_network_interface_attachment resource
2017-04-24 09:12:38 -04:00
tombuildsstuff 8e58be37c7 Ensuring the Redis instance exists. Fixes #13896 2017-04-24 11:38:47 +01:00
Tom Elliff 18c6c3b47b Validate WAF metric names
WAF metric names must be alphanumeric only.
See http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-rules.html#web-acl-rules-creating and
http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-working-with.html#web-acl-creating
2017-04-23 21:46:39 +01:00
Radek Simko cb2f224180
provider/rancher: Remove DiffSuppressFunc from Computed-only fields 2017-04-23 12:41:18 +02:00
Radek Simko 3954276490
provider/consul: Remove ValidateFunc from Computed-only fields 2017-04-23 12:40:58 +02:00
Radek Simko f95b37638d
provider/circonus: Remove ValidateFunc from Computed-only field 2017-04-23 12:40:17 +02:00
Brandon Clodius 399cf72414 Fixes issue for cross account iam role with aws_lambda_permission (#13865) 2017-04-23 11:44:07 +02:00
Radek Simko 00c6958704
aws: Separate acc test for R53 zone w/ trailing dot 2017-04-23 11:25:52 +02:00
Ryan Eschinger e2ee211b7b provider/aws: fix aws_route53_zone force_destroy behavior (#12421)
The conditional to ignore the deletion of NS and SOA records can fail to
match if the hostedZoneName already ends with a ".". When that happens,
terraform tries to delete those records which is not supported by AWS
and results in a 400 bad request. This fixes the conditional so that it
will work whether or not hostedZoneName ends with a ".".

fixes #12407
2017-04-23 11:24:37 +02:00
Julien Pivotto 8343d5908f provider/digitalocean: Improve test coverage for droplet pricing (#13868)
Implement much better testing for GH-13720.

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2017-04-23 04:55:08 +03:00
Kit Ewbank ff9af4c90b Add tagging support to the 'aws_lambda_function' resource. (#13873) 2017-04-23 04:51:20 +03:00
Jake Champlin 5f8b6091de
provider/aws: Adds aws_network_interface_attachment resource
```
$ make testacc TEST=./builtin/providers/aws TESTARGS="-run=TestAccAWSNetworkInterfaceAttachment_basic"
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/04/21 15:24:58 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSNetworkInterfaceAttachment_basic -timeout 120m
=== RUN   TestAccAWSNetworkInterfaceAttachment_basic
--- PASS: TestAccAWSNetworkInterfaceAttachment_basic (273.14s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws    273.145s
```
2017-04-21 15:42:18 -04:00
Jake Champlin 9ef947b0c3
Merge remote-tracking branch 'origin' into pr-10594 2017-04-21 15:37:39 -04:00
Dana Hoffman 4f00fa6474 provider/google: Make ports in resource_compute_forwarding_rule ForceNew (#13833) 2017-04-21 20:47:02 +03:00
Joe Topjian 7ff92746a2 provider/rabbitmq: Add test for binding properties_key (#13797) 2017-04-21 20:01:46 +03:00
Michael Dunton 8995f1afdb provider/fastly: GCS (#13553)
*  PAAS-5611 Adding docs

* PAAS-5611 adding gcs logging resource

* PAAS-5611 adding gcs testing

* Adding testing file

* Cleaning up type and making flatten array clearer

* Fixing issue with tests
2017-04-21 19:44:25 +03:00
Alex Meng 7cc4018577 provider/aws: Fix security group rule import (#13630) 2017-04-21 11:38:41 -05:00
Jake Champlin 022d0cd14f Merge pull request #10590 from pielu/aws/feature/r-net-iface-ips-count
provider/aws: Exercise SecondaryPrivateIpAddressCount for network interface
2017-04-21 10:25:44 -04:00
Jake Champlin a7ccf1c76b Merge pull request #13846 from hashicorp/b-update-opc-instance-docs
provider/opc: Fix Instance Label / Update Docs
2017-04-21 10:20:09 -04:00
Jasmin Gacic 61499cfcf0 Provider Oneandone (#13633)
* Terraform Provider 1&1

* Addressing pull request remarks

* Fixed imports

* Fixing remarks

* Test optimiziation
2017-04-21 17:19:10 +03:00
Jake Champlin 2eaf6beff0
provider/opc: Fix Instance Label / Update Docs
Fix issue with an instances label causing a ForceNew if omitted.

Also updates mistyped docs for the `opc_compute_security_list` resource.

```
$ make testacc TEST=./builtin/providers/opc TESTARGS="-run=TestAccOPCInstance_emptyLabel"
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/04/21 09:57:48 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/opc -v -run=TestAccOPCInstance_emptyLabel -timeout 120m
=== RUN   TestAccOPCInstance_emptyLabel
--- PASS: TestAccOPCInstance_emptyLabel (574.79s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/opc    574.835s
```
2017-04-21 10:09:26 -04:00
Paul Stack 72a14ef2bb provider/aws: Add IPv6 outputs to aws_subnet datasource (#13841)
Fixes: #13595

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccDataSourceAwsSubnet'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/04/21 13:52:43 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccDataSourceAwsSubnet -timeout 120m
=== RUN   TestAccDataSourceAwsSubnetIDs
--- PASS: TestAccDataSourceAwsSubnetIDs (81.05s)
=== RUN   TestAccDataSourceAwsSubnet
--- PASS: TestAccDataSourceAwsSubnet (57.48s)
=== RUN   TestAccDataSourceAwsSubnetIpv6ByIpv6Filter
--- PASS: TestAccDataSourceAwsSubnetIpv6ByIpv6Filter (82.63s)
=== RUN   TestAccDataSourceAwsSubnetIpv6ByIpv6CidrBlock
--- PASS: TestAccDataSourceAwsSubnetIpv6ByIpv6CidrBlock (82.43s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	303.625s
```
2017-04-21 16:54:55 +03:00
Joshua Spence 2aac8fb8fc Add `aws_ami_ids` and `aws_ebs_snapshot_ids` resources (#13844)
Fixes #12081. Adds new `aws_ami_ids` and `aws_ebs_snapshot_ids` resources.
2017-04-21 16:37:26 +03:00
Julien Pivotto c2a1e688cb Add DigitalOcean datasource digitalocean_image (#13787)
Add a new data source for Digital Ocean that finds snapshots by name.

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2017-04-21 16:25:34 +03:00
Paul Stack 0aad5f2c43 provider/aws: Add replica_source_db to the aws_db_instance datasource (#13842)
Fixes: #13471
2017-04-21 14:23:48 +03:00
terraformbot 352a5c753f provider/aws: Changing aws_opsworks_instance should ForceNew (#13839)
Fixes: #13838

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSOpsworksInstance_UpdateHostNameForceNew'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/04/21 13:11:08 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSOpsworksInstance_UpdateHostNameForceNew -timeout 120m
=== RUN   TestAccAWSOpsworksInstance_UpdateHostNameForceNew
--- PASS: TestAccAWSOpsworksInstance_UpdateHostNameForceNew (114.27s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	114.294s
```
2017-04-21 13:21:09 +03:00
Gauthier Wallet 80d940d154 provider/aws: Added Cognito Identity Pool (#13783) 2017-04-21 12:53:48 +03:00
stack72 82293bf59e
Merge branch 'master' of github.com:hashicorp/terraform 2017-04-21 12:52:22 +03:00
stack72 1913d72212
Merge branch 'olakar_g-network-import' of https://github.com/skalle/terraform into skalle-olakar_g-network-import 2017-04-21 12:41:09 +03:00