Commit Graph

14146 Commits

Author SHA1 Message Date
Mitchell Hashimoto 7834cf7190
helper/schema: computed bool fields should not crash
Fixes #7715

If a bool field was computed and the raw value was not convertable to a
boolean, helper/schema would crash. The correct behavior is to try not
to read the raw value when the value is computed and to simply mark that
it is computed. This does that (and matches the behavior of the other
primitives).
2016-11-02 13:25:23 -07:00
Paul Stack 1658055bfd Update CHANGELOG.md 2016-11-02 16:14:59 +00:00
Paul Stack c5bd727f03 provider/aws: Allows aws_alb security_groups to be updated (#9804)
Fixes #9658
Fixes #8728

Originally, this would ForceNew as follows:

```
-/+ aws_alb.alb_test
    arn:                        "arn:aws:elasticloadbalancing:us-west-2:187416307283:loadbalancer/app/test-alb-9658/3459cd2446b76901" => "<computed>"
    arn_suffix:                 "app/test-alb-9658/3459cd2446b76901" => "<computed>"
    dns_name:                   "test-alb-9658-1463108301.us-west-2.elb.amazonaws.com" => "<computed>"
    enable_deletion_protection: "false" => "false"
    idle_timeout:               "30" => "30"
    internal:                   "false" => "false"
    name:                       "test-alb-9658" => "test-alb-9658"
    security_groups.#:          "2" => "1" (forces new resource)
    security_groups.1631253634: "sg-3256274b" => "" (forces new resource)
    security_groups.3505955000: "sg-1e572667" => "sg-1e572667" (forces new resource)
    subnets.#:                  "2" => "2"
    subnets.2407170741:         "subnet-ee536498" => "subnet-ee536498"
    subnets.2414619308:         "subnet-f1a7b595" => "subnet-f1a7b595"
    tags.%:                     "1" => "1"
    tags.TestName:              "TestAccAWSALB_basic" => "TestAccAWSALB_basic"
    vpc_id:                     "vpc-dd0ff9ba" => "<computed>"
    zone_id:                    "Z1H1FL5HABSF5" => "<computed>"

Plan: 1 to add, 0 to change, 1 to destroy.
```

When the ALB was ForceNew, the ARN changed. The test has been updated to include a check to make sure that the ARNs are the same after the update

After this change, it looks as follows:

```
~ aws_alb.alb_test
    security_groups.#:          "1" => "2"
    security_groups.1631253634: "" => "sg-3256274b"
    security_groups.3505955000: "sg-1e572667" => "sg-1e572667"

Plan: 0 to add, 1 to change, 0 to destroy.
```

Test Results:

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSALB_'                                                                                                                                ✹
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/11/02 12:20:58 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSALB_ -timeout 120m
=== RUN   TestAccAWSALB_basic
--- PASS: TestAccAWSALB_basic (64.25s)
=== RUN   TestAccAWSALB_generatedName
--- PASS: TestAccAWSALB_generatedName (65.04s)
=== RUN   TestAccAWSALB_namePrefix
--- PASS: TestAccAWSALB_namePrefix (67.02s)
=== RUN   TestAccAWSALB_tags
--- PASS: TestAccAWSALB_tags (96.06s)
=== RUN   TestAccAWSALB_updatedSecurityGroups
--- PASS: TestAccAWSALB_updatedSecurityGroups (101.61s)
=== RUN   TestAccAWSALB_noSecurityGroup
--- PASS: TestAccAWSALB_noSecurityGroup (59.83s)
=== RUN   TestAccAWSALB_accesslogs
--- PASS: TestAccAWSALB_accesslogs (162.65s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	616.489s
```
2016-11-02 16:11:12 +00:00
clint shryock 5cd40bce30 provider/aws: Modify AWS User-Agent to new format 2016-11-02 10:43:35 -05:00
Sam Dunne cb40a3ef14
Format code 2016-11-02 15:30:21 +00:00
Paul Stack 74989271fe Update CHANGELOG.md 2016-11-02 15:30:21 +00:00
Paul Stack 6649b938da provider/aws: Provide the option to skip_destroy on aws_volume_attachment (#9792)
* provider/aws: Provide the option to skip_destroy on
aws_volume_attachment

When you want to attach and detach pre-existing EBS volumes to an
instance, we would do that as follows:

```
resource "aws_instance" "web" {
	ami = "ami-21f78e11"
  availability_zone = "us-west-2a"
	instance_type = "t1.micro"
	tags {
		Name = "HelloWorld"
	}
}

data "aws_ebs_volume" "ebs_volume" {
  filter {
  	name = "size"
  	values = ["${aws_ebs_volume.example.size}"]
  }
  filter {
  	name = "availability-zone"
  	values = ["${aws_ebs_volume.example.availability_zone}"]
  }
  filter {
  	name = "tag:Name"
  	values = ["TestVolume"]
  }
}

resource "aws_volume_attachment" "ebs_att" {
  device_name = "/dev/sdh"
	volume_id = "${data.aws_ebs_volume.ebs_volume.id}"
	instance_id = "${aws_instance.web.id}"
	skip_destroy = true
}
```

The issue here is that when we run a terraform destroy command, the volume tries to get detached from a running instance and goes into a non-responsive state. We would have to force_destroy the volume at that point and risk losing any data on it.

This PR introduces the idea of `skip_destroy` on a volume attachment. tl;dr:

We want the volume to be detached from the instane when the instance itself has been destroyed. This way the normal shut procedures will happen and protect the disk for attachment to another instance

Volume Attachment Tests:

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSVolumeAttachment_'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/11/02 00:47:27 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSVolumeAttachment_ -timeout 120m
=== RUN   TestAccAWSVolumeAttachment_basic
--- PASS: TestAccAWSVolumeAttachment_basic (133.49s)
=== RUN   TestAccAWSVolumeAttachment_skipDestroy
--- PASS: TestAccAWSVolumeAttachment_skipDestroy (119.64s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	253.158s
```

EBS Volume Tests:

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSEBSVolume_'
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/11/02 01:00:18 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSEBSVolume_ -timeout 120m
=== RUN   TestAccAWSEBSVolume_importBasic
--- PASS: TestAccAWSEBSVolume_importBasic (26.38s)
=== RUN   TestAccAWSEBSVolume_basic
--- PASS: TestAccAWSEBSVolume_basic (26.86s)
=== RUN   TestAccAWSEBSVolume_NoIops
--- PASS: TestAccAWSEBSVolume_NoIops (27.89s)
=== RUN   TestAccAWSEBSVolume_withTags
--- PASS: TestAccAWSEBSVolume_withTags (26.88s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	108.032s
```

* Update volume_attachment.html.markdown
2016-11-02 15:29:37 +00:00
Sam Dunne 5dbd9423cc
Update based off review 2016-11-02 14:36:39 +00:00
Daisuke Fujita bfeccfe669 Document about ElastiCache Replication Group port (#9800) 2016-11-02 10:09:15 +00:00
Gavin Williams ef57001173 vendor: Removing github.com/rackspace/gophercloud
All code has now migrated to using github.com/gophercloud/gophercloud!
2016-11-02 07:20:51 +00:00
Gavin Williams 2bf054d0d6 vendor: Updating github.com/gophercloud/gophercloud
Add github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects and
github.com/gophercloud/gophercloud/openstack/objectstorage/v1/accounts
2016-11-02 07:18:00 +00:00
Mitchell Hashimoto 13483b574e
website: clarify ".terraform" location for #7301 2016-11-01 23:01:18 -07:00
Mitchell Hashimoto d69b6257df
config: formatlist accepts an empty list
Fixes #7607

An empty list is a valid value for formatlist which means to just return
an empty list as a result. The logic was somewhat convoluted here so I
cleaned that up a bit too. The function overall can definitely be
cleaned up a lot more but I left it mostly as-is to fix the bug.
2016-11-01 22:57:11 -07:00
Mitchell Hashimoto 9e5d1f10b0
terraform: add test to verify orphan outputs in modules are removed
For #7598

This doesn't work with the old graph, we guard it as such.
2016-11-01 22:42:41 -07:00
Mitchell Hashimoto 1248b147ac
command/meta: always ask for unset variable input
Fixes #7975

This changes the InputMode for the CLI to always be:

    InputModeProvider | InputModeVar | InputModeVarUnset

Which means:

  * Ask for provider variables
  * Ask for user variables _that are not already set_

The change is the latter point. Before, we'd only ask for variables if
zero were given. This forces the user to either have no variables set
via the CLI, env vars, tfvars or ALL variables, but no in between. As
reported in #7975, this isn't expected behavior.

The new change makes is so that unset variables are always asked for.
Users can retain the previous behavior by setting `-input=false`. This
would ensure that variables set by external sources cover all cases.
2016-11-01 19:16:43 -07:00
Paul Stack 61a1501731 Update CHANGELOG.md 2016-11-01 22:09:41 +00:00
Paul Stack 9cc881558b Update CHANGELOG.md 2016-11-01 21:02:08 +00:00
Christoph Blecker af7cd57a4a Search configured project image families (#9243)
* Search configured project image families

* Clarify documentation around google_compute_instance image families

* Acceptance test for private instance family creation
2016-11-01 21:00:12 +00:00
James Bardin 76772ab929 Merge pull request #9785 from hashicorp/jbardin/CL
0.7.4 private_key errata
2016-11-01 16:51:39 -04:00
James Bardin 1c869fa74f 0.7.4 private_key errata 2016-11-01 16:39:02 -04:00
Andreas Kyrris b8e4b1c4af Update loadbalancer docs with private ip allocation type. (#9780) 2016-11-01 20:12:06 +00:00
Clint 6cca7b3a05 Merge pull request #9784 from hashicorp/docs-aws-waf
docs/aws: Fixing the AWS WAF Documentation
2016-11-01 15:01:23 -05:00
stack72 4d033aa189
docs/aws: Fixing the AWS WAF Documentation 2016-11-01 19:42:56 +00:00
Peter McAtominey 565e8719db provider/azurerm: update Azure SDK to 6.0 Beta (#9700)
Fix keyvault KeyPermissions references
2016-11-01 19:25:20 +00:00
clint 744d1648f6 release: cleanup after v0.7.8 2016-11-01 19:06:14 +00:00
clint f61ff7d005
v0.7.8 2016-11-01 18:45:37 +00:00
Mitchell Hashimoto fb08774ff3 Update CHANGELOG.md 2016-11-01 11:17:34 -07:00
Mitchell Hashimoto 81f703a6bd Merge pull request #9781 from hashicorp/update-hcl
vendor: update HCL for printing updates
2016-11-01 11:17:00 -07:00
Mitchell Hashimoto 3b2aa0ad0d
vendor: update HCL for printing updates 2016-11-01 11:08:08 -07:00
Mitchell Hashimoto 7db209d791 Merge pull request #9776 from hashicorp/b-schema-computed
terraform: NewComputed doesn't quit Same logic
2016-11-01 10:06:29 -07:00
Gavin Williams ac07430124 state/remote/swift: Update to use Gophercloud/gophercloud, restructure to support insecure TLS, added Keystone v3 auth params
Update swift remote documentation
2016-11-01 16:55:05 +00:00
Mitchell Hashimoto df981b234d
terraform: NewComputed doesn't quit Same logic
For #9618, we added the ability to ignore old diffs that were computed
and removed (because the ultimate value ended up being the same). This
ended up breaking computed list/set logic.

The correct behavior, as is evident by how the other "skip" logics work,
is to set `ok = true` so that the remainder of the logic can run which
handles stuff such as computed lists and sets.
2016-11-01 09:53:53 -07:00
Paul Stack c13aab2568 Revert "Bump crypto/ssh package" (#9775) 2016-11-01 16:53:49 +00:00
Paul Stack fc329fbdea Update CHANGELOG.md 2016-11-01 16:51:55 +00:00
Martin Atkins 0d8c9f3926 Merge #9720: Normalize all-principals wildcard in aws_iam_policy_document 2016-11-01 09:05:42 -07:00
Martin Atkins 145bf42806 provider/aws: IAM policy document: normalize wildcard principals
There are three equivalent forms for expressing "everyone" (including
anonymous) in IAM policies:

- "Principals": "*"
- "Principals": {"AWS": "*"}
- "Principals": {"*": "*"}

The more-constrained syntax used by our aws_iam_policy_document data
source means that the user can only express the latter two of these
directly. However, when returning IAM policies from the API AWS likes to
normalize to the first form, causing unresolvable diffs.

This fixes #9335 by handling the "everyone" case as a special case,
serializing it in JSON as the "*" shorthand form.

This change does *not* address the normalization of hand-written policies
containing such elements. A similar change would need to be made in
the external package github.com/jen20/awspolicyequivalence in order to
avoid the issue for hand-written policies.
2016-11-01 08:46:34 -07:00
alexis-turpin f16309630e Update the PowerShell example to set the PATH (#9771)
`set PATH=%PATH%;C:\terraform` is the old fashioned CMD ways to do which doesn't work in a PowerShell command line.
Moreover, the change made in the CMD console would not be permanent.

The solution proposed here uses .NET Framework’s System.Environment class in PowerShell to properly edit the path.
Source : https://technet.microsoft.com/en-us/library/ff730964.aspx
2016-11-01 14:56:18 +00:00
Paul Stack 4c88a98819 Update CHANGELOG.md 2016-11-01 14:16:06 +00:00
Paul Stack aaece37ec9 provider/aws: Adding a datasource for aws_ebs_volume (#9753)
This will allows us to filter a specific ebs_volume for attachment to an
aws_instance

```
make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSEbsVolumeDataSource_'✹
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/11/01 12:39:19 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v
-run=TestAccAWSEbsVolumeDataSource_ -timeout 120m
=== RUN   TestAccAWSEbsVolumeDataSource_basic
--- PASS: TestAccAWSEbsVolumeDataSource_basic (28.74s)
=== RUN   TestAccAWSEbsVolumeDataSource_multipleFilters
--- PASS: TestAccAWSEbsVolumeDataSource_multipleFilters (28.37s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws57.145s
```
2016-11-01 14:15:31 +00:00
Paul Stack 8351e3d55e Update CHANGELOG.md 2016-11-01 14:08:47 +00:00
Seth Vargo d5af44cfd7 Add security page (#9717) 2016-11-01 13:56:08 +00:00
Paul Stack 9d2dc8172a Update CHANGELOG.md 2016-11-01 13:45:56 +00:00
Christoph Blecker 45f441fdb4 Add support for default-internet-gateway alias for google_compute_route (#9676) 2016-11-01 13:45:36 +00:00
Paul Stack aa63c367da Update CHANGELOG.md 2016-11-01 13:18:00 +00:00
Joe Topjian 266b5ab598 provider/openstack: Openstack Provider Updates (#9725)
* provider/openstack: Adding Identity v3 compatible environment variables

* provider/openstack: Adding missing environment variables

* provider/openstack: line spacing for provider options

* provider/openstack: Making password sensitive

* provider/openstack: Adding descriptions to provider options

* provider/openstack: Clean up provider documentation

* provider/openstack: clean up EndpointType check
2016-11-01 13:16:39 +00:00
Paul Stack 9b2b21b583 Update CHANGELOG.md 2016-11-01 10:55:30 +00:00
Peter McAtominey f2606bfa5d provider/azurerm: fix sql_database resource reading tags (#9767)
tags were not being set in the read function

TF_ACC=1 go test ./builtin/providers/azurerm -v -run TestAccAzureRMSqlDatabase_basic -timeout 120m
=== RUN   TestAccAzureRMSqlDatabase_basic
--- PASS: TestAccAzureRMSqlDatabase_basic (190.60s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/azurerm	190.719s
2016-11-01 10:55:02 +00:00
Paul Stack 76fc688750 Update CHANGELOG.md 2016-11-01 10:33:12 +00:00
Christoph Blecker ca8cd4b1f0 Add support for using source_disk to google_compute_image (#9614) 2016-11-01 10:32:47 +00:00
Paul Stack 71536155e0 Update CHANGELOG.md 2016-11-01 10:26:13 +00:00