Commit Graph

3222 Commits

Author SHA1 Message Date
Paul Hinze 069425a700 consul: Fix several problems w/ consul_keys update
Implementation notes:

 * The hash implementation was not considering key value, causing "diffs
   did not match" errors when a value was updated. Switching to default
   HashResource implementation fixes this
 * Using HashResource as a default exposed a bug in helper/schema that
   needed to be fixed so the Set function is picked up properly during
   Read
 * Stop writing back values into the `key` attribute; it triggers extra
   diffs when `default` is used. Computed values all just go into `var`.
 * Includes a state migration to prevent unnecessary diffs based on
   "key" attribute hashcodes changing.

In the tests:

 * Switch from leaning on the public demo Consul instance to requiring a
   CONSUL_HTTP_ADDR variable be set pointing to a `consul agent -dev`
   instance to be used only for testing.
 * Add a test that exposes the updating issues and covers the fixes

Fixes #774
Fixes #1866
Fixes #3023
2016-01-26 14:46:26 -06:00
James Nugent 4a57ab4022 provider/azurerm: Add storage container and blob
These resources use ARM to get keys for the storage API, but then use
the storage REST API as per the ASM provider. The code is significantly
reworked with better logging and error handling. The key functions can
be reused for queues and file storage resources when they get added.
2016-01-26 15:45:18 -05:00
Clint 24f10b024f Merge pull request #4838 from hashicorp/b-aws-rds-db-name-fix
provider/aws: Workaround API issue with RDS Cluster DatabaseName
2016-01-26 14:08:42 -06:00
clint shryock d78e897b46 provider/aws: Fix SG leak in opsworks custom layer test 2016-01-26 11:43:35 -06:00
clint shryock 8d3f309f62 provider/aws: Workaround API issue with RDS Cluster DatabaseName 2016-01-26 10:35:21 -06:00
Clint 0f2f9da2fd Merge pull request #4779 from hashicorp/aws-sg-drift-fix
provider/aws: Fix issue with detecting drift in AWS Security Groups rules
2016-01-25 16:35:43 -06:00
Clint 2faf1c1422 Merge pull request #4829 from hashicorp/b-aws-efs-test-updates
provider/aws: Update EFS test destroy methods
2016-01-25 16:34:59 -06:00
Clint 577618b368 Merge pull request #4825 from hashicorp/b-aws-elb-listener-retry
provider/aws: Retry Listener Creation for ELBs
2016-01-25 16:32:40 -06:00
Clint 6ce5ade259 Merge pull request #4828 from hashicorp/b-aws-state-funcs
provider/aws: Update refresh state func target for DHCP options
2016-01-25 16:30:55 -06:00
clint shryock a3bfec2684 provider/aws: Update EFS test destroy methods 2016-01-25 16:27:58 -06:00
Paul Hinze da4e7753e7 provider/azure: fix build after upstream breaking change
This adds the empty argument necessary for PutPageBlob to compile.

https://github.com/Azure/azure-sdk-for-go/pull/257
2016-01-25 16:20:26 -06:00
clint shryock 1e03c90238 provider/aws: use a known good ami for spot instance test 2016-01-25 16:16:55 -06:00
clint shryock 48ecc9b3a0 provider/aws: Update refresh state func target for DHCP options 2016-01-25 14:47:25 -06:00
clint shryock 86ad4c4340 provider/aws: Retry Listener Creation for ELBs 2016-01-25 11:38:04 -06:00
Sebastiaan van Steenis 6fe6ff4e7a Add flags for unverified SSL/TLS 2016-01-25 18:07:51 +01:00
clint shryock e865c342cc provider/aws: fix ELB SG test 2016-01-25 11:05:22 -06:00
Paul Hinze b537e5e966 provider/heroku: retry drain create until log channel is assigned
Should fix the build error encountered here:

https://travis-ci.org/hashicorp/terraform/builds/104548513
2016-01-25 09:59:41 -06:00
Clint 4708e66328 Merge pull request #4098 from csabapalfi/f-aws-s3-redirect-protocol
Enable specifying aws s3 redirect protocol
2016-01-22 15:51:40 -06:00
Clint 6befb714cc Merge pull request #4734 from hashicorp/b-network-acl-visibility
provider/aws: Wait for NACL rule to be visible
2016-01-22 14:26:21 -06:00
Sander van Harmelen 81df46a339 Merge pull request #4796 from svanharmelen/f-tweak-tags
provider/cloudstack: policing up the new `tags` code from @Carles-Figuerola
2016-01-22 17:20:31 +01:00
Paul Hinze 19d90ae00f heroku: randomize the remaining appnames in tests
Should take care of the remaining flapping acceptance test failures like
this:

https://travis-ci.org/hashicorp/terraform/builds/104012729
2016-01-22 09:26:34 -06:00
Sander van Harmelen c0f1962f51 Policing up the new `tags` code from @Carles-Figuerola
Just some cosmetics and some cleaning up to make the code fit in a
little better with the existing code. Functionally no changes are made
and the existing tests still pass.
2016-01-22 12:13:26 +01:00
Carles Figuerola 755917db07 Add tests for Network Tags for provider/cloudstack and applied tips from PR#4742 2016-01-21 22:45:51 -06:00
Carles Figuerola 0983ca4c2a Merge remote-tracking branch 'upstream/master' into add-tags-plus-networktags 2016-01-21 22:37:23 -06:00
Martin Atkins 7450abe408 Merge pull request #4606 from hashicorp/tls-public-key
Export public keys from tls_private_key
2016-01-21 17:01:18 -08:00
Csaba Palfi 8f6404a0e1 provider/aws enable specifying aws s3 redirect protocol
Signed-off-by: Csaba Palfi <csaba@palfi.me>
2016-01-21 23:26:13 +00:00
James Nugent 1b3908633c Merge pull request #4767 from monkeylittleinc/v0.6.9-branch
Add support for multiple final states on the WaitForState resource
2016-01-21 18:19:52 -05:00
clint shryock 9ee6f822f6 provider/aws: Default Autoscaling Schedule min/max/desired to zero 2016-01-21 16:02:46 -06:00
Paul Hinze 0f3b977c10 Merge pull request #4785 from stack72/f-azurerm-public-ip-test
provider/azurerm: Fixing a flapping AzureRM PublicIP validation test
2016-01-21 15:10:00 -06:00
stack72 eb6fd87a42 Fixing a flapping AzureRM PublicIP validation test 2016-01-21 20:59:30 +00:00
Sander van Harmelen 3385100f56 Make the concurrence for applying rules configurable 2016-01-21 21:30:54 +01:00
Paul Hinze a83d1bab23 mailgun: fixup go vet problem in test 2016-01-21 13:02:26 -06:00
Paul Hinze 3380f5bf7c Merge pull request #4776 from hashicorp/phinze/heroku-tests-randnames
heroku: randomize names in acctests
2016-01-21 11:57:27 -06:00
Paul Hinze 8d2e18234e Merge pull request #4777 from hashicorp/phinze/mailgun-domain-destroy-takes-a-sec
mailgun: poll until domain destroy takes effect
2016-01-21 11:56:37 -06:00
clint shryock 7462eb1742 provider/aws: Fix issue with detecting drift in AWS Security Groups in-line rules 2016-01-21 11:21:25 -06:00
Sander van Harmelen e3d530aaa2 Merge pull request #4772 from svanharmelen/b-fix-panic
provider/cloudstack: add a check to see if the port value is valid
2016-01-21 17:05:03 +01:00
Sander van Harmelen cfa9661ffa Merge pull request #4687 from Carles-Figuerola/master
Add vlan, startip, endip and gateway for network creation
2016-01-21 17:02:56 +01:00
Carles Figuerola e2d6f7c5e9 Specify that the vlan attribute in cloudstack is only usable for ROOT admins and stop reading it back 2016-01-21 09:52:27 -06:00
Paul Hinze be59831847 mailgun: poll until domain destroy takes effect
Test failures indicate that this operation doesn't always take effect
immediately:

https://travis-ci.org/hashicorp/terraform/builds/103764466

Add a simple poll to retry a few times until it does.

```
--- PASS: TestAccMailgunDomain_Basic (1.51s)
```

Verified that this does the trick by looping the test and watching the
logs for the retry behavior to kick in.
2016-01-21 09:51:08 -06:00
Paul Hinze d1010f40c5 heroku: randomize names in acctests
Should fix build failures seen here:

https://travis-ci.org/hashicorp/terraform/builds/103764448
2016-01-21 09:31:48 -06:00
James Nugent c8461eae32 Merge pull request #4698 from hashicorp/f-azurerm-storage-account
provider/azurerm: Add `azurerm_storage_account`
2016-01-21 07:25:04 -05:00
Colin Hebert f6d80f2215 provider/digitalocean: allow reassignment of floating IPs
Do not force the creation of a new IP when the droplet_id changes, and
unassignment of the the floating IP without destroying it.
2016-01-21 07:16:59 -05:00
Sander van Harmelen 20901a6478 Add a check to see if the port value is valid
Without this additional check it could happen that one of the firewall
resources would panic is given an unexpected port value.
2016-01-21 09:38:14 +01:00
Mat Davies 45b3b9d181 provider/dme: Add support for `gtdLocation`
Add support for GTD (Global Traffic Director) enabled domains to the DME
provider. Specifically add `gtdLocation` to the `dme_record` resource.
2016-01-20 20:23:29 -05:00
Ian Duffy 47ac10d66b Change resource.StateChangeConf to use an array for target states
Signed-off-by: Ian Duffy <ian@ianduffy.ie>
2016-01-21 01:20:41 +00:00
James Nugent 53c23511ef provider/azurerm: Add `azurerm_storage_account`
This is an unusual resource (so far) in that it cannot be created in one
call, and instead must be created and the modified to set some of the
parameters.

We use the pollIndefinitelyWhileNeeded function which will continue to
poll Azure RM operation monitoring endpoints until an error is reported
or the operation meets one of the given status codes. The function was
originally part of this feature but was separated out in order to
unblock other work.

Currently there is no support for the "custom_domain" section of the
storage account API. This was originally present and was later taken out
of the scope of the storage account resource in order that the following
workflow can be used:

1. Create storage account
2. Create DNS CNAME entry once the account name is known
3. Create custom domain mapping
2016-01-20 19:47:23 -05:00
James Nugent fda9b0f1ed Merge pull request #4759 from stack72/azurerm-cdn-endpoint
provider/azurerm: add CDN Endpoint resource
2016-01-20 14:05:22 -05:00
stack72 d91c7080e0 Scaffold the AzureRM CDN Endpoint resource 2016-01-20 16:47:41 +00:00
James Nugent 644a52c473 Merge pull request #4757 from hashicorp/f-cloudinitconfig-update
provider/template: Allow update in `template_cloudinit_config`
2016-01-20 11:22:57 -05:00
James Nugent 734d5698d7 provider/azurerm: Poll indefinitely if no error
This adds a pollIndefinitelyWhileNeeded function which will continue to
poll Azure RM operation monitoring endpoints until an error is reported
or the operation meets one of the given status codes. This may need
revisiting at some point in the future.
2016-01-20 10:25:26 -05:00
James Nugent b0f9eb5c13 provider/template: Allow update in `template_cloudinit_config` 2016-01-20 09:58:20 -05:00
chris 9aa8bbda93 provider/google: Support named_port on instance_group_manager
This allows HTTP and HTTPs load-balancers to direct traffic to ports other than tcp/80 and tcp/443.
2016-01-20 09:15:30 -05:00
Paul Hinze 7d10d454e2 Merge pull request #4749 from hashicorp/b-1752
core: fix diff mismatch when RequiresNew field and list both change
2016-01-19 18:29:10 -06:00
Paul Hinze 4af2c5f5dd core: fix diff mismatch when RequiresNew field and list both change
fixes #1752

Includes AccTest reproducing example from the issue as well as a bunch
of explanatory comments in the tests and impls.
2016-01-19 15:38:04 -06:00
Carles Figuerola b18afaa5db Add taging shared module for cloudstack and implement it in resource_network 2016-01-19 11:41:18 -06:00
stack72 183eb248df Scaffold the Azure RM CDN Profile 2016-01-19 17:37:28 +00:00
James Nugent a4abb0e66c Merge pull request #4739 from hashicorp/b-azurerm-resource-id-parsing
provider/azurerm: Parse "resourcegroups" in IDs
2016-01-19 11:42:45 -05:00
James Nugent c3ce8b81ef provider/azurerm: Parse "resourcegroups" in IDs
When parsing resource IDs (probably incorrectly since they are URIs and
should therefore be opaque), we need to look for "resourcegroups" in
addition to "resourceGroups" because the Azure CDN resources return that
in their URIs.

Unfortunately the casing semantics of the rest of the string are not
clear, so downcasing the entire URI is probably best avoided. This is a
fix for a single case.
2016-01-19 11:32:16 -05:00
Clint 569e74c2e7 Merge pull request #4481 from ElliotG/feature/encryptedBlockDevice
provider/aws: Added support for the encryption flag on ebs_block_devices in launch configurations
2016-01-19 10:26:11 -06:00
James Nugent 7620381a4f provider/aws: Wait for NACL rule to be visible
Fixes #4721. It seems there may be some eventual consistency in the API
for network ACLs. This fix doesn't use resource.WaitForState() as there
the NACL is not something that can be looked up by ID and has a
property which determines if it is present.

Instead we reuse the findNetworkAclRule function which the Read function
exhibiting the problem uses, and retry over a 3 minute period, returning
an error message informing the user that running `terraform apply` again
will likely allow them to continue.
2016-01-19 08:12:20 -05:00
stack72 a9afb489f6 Adds the ability to tag more of the Azure RM Network resources 2016-01-18 20:55:28 +00:00
stack72 2ebe2c01f1 Add acceptance tests and docs update to allow the tagging of AzureRM resource & 2016-01-18 18:35:41 +00:00
James Nugent 2ff0c65c3c provider/azurerm: Support tagging `azurerm_resource_group` 2016-01-18 13:13:28 -05:00
James Nugent d5e3db9deb provider/azurerm: Add tags to `azurerm_virtual_network` 2016-01-18 13:13:28 -05:00
stack72 d7a7eb4644 Adds an acceptance test to the ARM Availability Set to show that tagging
and updating of tags work as expected

Also updated the documentation for azure rm availability set to
demonstrate this
2016-01-18 17:47:37 +00:00
James Nugent a640ef9f16 provider/azurerm: Add tests for tag scaffolding 2016-01-18 12:28:04 -05:00
James Nugent f374ca77e7 provider/azurerm: Add scaffolding to tags 2016-01-18 11:48:01 -05:00
Martin Atkins 25bd43d6f4 Export public keys from tls_private_key
In most cases private keys are used to produce certs and cert requests,
but there are some less-common cases where the PEM-formatted keypair is
used alone. The public_key_pem attribute supports such cases.

This also includes a public_key_openssh attribute, which allows this
resource to be used to generate temporary OpenSSH credentials, so that
e.g. a Terraform configuration could generate its own keypair to use
with the aws_key_pair resource. This has the same caveats as all cases
where we generate private keys in Terraform, but could be useful for
temporary/throwaway environments where the state either doesn't live for
long or is stored securely.

This builds on work started by Simarpreet Singh in #4441 .
2016-01-16 17:30:48 -08:00
Paul Hinze 475c0c8549 Merge pull request #4694 from hashicorp/phinze/template-func-race
provider/template: fix race causing panic in template_file
2016-01-16 12:43:57 -05:00
stack72 acabd4d407 Change ASG Lifecycle Default Result to be computed and added a test to record what the default value is 2016-01-15 22:34:16 +00:00
James Nugent 4b7a98584a provider/docker: Mount named volumes in containers
This adds support for specifying named volumes for mounting in a
`docker_container` resource.
2016-01-15 21:59:33 +00:00
Paul Hinze 0739cf2348 provider/template: fix race causing panic in template_file
The render code path in `template_file` was doing unsynchronized access
to a shared mapping of functions in `config.Func`.

This caused a race condition that was most often triggered when a
`template_file` had a `count` of more than one, and expressed itself as
a panic in the plugin followed by a cascade of "unexpected EOF" errors
through the plugin system.

Here, we simply turn the FuncMap from shared state into a generated
value, which avoids the race. We do more re-initialization of the data
structure, but the performance implications are minimal, and we can
always revisit with a perf pass later now that the race is fixed.
2016-01-15 16:34:46 -05:00
Carles Figuerola fab9b16de5 Move tests to ParseCIDR in resource_cloudstack_network and add items in read section 2016-01-15 14:24:18 -06:00
stack72 318db85623 Added a test to prove that 0 values cannot be specified for the Autoscale Group Schedule resource 2016-01-15 17:45:09 +00:00
Colin Hebert e887ac2523 provider/docker: Add `docker_volume` resource 2016-01-15 17:34:53 +00:00
Carles Figuerola c80ddccc12 Add vlan, startip, endip and gateway for network creation 2016-01-14 22:59:04 -06:00
James Nugent 5834e65db9 Merge branch 'paulbellamy-docker-extra-hosts' 2016-01-15 03:05:25 +00:00
James Nugent 3380f08e5a provider/docker: Tweak and test `host_entry`
This adds acceptance tests for specifying extra hosts on Docker
containers. It also renames the repeating block from `hosts` to `host`,
which reads more naturally in the schema when multiple instances of the
block are declared.
2016-01-15 03:02:20 +00:00
Clint 79c32ddbe9 Merge pull request #4627 from ColinHebert/patch-1
provider/aws: EBS optimised to force new resource
2016-01-14 14:57:13 -06:00
Clint 8e6fba43ef Merge pull request #4564 from hashicorp/pr-3741
provider/aws: Supporting New AWS Route53 HealthCheck additions (supersedes #3741)
2016-01-14 14:41:19 -06:00
James Nugent 6acc7a14e4 Merge pull request #4632 from hashicorp/f-aws-profile
provider/aws: Add profile to provider config
2016-01-14 17:08:04 +00:00
Andrew Hodges a1935a135d Handle external state changes for Packet resources gracefully.
When a Packet provision exceeds our time limit, we move the device to an
internal project for Packet staff to investigate. When this happens, the
original user no longer has access to the device, and they get a 403.

These changes make that and other external state changes more pleasant for
users of Terraform.
2016-01-14 10:50:15 -05:00
James Nugent 35c21cb808 Merge branch 'docker-extra-hosts' of https://github.com/paulbellamy/terraform into paulbellamy-docker-extra-hosts 2016-01-14 15:48:51 +00:00
James Nugent ace215481a provider/aws: Add profile to provider config
This allows specification of the profile for the shared credentials
provider for AWS to be specified in Terraform configuration. This is
useful if defining providers with aliases, or if you don't want to set
environment variables. Example:

$ aws configure --profile this_is_dog
... enter keys

$ cat main.tf
provider "aws" {
    profile = "this_is_dog"

    # Optionally also specify the path to the credentials file
    shared_credentials_file = "/tmp/credentials"
}

This is equivalent to specifying AWS_PROFILE or
AWS_SHARED_CREDENTIALS_FILE in the environment.
2016-01-14 15:39:35 +00:00
James Nugent ea4595840c Merge pull request #4674 from stack72/carl-youngblood/master
Fix recurrence on `aws_autoscaling_schedule` resource
2016-01-14 12:22:43 +00:00
Carl Youngblood 5c68858c5b Bug fixes for aws_autoscaling_schedule resource
- Fix typo s/recurrance/recurrence
- Fix missing nil check on EndTime that was crashing
2016-01-14 10:08:37 +00:00
James Nugent 65b071d1af provider/docker: Fix flaky integration tests
Asserting on the value of `latest` on an image is prone to failing
because of new images being pushed upstream. Instead of asserting on a
hash, we assert that the value matches a regular expression for the
format of an image hash.
2016-01-14 09:12:05 +00:00
James Nugent ee7553f076 Merge branch 'docker_network' of https://github.com/ColinHebert/terraform into ColinHebert-docker_network 2016-01-14 07:01:03 +00:00
James Nugent ea9e01cc78 Merge pull request #4669 from lwander/f-gcp-sql-user
provider/google: SQL user resource, documentation & tests
2016-01-14 06:51:17 +00:00
clint shryock 8181a4ea24 minor clean ups after #3862 2016-01-13 16:58:07 -06:00
Clint 7f6624e926 Merge pull request #3862 from stack72/aws-redshift
provider/aws: AWS Redshift
2016-01-13 16:52:47 -06:00
Lars Wander 7245a63077 Merge pull request #3893 from lwander/b-gcp-bucket-content
provider/google: Content field for bucket objects
2016-01-13 17:14:53 -05:00
Lars Wander 504bc87ec6 Merge pull request #4265 from lwander/gcp-assigned-nat-ip
provider/google: provide assigned_nat_ip as well as nat_ip
2016-01-13 17:13:16 -05:00
Lars Wander b8c66dc5e5 provider/google: Content field for bucket objects 2016-01-13 17:06:58 -05:00
Lars Wander 456ec4d151 provider/google: SQL user resource, documentation & tests 2016-01-13 16:33:08 -05:00
Clint 64f44c53c6 Merge pull request #4597 from tpounds/support-aws-elb-az-and-subnet-updates
provider/aws: Support updating ELB availability zones and subnets
2016-01-13 15:30:44 -06:00
Clint eed2a2a0f6 Merge pull request #3139 from koendc/b-rds-snapshots-required-fields
provider/aws: aws_db_instance: make some fields optional
2016-01-13 15:15:09 -06:00
Clint 921f6eb806 Merge pull request #4388 from jszwedko/add-support-for-aws-directory-service-microsoft-active-directory
Add support for creating Managed Microsoft Active Directory and Directory Connectors in AWS
2016-01-13 13:39:29 -06:00
Paul Hinze 395b61825d Merge pull request #4654 from hashicorp/gofmts
Go fmt updates
2016-01-13 12:55:36 -06:00
Clint c9231a73ec Merge pull request #4240 from hashicorp/b-aws-catch-sg-name-id-error
provider/aws: Trap Instance error from mismatched SG IDs and Names
2016-01-13 11:57:58 -06:00