Commit Graph

73 Commits

Author SHA1 Message Date
Radek Simko f17fdc76fa
provider/aws: Import S3 bucket policy as a separate resource 2016-09-19 08:28:45 +01:00
Radek Simko 59a7a5ca27
provider/aws: Only read S3 bucket policy if it's set 2016-09-18 22:35:07 +01:00
Radek Simko 18bd206c38
provider/aws: Make s3_bucket.policy not Computed 2016-09-18 20:58:36 +01:00
Krzysztof Wilczynski 5697a52b4f [WIP] provider/aws: Add normalizeJsonString and validateJsonString functions. (#8028)
* Add normalizeJsonString and validateJsonString functions.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>

* Add unit test for the normalizeJsonString helper function.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>

* Fix. Remove incrrect format string.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>

* Remove surplus type assertion.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>

* Add unit test for the validateJsonStringhelper function.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>

* Remove surplus whitespaces.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
2016-09-17 19:50:38 +01:00
Radek Simko 2ad84a51df
provider/aws: Fix misspelled words 2016-09-12 07:23:34 +01:00
James Nugent 93f31fce17 provider/aws: Add aws_s3_bucket_policy resource
This commit adds a new "attachment" style resource for setting the
policy of an AWS S3 bucket. This is desirable such that the ARN of the
bucket can be referenced in an IAM Policy Document.

In addition, we now suppress diffs on the (now-computed) policy in the
S3 bucket for structurally equivalent policies, which prevents flapping
because of whitespace and map ordering changes made by the S3 endpoint.
2016-09-02 09:07:54 -07:00
Clint 740b8bb9cb provider/aws: Run errcheck in tests (#8579)
* provider/aws: Add errcheck to Makefile, error on unchecked errors

* more exceptions

* updates for errcheck to pass

* reformat and spilt out the ignore statements

* narrow down ignores

* fix typo, only ignore Close and Write, instead of close or write
2016-09-02 09:24:17 -05:00
KOJIMA Kazunori 23d2ae3740 provider/aws: Support import of `aws_s3_bucket` (#8262) 2016-08-18 16:01:20 +01:00
Krzysztof Wilczynski 168d212e77 Fix. Correct how CORS rules are handled. (#8096)
This commit fixes an issue where CORS rules would not be read and thus refreshed
correctly should there be a change introduced externally e.g. CORS configuration
was edited outside of Terraform.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
2016-08-12 13:14:48 +10:00
Krzysztof Wilczynski 92d75b263c Add ability to set Requests Payer in aws_s3_bucket. (#8065)
Any S3 Bucket owner may wish to share data but not incur charges associated
with others accessing the data. This commit adds an optional "request_payer"
attribute to the aws_s3_bucket resource so that the owner of the S3 bucket can
specify who should bear the cost of Amazon S3 data transfer.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
2016-08-10 11:01:17 +12:00
Paul Stack 2c5112ee2e provider/aws: `aws_s3_bucket` acceleration_status not available in china (#7999)
or us-gov

Fixes #7969

`acceleration_status` is not available in China or US-Gov data centers.
Even querying for this will give the following:

```
Error refreshing state: 1 error(s) occurred:

2016/08/04 13:58:52 [DEBUG] plugin: waiting for all plugin processes to
complete...
* aws_s3_bucket.registry_cn: UnsupportedArgument: The request contained
* an unsupported argument.
        status code: 400, request id: F74BA6AA0985B103
```

We are going to stop any Read calls for acceleration status from these
data centers

```
% make testacc TEST=./builtin/providers/aws
% TESTARGS='-run=TestAccAWSS3Bucket_'                                  ✹
==> 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=TestAccAWSS3Bucket_
-timeout 120m
=== RUN   TestAccAWSS3Bucket_Notification
--- PASS: TestAccAWSS3Bucket_Notification (409.46s)
=== RUN   TestAccAWSS3Bucket_NotificationWithoutFilter
--- PASS: TestAccAWSS3Bucket_NotificationWithoutFilter (166.84s)
=== RUN   TestAccAWSS3Bucket_basic
--- PASS: TestAccAWSS3Bucket_basic (133.48s)
=== RUN   TestAccAWSS3Bucket_acceleration
--- PASS: TestAccAWSS3Bucket_acceleration (282.06s)
=== RUN   TestAccAWSS3Bucket_Policy
--- PASS: TestAccAWSS3Bucket_Policy (332.14s)
=== RUN   TestAccAWSS3Bucket_UpdateAcl
--- PASS: TestAccAWSS3Bucket_UpdateAcl (225.96s)
=== RUN   TestAccAWSS3Bucket_Website_Simple
--- PASS: TestAccAWSS3Bucket_Website_Simple (358.15s)
=== RUN   TestAccAWSS3Bucket_WebsiteRedirect
--- PASS: TestAccAWSS3Bucket_WebsiteRedirect (380.38s)
=== RUN   TestAccAWSS3Bucket_WebsiteRoutingRules
--- PASS: TestAccAWSS3Bucket_WebsiteRoutingRules (258.29s)
=== RUN   TestAccAWSS3Bucket_shouldFailNotFound
--- PASS: TestAccAWSS3Bucket_shouldFailNotFound (92.24s)
=== RUN   TestAccAWSS3Bucket_Versioning
--- PASS: TestAccAWSS3Bucket_Versioning (654.19s)
=== RUN   TestAccAWSS3Bucket_Cors
--- PASS: TestAccAWSS3Bucket_Cors (143.58s)
=== RUN   TestAccAWSS3Bucket_Logging
--- PASS: TestAccAWSS3Bucket_Logging (249.79s)
=== RUN   TestAccAWSS3Bucket_Lifecycle
--- PASS: TestAccAWSS3Bucket_Lifecycle (259.87s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws
3946.464s
```

thanks to @kwilczynski and @radeksimko for the research on how to handle the generic
errors here

Running these over a 4G tethering connection has been painful :)
2016-08-08 08:05:54 +01:00
Jared Biel 09f7fb0c34 Fix S3 provider redirect_all_requests_to behavior. #5142 (#7883)
The S3 API has two parameters that can be passed to it (HostName
and Protocol) for the RedirectAllRequestsTo functionality.
HostName is somewhat poorly named because it need not be only a
hostname (it can contain a path too.)

The terraform code for this was treating the API as the parameter
name suggests and was truncating out any paths that were passed.
2016-08-07 17:16:31 +10:00
avichalbadaya 7369c1c9f4 Allowing ap-south-1 (Mumbai) as valid AWS region (#7688)
* Update website_endpoint_url_test.go

Allow ap-south-1 (Mumbai) as valid region

* Update hosted_zones.go

Allowing ap-south-1 (Mumbai) as valid region

* Update website_endpoint_url_test.go

reformatting

* Update hosted_zones.go

reformatting

* Update resource_aws_s3_bucket.go

making changes for ap-south-1 (Mumbai) region
2016-07-19 09:01:49 +01:00
Paul Stack 811667023b provider/aws: Add support for S3 Bucket Acceleration (#6628) 2016-05-18 11:33:03 -05:00
Mitchell Hashimoto 8b4e98e732
providers/aws: some id-only work on s3 buckets more work needed 2016-04-21 08:44:45 -07:00
Clint bc68dee2eb provider/aws: Fix crash in AWS S3 Bucket when website index/error is empty (#6269) 2016-04-21 08:07:01 -05:00
KOJIMA Kazunori 5e33517394 provider/aws: Add support S3 Object Lifecycle Rule (#6220)
* providers/aws: Add support S3 Object Lifecycle Rule

* Fix failed vet command

* Fix failed acceptance tests

* Check nil pointer before dereference.

* Move S3 lifecycle rule id validator func to validators.go

* Don't fail when get lifecycle rule's response code is 404
2016-04-20 11:16:14 +01:00
Paul Hinze 108ccf0007 builtin: Refactor resource.Retry to clarify return
Change the `RetryFunc` from a plain `error` return type to a
specialized `RetryError` which must decide whether it is
retryable or not.

Add `RetryableError` / `NonRetryableError` factory functions that
callers are meant to use to build up these errors.

This makes it eminently clear whether or not a given error is
retryable from inside the client code.

Goal here is to _not_ change any behavior, simply reflect the
existing behavior with the new, clearer, API.
2016-03-09 17:37:56 -06:00
Kazunori Kojima 8d1292d608 Return empty string when input empty S3 bucket policy
Before:

"" -> "Error parsing JSON: unexpected end of JSON input"

After:

"" -> ""
2016-03-07 09:31:33 +09:00
Drew Minnear ef50479e8a added routing rules to s3 buckets 2016-02-25 10:19:23 -08:00
Radek Simko 35345c92af fix: Return non-aws errors if bucket creation fails 2016-02-17 13:49:41 +00:00
Radek Simko 8481625596 Add retry logic to s3_bucket to prevent OperationAborted errors 2016-02-17 11:38:20 +00: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
Kazunori Kojima f2ce28ed46 Add support for S3 logging. 2016-01-09 10:09:23 -08:00
Chris Marchesi 559aa50a31 Retry MalformedPolicy errors due to newly created principals 2015-12-14 10:42:08 -08:00
Piotr Komborski 3d28b8dec2 S3 bucket force_destroy error: MalformedXML
AWS provider was not checking whether DeleteMarkers are left in S3
bucket causing s3.DeleteObjectsInput to send empty XML which resulted in
400 error and MalformedXML message.
2015-12-04 15:24:23 +00:00
stack72 0cca74fe76 Changing the S3 Bucket resource to allow the update of ACL by using PutBucketAcl 2015-11-26 21:45:48 +00:00
stack72 8eec0c896f Adding a computed ARN for the S3 Bucket as per #3666 2015-10-29 13:33:35 +00:00
Clint 5cedd64a15 Merge pull request #3387 from kjmkznr/s3-cors
provider/aws: Add CORS settings to S3 bucket
2015-10-28 10:09:44 -05:00
Kazunori Kojima 122790d32b Add check errors on reading CORS rules 2015-10-28 09:19:37 +09:00
Clint Shryock 6ab339b62d unset website_endpoint, website_domain if website part is removed 2015-10-14 14:49:33 -05:00
Kazunori Kojima e0632de30c Add support S3 CORS 2015-10-02 01:49:32 +09:00
Kazunori Kojima 47d2b29895 Use `%t` for boolean value 2015-09-06 11:06:29 +09:00
Kazunori Kojima 707fe3ac6d Changed to versioning block 2015-09-05 17:19:52 +09:00
Kazunori Kojima 0fbfd71f96 Allows S3 bucket versioning configuration 2015-09-05 11:38:56 +09:00
Clint Shryock c10c47623e provider/aws: Return if Bucket not found 2015-08-03 16:17:01 -05:00
John Engelman cbe9be4571 Add website_domain for S3 buckets. 2015-07-22 10:38:28 -05:00
Alexander Ekdahl 52a21f3fb0 Corrected Frankfurt S3 Website Endpoint fixes #2258 2015-06-07 11:39:18 +02:00
Paul Hinze b71fa3d0ae provider/aws: handle upstream aws-sdk-go repo move
`awslabs/aws-sdk-go => aws/aws-sdk-go`

Congrats to upstream on the promotion. :)
2015-06-03 13:36:57 -05:00
Michael Austin dc698e3b67 added force_destroy argument to s3 bucket provider
commit a92fe29b909af033c4c57257ddcb6793bfb694aa
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 20 16:35:38 2015 -0400

    updated to new style of awserr

commit 428271c9b9ca01ed2add1ffa608ab354f520bfa0
Merge: b3bae0e 883e284
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 20 16:29:00 2015 -0400

    Merge branch 'master' into 2544-terraform-s3-forceDelete

commit b3bae0efdac81adf8bb448d11cc1ca62eae75d94
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 20 12:06:36 2015 -0400

    removed extra line

commit 85eb40fc7ce24f5eb01af10eadde35ebac3c8223
Author: Michael Austin <m_austin@me.com>
Date:   Tue May 19 14:27:19 2015 -0400

    stray [

commit d8a405f7d6880c350ab9fccb70b833d2239d9915
Author: Michael Austin <m_austin@me.com>
Date:   Tue May 19 14:24:01 2015 -0400

    addressed feedback concerning parsing of aws error in a more standard way

commit 5b9a5ee613af78e466d89ba772959bb38566f50e
Author: Michael Austin <m_austin@me.com>
Date:   Tue May 19 10:55:22 2015 -0400

    clarify comment to highlight recursion

commit 91043781f4ba08b075673cd4c7c01792975c2402
Author: Michael Austin <m_austin@me.com>
Date:   Tue May 19 10:51:13 2015 -0400

    addressed feedback about reusing err variable and unneeded parens

commit 95e9c3afbd34d4d09a6355b0aaeb52606917b6dc
Merge: 2637edf db095e2
Author: Michael Austin <m_austin@me.com>
Date:   Mon May 18 19:15:36 2015 -0400

    Merge branch 'master' into 2544-terraform-s3-forceDelete

commit 2637edfc48a23b2951032b1e974d7097602c4715
Author: Michael Austin <m_austin@me.com>
Date:   Fri May 15 15:12:41 2015 -0400

    optimize delete to delete up to 1000 at once instead of one at a time

commit 1441eb2ccf13fa34f4d8c43257c2e471108738e4
Author: Michael Austin <m_austin@me.com>
Date:   Fri May 15 12:34:53 2015 -0400

    Revert "hook new resource provider into configuration"

    This reverts commit e14a1ade5315e3276e039b745a40ce69a64518b5.

commit b532fa22022e34e4a8ea09024874bb0e8265f3ac
Author: Michael Austin <m_austin@me.com>
Date:   Fri May 15 12:34:49 2015 -0400

    this file should not be in this branch

commit 645c0b66c6f000a6da50ebeca1d867a63e5fd9f1
Author: Michael Austin <m_austin@me.com>
Date:   Thu May 14 21:15:29 2015 -0400

    buckets tagged force_destroy will delete all files and then delete buckets

commit ac50cae214ce88e22bb1184386c56b8ba8c057f7
Author: Michael Austin <m_austin@me.com>
Date:   Thu May 14 12:41:40 2015 -0400

    added code to delete policy from s3 bucket

commit cd45e45d6d04a3956fe35c178d5e816ba18d1051
Author: Michael Austin <m_austin@me.com>
Date:   Thu May 14 12:27:13 2015 -0400

    added code to read bucket policy from bucket, however, it's not working as expected currently

commit 0d3d51abfddec9c39c60d8f7b81e8fcd88e117b9
Merge: 31ffdea 8a3b75d
Author: Michael Austin <m_austin@me.com>
Date:   Thu May 14 08:38:06 2015 -0400

    Merge remote-tracking branch 'hashi_origin/master' into 2544-terraform-s3-policy

commit 31ffdea96ba3d5ddf5d42f862e68c1c133e49925
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 16:01:52 2015 -0400

    add name for use with resouce id

commit b41c7375dbd9ae43ee0d421cf2432c1eb174b5b0
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 14:48:24 2015 -0400

    Revert "working policy assignment"
    This reverts commit 0975a70c37eaa310d2bdfe6f77009253c5e450c7.

commit b926b11521878f1527bdcaba3c1b7c0b973e89e5
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 14:35:02 2015 -0400

    moved policy to it's own provider

commit 233a5f443c13d71f3ddc06cf034d07cb8231b4dd
Merge: e14a1ad c003e96
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 12:39:14 2015 -0400

    merged origin/master

commit e14a1ade5315e3276e039b745a40ce69a64518b5
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 12:26:51 2015 -0400

    hook new resource provider into configuration

commit 455b409cb853faae3e45a0a3d4e2859ffc4ed865
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 12:26:15 2015 -0400

    dummy resource provider

commit 0975a70c37eaa310d2bdfe6f77009253c5e450c7
Author: Michael Austin <m_austin@me.com>
Date:   Wed May 13 09:42:31 2015 -0400

    working policy assignment

commit 3ab901d6b3ab605adc0a8cb703aa047a513b68d4
Author: Michael Austin <m_austin@me.com>
Date:   Tue May 12 10:39:56 2015 -0400

    added policy string to schema
2015-05-20 19:06:27 -04:00
Paul Hinze 31258e06c6 provider/aws: fix breakages from awserr refactor
This landed in aws-sdk-go yesterday, breaking the AWS provider in many places:

3c259c9586

Here, with much sedding, grepping, and manual massaging, we attempt to
catch Terraform up to the new `awserr.Error` interface world.
2015-05-20 06:21:23 -05:00
Justin Campbell 89f0def721 providers/aws: Normalize S3 bucket policy
AWS always returns a compressed JSON body, without spaces or newlines, so we round-trip the JSON before storing in the state.
2015-05-18 13:10:44 -04:00
Justin Campbell 9c764a3253 providers/aws: Add support for policy on S3 bucket 2015-05-18 13:10:44 -04:00
Justin Campbell b8cd6b2bae providers/aws: Add support for S3 website redirect 2015-05-12 11:24:08 -04:00
Justin Campbell 73651e2c70 providers/aws: Extract normalizeRegion 2015-05-08 10:49:21 -04:00
Justin Campbell 445f92e48a providers/aws: Move HostedZoneIDForRegion into TF 2015-05-08 10:49:20 -04:00
Justin Campbell 64d2b495c3 providers/aws: Add region to S3 attrs 2015-05-08 10:02:16 -04:00
Justin Campbell 839688d477 providers/aws: Add hosted_zone_id to S3 attrs 2015-05-08 10:02:16 -04:00
Justin Campbell d7c9d8702c providers/aws: Extract website endpoint logic 2015-05-08 10:02:16 -04:00
Clint Shryock fed42fe1b3 update tests so go vet is happy 2015-05-07 10:03:28 -05:00