Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for Managed Disks for VM Scale Sets #4

Open
wants to merge 351 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
351 commits
Select commit Hold shift + click to select a range
4146137
Update CHANGELOG.md
grubernaut Apr 12, 2017
4606090
provider/aws: Add support for api_gateway_method_settings (#13542)
radeksimko Apr 12, 2017
519a0fe
Update CHANGELOG.md
radeksimko Apr 12, 2017
e57790e
website: Add sidebar links to GitHub webhook resource pages
jennyd Apr 12, 2017
9c431ae
only list environments when the keyName matches
jbardin Apr 12, 2017
d1b4df4
missing PersistState in env new
jbardin Apr 12, 2017
cc7fc31
Merge pull request #13596 from hashicorp/jbardin/s3-envs-fixup
jbardin Apr 12, 2017
5db1216
update changelog
jbardin Apr 12, 2017
057c58c
Merge pull request #13581 from hashicorp/b-fix-cloudinit-config-panic
grubernaut Apr 12, 2017
00e8986
provider/dnsimple: Handle 404 on DNSimple records (#13131)
stack72 Apr 12, 2017
9c20f9c
Update CHANGELOG.md
grubernaut Apr 12, 2017
a1608cf
Update CHANGELOG.md
stack72 Apr 12, 2017
e676a72
Merge pull request #13577 from hashicorp/f-add-codecommit-import
grubernaut Apr 12, 2017
491cc0b
Update CHANGELOG.md
grubernaut Apr 12, 2017
9ef9501
provider/aws: Fix EMR Bootstrap Action Ordering (#13580)
catsby Apr 12, 2017
bfe71fb
Update CHANGELOG.md
catsby Apr 12, 2017
47dff98
Update CHANGELOG.md
catsby Apr 12, 2017
d3eeaa0
fix spelling
catsby Apr 12, 2017
dea8b26
provider/google: bump container cluster version in tests.
paddycarver Apr 12, 2017
11a20dd
provider/google: Add node_pool field in resource_container_cluster. (…
danawillow Apr 12, 2017
f5ed62e
Update CHANGELOG.md
danawillow Apr 12, 2017
1601af7
v0.9.3
apparentlymart Apr 12, 2017
381adca
release: clean up after v0.9.3
apparentlymart Apr 12, 2017
051582d
Add the close provider and provisioner transformers (#13102)
Apr 12, 2017
f1fb9e6
Update CHANGELOG.md
Apr 12, 2017
e80a960
add bitbucket & gitlab to docs sidebar
maryelizbeth Apr 12, 2017
55e045d
Merge pull request #13605 from hashicorp/add-vcs-docs-to-sidebar
maryelizbeth Apr 12, 2017
d34006b
Merge pull request #13270 from JDiPierro/google_address_importability
Apr 12, 2017
a891c3c
Update CHANGELOG.md
Apr 12, 2017
66273ad
Update CHANGELOG.md
Apr 12, 2017
444cf35
Fixing some documentation issues with the Azurerm Traffic Manager End…
john-mcgowan-wowza Apr 12, 2017
fb0533e
Fixes kubernetes namespace name to have valid format (#13615)
scriptnull Apr 13, 2017
5e75311
Merge pull request #13611 from steakfest/master
tombuildsstuff Apr 13, 2017
336a37b
Quoting the title for the iam_role data source
tombuildsstuff Apr 13, 2017
5d64819
Update Triton API libraries to fix regression with CNS and machine ta…
sean- Apr 13, 2017
3080686
Merge pull request #13621 from tombuildsstuff/website-bugfix
tombuildsstuff Apr 13, 2017
6efd064
Openstack port update fixes (#13604)
jtopjian Apr 13, 2017
f5e0894
Update CHANGELOG.md
stack72 Apr 13, 2017
2734a53
Grammar fix (#13626)
mwarkentin Apr 13, 2017
b0407ad
Host based routing on ALB possible (#13623)
koenijn Apr 13, 2017
09031a9
rdpool doc
Apr 13, 2017
baaf6f5
provider/aws: Fix some acc tests (more, again) (#13639)
catsby Apr 13, 2017
11939b4
support for rdpool resource
Apr 13, 2017
923587a
provider/aws: Randomize and fix Dynamo DB test table names
catsby Apr 13, 2017
80b6ce9
add rdpool
Apr 13, 2017
a00dafd
Merge pull request #13635 from hashicorp/paddy_fix_node_version
Apr 13, 2017
89edd28
fix go fmt errors, my bad
catsby Apr 13, 2017
aeb9716
Merge branch 'master' of github.com:hashicorp/terraform
catsby Apr 13, 2017
25cbbde
provider/google: datasource subnetwork and network (#12442)
mathieuherbert Apr 13, 2017
0bd8c7a
Update CHANGELOG.md
danawillow Apr 13, 2017
bf8d932
provider/local: Implement a new local_file resource
Quentin-M Mar 16, 2017
c394e5d
Update resource_aws_route53_zone_association_test.go
mbfrahry Apr 13, 2017
ae5332b
provider/google: Unset the id for resource_google_project if the crea…
danawillow Apr 13, 2017
eac63e9
Update CHANGELOG.md
danawillow Apr 13, 2017
24e857a
azurerm_redis_cache resource missing hostname (#13650)
codekoala Apr 14, 2017
e761814
Update CHANGELOG.md
stack72 Apr 14, 2017
a6f28d2
typo in iam_instance_profile docs (#13647)
ahl Apr 14, 2017
4d359b3
website: add enterprise link in header and mobile sidebar. (#13653)
captainill Apr 14, 2017
2ff8d58
Merge pull request #13646 from hashicorp/p-aws-route53-test-fix
mbfrahry Apr 14, 2017
ac379e1
Merge pull request #13279 from joshuaspence/db_param_group_name
grubernaut Apr 14, 2017
586593c
Update CHANGELOG.md
grubernaut Apr 14, 2017
41baf7d
provider/aws: Wait for snapshotting in delete of ElastiCache cluster
catsby Apr 14, 2017
7b32ad2
Update cloudwatch_log_subscription_filter.html.markdown (#13659)
opteemister Apr 14, 2017
928e606
context Refresh and Apply sometimes return nil
jbardin Apr 14, 2017
1771ba1
Merge pull request #13665 from hashicorp/jbardin/context-return-state
jbardin Apr 14, 2017
046cc9b
Google Addresses: Set name field on read
JDiPierro Apr 14, 2017
46809cc
provider/aws: randomize ECS name
catsby Apr 14, 2017
b253fc7
Merge branch 'master' of github.com:hashicorp/terraform
catsby Apr 14, 2017
43d5b82
provider/aws: Use mutex & retry for WAF change operations (#13656)
radeksimko Apr 14, 2017
80c359c
Update CHANGELOG.md
radeksimko Apr 14, 2017
3d0073e
core: fix a crash by suggesting a different approach to solve #11170 …
Apr 14, 2017
f7adde0
remove maps with empty counts during expand
jbardin Apr 13, 2017
3b1738b
Update CHANGELOG.md
Apr 14, 2017
09a9df7
Merge pull request #13628 from hashicorp/jbardin/GH-13541
jbardin Apr 14, 2017
10c6c87
provider/aws: add an option to skip getting the EC2 platforms (#13672)
Apr 14, 2017
56dae36
Update CHANGELOG.md
Apr 14, 2017
c33810f
Updated test to include the scenario
whiskeyjay Apr 14, 2017
279b00d
Lock Route Table / Subnets
whiskeyjay Apr 14, 2017
9504682
aws: Increase default number of retries to 25 (#13673)
radeksimko Apr 15, 2017
1a016ac
Update CHANGELOG.md
radeksimko Apr 15, 2017
c63ad9c
state/remote/swift: Support Openstack request logging (#13583)
fatmcgav Apr 15, 2017
0d775de
Update CHANGELOG.md
stack72 Apr 15, 2017
11093ae
resourceUltradnsRdpoolRead set rdata
Apr 15, 2017
c87459a
website: updated link to RE2 regex syntax page
fillup Apr 16, 2017
00dca72
add wafregional dependencies (#13687)
yusukegoto Apr 16, 2017
e1ac462
Fix billing_acount into billing_account in google_project.html.markdo…
okumin Apr 16, 2017
f4b59f2
ip_set_descriptors is no longer required. (#13666)
charlieoleary Apr 16, 2017
acb5684
provider/aws: Documentation fixes for aws_api_gateway_* (#13693)
stack72 Apr 16, 2017
4c25e1e
provider/alicloud: Fix create PrePaid instance (#13661) (#13662)
pragkent Apr 16, 2017
16ec806
Update CHANGELOG.md
stack72 Apr 16, 2017
b348cff
provider/aws: Documentation fixes for aws_inspector_resource_group (#…
stack72 Apr 16, 2017
5c3438e
Remove aws_vpc_dhcp_options if not found. (#13610)
ewbankkit Apr 16, 2017
37fe359
Update CHANGELOG.md
stack72 Apr 16, 2017
67f02e6
provider/aws: Documentation fixes for aws_ami (#13694)
stack72 Apr 16, 2017
1af649e
provider/openstack: Ignore fixed_ip when importing ports (#13563)
jtopjian Apr 16, 2017
f7f800b
provider/azurerm: VM Scale Sets - import support + fixes (#13464)
tombuildsstuff Apr 16, 2017
ce09cc1
Update CHANGELOG.md
stack72 Apr 16, 2017
da7041f
Remove aws_network_acl_rule if not found. (#13608)
ewbankkit Apr 16, 2017
1da9a06
Update CHANGELOG.md
stack72 Apr 16, 2017
8d5fdea
Add `name_prefix` support to `aws_cloudwatch_log_group` (#13273)
joshuaspence Apr 16, 2017
7480454
Update CHANGELOG.md
stack72 Apr 16, 2017
8927ad5
provider/alicloud: Fix allocate public ip error (#13267) (#13268)
pragkent Apr 16, 2017
1f75a5f
Update CHANGELOG.md
stack72 Apr 16, 2017
b8b896e
Update go-newrelic vendor and use new field (#13158)
paultyng Apr 16, 2017
8223587
Update CHANGELOG.md
stack72 Apr 16, 2017
8aabb06
added vmss with managed disk support
sozercan Apr 15, 2017
05c9119
Update vmss docs
sozercan Apr 16, 2017
7c83508
update vmss test
sozercan Apr 16, 2017
193c0d8
provider/aws: Validate GovCloud KMS ARNs
phinze Apr 17, 2017
788dbcb
Merge pull request #13699 from hashicorp/b-govcloud-kms-arns
phinze Apr 17, 2017
e802394
Update CHANGELOG.md
phinze Apr 17, 2017
137fcfb
Massively add HCL source tag in docs Markdown files
kavu Apr 17, 2017
b3cc7ea
provider/aws: Add support for aws_dms_replication_task available stat…
stack72 Apr 17, 2017
bb69e37
provider/aws: Documentation fixed for elasticsearch_domain (#13704)
stack72 Apr 17, 2017
3da6209
Add auto_minor_version_upgrade document (#13706)
gotyoooo Apr 17, 2017
ebc89e9
Merge pull request #13701 from kavu/kavu-docs_hcl_addition
grubernaut Apr 17, 2017
6f9570b
Fixes TestAccAWSAutoscalingLifecycleHook_omitDefaultResult
mbfrahry Apr 17, 2017
20b0d9f
provider/aws: Run AWS Spot Datafeed Subscription tests in serial
grubernaut Apr 17, 2017
282e56c
Shell completions for fish
adambyrtek Apr 17, 2017
6c2a37a
Merge pull request #13713 from hashicorp/p-aws-autoscaling-lifecycle-…
mbfrahry Apr 17, 2017
43e9fd7
Merge pull request #13714 from adambyrtek/fish-completion
grubernaut Apr 17, 2017
edc5078
added vmss managed disk import test
sozercan Apr 17, 2017
4d79e0b
website: documentation tweaks for the local_file resource and its pro…
apparentlymart Apr 17, 2017
64fbab8
update vmss tests
sozercan Apr 17, 2017
d515c2e
Merge #12757: local_file resource
apparentlymart Apr 17, 2017
9810d97
Update CHANGELOG.md
apparentlymart Apr 17, 2017
b21bb77
Merge #11776: Optionally allow vault_generic_secret resource to detec…
apparentlymart Apr 17, 2017
55d99c0
Update CHANGELOG.md
apparentlymart Apr 17, 2017
a656555
provider/aws: Update Lambda tests for randomness
catsby Apr 17, 2017
8939ac2
provider/aws: randomize some more test
catsby Apr 17, 2017
a36df84
Added support for Managed Disks in VMSS
echuvyrov Apr 17, 2017
353ed8e
remove unused test resources
sozercan Apr 18, 2017
7412932
Mention LOC of incoming PRs in contributors guide (#13737)
radeksimko Apr 18, 2017
c2d1a37
DigitalOcean: Export droplet prices (#13720)
roidelapluie Apr 18, 2017
16c0594
Update CHANGELOG.md
stack72 Apr 18, 2017
69ec7e1
provider/alicloud: Add new resource ESS, including scalinggroup scali…
demonwy Apr 18, 2017
ec85f83
Update CHANGELOG.md
stack72 Apr 18, 2017
47d255f
provider/aws: Add aws_kms_alias datasource (#13669)
kjmkznr Apr 18, 2017
fd1b430
Update CHANGELOG.md
stack72 Apr 18, 2017
5b0ea5a
Merge pull request #13715 from hashicorp/b-update-spot-datafeed-test
grubernaut Apr 18, 2017
1b841e7
provider/aws: Run all AWSConfig acc tests sequentially (#13658)
radeksimko Apr 18, 2017
a8b8404
rdpool doc
Apr 13, 2017
801e7b7
support for rdpool resource
Apr 13, 2017
04553c5
add rdpool
Apr 13, 2017
3781087
resourceUltradnsRdpoolRead set rdata
Apr 15, 2017
627544e
Merge branch 'master' of https://github.com/bhood4/terraform
Apr 18, 2017
b6866f2
Locking the NSG to only operate on one resource at a time in the create
tombuildsstuff Apr 13, 2017
b93e6e3
Locking on the delete too
tombuildsstuff Apr 13, 2017
3ecb0f4
Locking on the NSG ID
tombuildsstuff Apr 13, 2017
fd03d03
Formatting
tombuildsstuff Apr 13, 2017
079043d
Checking the type of the subnet before using it
tombuildsstuff Apr 18, 2017
502a744
Merge pull request #13637 from hashicorp/azurerm-lock-bugfix
tombuildsstuff Apr 18, 2017
3e8dca1
Updating the changelog to include #13637
tombuildsstuff Apr 18, 2017
bcacf3a
Update ldlogo
sethvargo Apr 18, 2017
507917d
provider/fastly: upgrade go-fastly to fix #12910 (#13648)
aerostitch Apr 18, 2017
4a78258
Update CHANGELOG.md
catsby Apr 18, 2017
98ffa6b
Merge remote-tracking branch 'hashicorp/master'
StephenWeatherford Apr 18, 2017
f712880
Lock Route Table / Subnets
whiskeyjay Apr 14, 2017
8ea5bb3
Merge branch 'subnetRTFix' of https://github.com/whiskeyjay/terraform…
whiskeyjay Apr 18, 2017
1320347
Fix another issue from #11625 that's causing null entries in ssh_keys
StephenWeatherford Apr 17, 2017
c42b238
Added check for empty strings in resource id parsing logic.
whiskeyjay Apr 19, 2017
8057c86
reverting breaking changes on storage_os_disk and storage_image_refer…
sozercan Apr 19, 2017
6c13f36
core: Bump AutoRest Dep
grubernaut Apr 19, 2017
af5e22c
don't leave WaitForState goroutine running
jbardin Apr 19, 2017
6601b9b
adjust the inconsistent_negative test to match
jbardin Apr 19, 2017
3bf354b
bump go-oracle-compute vendor
grubernaut Apr 19, 2017
6bc3610
removing extraneous code
mbfrahry Apr 19, 2017
86d7c47
Change cidrhost() to get IP from end of the range when negative numbe…
Apr 19, 2017
cfa31b5
Update CHANGELOG.md
apparentlymart Apr 19, 2017
03b8219
`roles` deprecated in examples (#13769)
msysyamamoto Apr 19, 2017
596f05b
Fix govet errors (#13774)
cblecker Apr 19, 2017
3c6287c
Vendored AWS CognitoIdentity Service (#13771)
Ninir Apr 19, 2017
53ff003
Merge pull request #13767 from hashicorp/f-bump-autorest-dep
grubernaut Apr 19, 2017
9893abe
Update CHANGELOG.md
grubernaut Apr 19, 2017
c57e073
Merge pull request #13745 from bhood4/master
josephholsten Apr 19, 2017
f5df442
provider/aws: Bump AWS SDK to 1.8.13 (#13775)
stack72 Apr 19, 2017
1608f55
Added error check
mbfrahry Apr 19, 2017
07c0f95
Merge pull request #13772 from hashicorp/p-aws-multi-zone-instance
mbfrahry Apr 19, 2017
3d315ba
update spelling of Bitbucket
maryelizbeth Apr 19, 2017
3fa3ce6
Merge pull request #13788 from hashicorp/docs-update-bitbucket-branding
sethvargo Apr 19, 2017
d157eea
website: Correct capitalization of "Bitbucket"
apparentlymart Apr 19, 2017
af1628e
add refreshGracePeriod
jbardin Apr 19, 2017
eb4b459
fix tests affected by refreshGracePeriod
jbardin Apr 19, 2017
14bea66
add test for proper cancelation
jbardin Apr 19, 2017
4c3a053
lint errors
jbardin Apr 19, 2017
7f3c8e4
move this test to new region
catsby Apr 19, 2017
f5cda34
Merge pull request #13778 from hashicorp/jbardin/GH-13617
jbardin Apr 19, 2017
99a7309
Fix typo in aws-two-tier example (#13790)
dj80hd Apr 20, 2017
8a70108
fix a word in aws_iam_role_policy error msg (#13794)
boompig Apr 20, 2017
8706d21
Fixing the import test by adding missing formatting values
tombuildsstuff Apr 20, 2017
1775d48
Merge pull request #13791 from whiskeyjay/subnetRTFix
tombuildsstuff Apr 20, 2017
30b6d69
Updating to include #13791
tombuildsstuff Apr 20, 2017
6e698fd
Merge pull request #13755 from StephenWeatherford/11625c
tombuildsstuff Apr 20, 2017
72f2a31
Including #13755 in the changelog
tombuildsstuff Apr 20, 2017
e667411
website: Fix spacing of literal "terraform console" (#13807)
iamjarvo Apr 20, 2017
9bd50a1
provider/google: BigQuery Dataset (#13436)
heimweh Apr 20, 2017
1157967
Update CHANGELOG.md
danawillow Apr 20, 2017
6262a73
provider/rabbitmq: Allow users without tags (#13798)
jtopjian Apr 20, 2017
7f4a371
Update CHANGELOG.md
stack72 Apr 20, 2017
7925b76
provider/aws: Change s3_bucket documentation example to work (#13811)
terraformbot Apr 20, 2017
28d71e6
provider/github: Implements github_branch_protection (#10476)
alindeman Apr 20, 2017
e4af2a6
Update CHANGELOG.md
stack72 Apr 20, 2017
195ad5e
provider/logentries: Refresh from state when resources not found (#13…
stack72 Apr 20, 2017
164a596
Update CHANGELOG.md
stack72 Apr 20, 2017
35388cb
Merge pull request #13468 from hashicorp/f-oracle-compute
grubernaut Apr 20, 2017
bf8374c
Update CHANGELOG.md
grubernaut Apr 20, 2017
3f0934b
provider/aws: Add aws_kinesis_stream data source (#13562)
cbroglie Apr 20, 2017
24c3310
Update CHANGELOG.md
stack72 Apr 20, 2017
565f0a4
`roles` deprecated in docs & code error message (#13622)
Dominik-K Apr 20, 2017
600a117
Merge pull request #13671 from JDiPierro/google_address_name_fix
Apr 20, 2017
fa5cc7e
website: Fix mobile link to correct project (#13819)
vancluever Apr 20, 2017
d5207e1
Add ability to associate healthcheck to a backend (#13539)
jonoden Apr 20, 2017
280b9cf
Update CHANGELOG.md
stack72 Apr 20, 2017
f3b5a88
Add `bucket_prefix` to `aws_s3_bucket` (#13274)
joshuaspence Apr 20, 2017
6e489a5
Update CHANGELOG.md
stack72 Apr 20, 2017
cf775de
config: Add 'list' to variable type error message
justincampbell Apr 20, 2017
c1c3127
config: Generate error copy from valid types map
justincampbell Apr 20, 2017
85ecb06
Merge remote-tracking branch 'upstream/master'
whiskeyjay Apr 20, 2017
569dbd5
Fix crash in import azurerm_local_network_gateway
whiskeyjay Mar 29, 2017
45c345e
Better error message for LNG import error.
whiskeyjay Mar 30, 2017
e2dfa5b
Even better error message.
whiskeyjay Mar 31, 2017
a2b7f8c
Revert "Even better error message."
whiskeyjay Mar 31, 2017
355b529
Revert "Better error message for LNG import error."
whiskeyjay Mar 31, 2017
8a2eabe
Revert "Fix crash in import azurerm_local_network_gateway"
whiskeyjay Mar 31, 2017
99f8d40
provider/azurerm: Fix crash when importing Local Network Gateway (#9198)
whiskeyjay Mar 31, 2017
867a5f0
Added support for Managed Disks in VMSS
echuvyrov Apr 17, 2017
31f9680
Minor VMSS tweaks
echuvyrov Apr 21, 2017
8b92ad1
Merged VMSS changes for OS and Data Disks
echuvyrov Apr 23, 2017
ea58885
Merging VMSS with Managed Disks Changes
echuvyrov Apr 23, 2017
ea14662
Merging VMSS with Managed Disks Changes for OS and Data disks
echuvyrov Apr 23, 2017
b973b1d
added vmss with managed disk support
sozercan Apr 15, 2017
e190823
Update vmss docs
sozercan Apr 16, 2017
4d2a377
update vmss test
sozercan Apr 16, 2017
dcdf38d
added vmss managed disk import test
sozercan Apr 17, 2017
a1abce2
update vmss tests
sozercan Apr 17, 2017
3b4a612
Merging VMSS with Managed Disks Changes for OS and Data disks
echuvyrov Apr 23, 2017
72d8a24
reverting breaking changes on storage_os_disk and storage_image_refer…
sozercan Apr 19, 2017
3cb8a10
Fix crash in import azurerm_local_network_gateway
whiskeyjay Mar 29, 2017
065fd58
Better error message for LNG import error.
whiskeyjay Mar 30, 2017
dd08717
Even better error message.
whiskeyjay Mar 31, 2017
088ee30
Revert "Even better error message."
whiskeyjay Mar 31, 2017
8b48ffc
Revert "Better error message for LNG import error."
whiskeyjay Mar 31, 2017
36553cb
Revert "Fix crash in import azurerm_local_network_gateway"
whiskeyjay Mar 31, 2017
df061f4
provider/azurerm: Fix crash when importing Local Network Gateway (#9198)
whiskeyjay Mar 31, 2017
fdf5531
Added support for Managed Disks in VMSS
echuvyrov Apr 17, 2017
e0358b1
Minor VMSS tweaks
echuvyrov Apr 21, 2017
bc2d9f1
Merged VMSS changes for OS and Data Disks
echuvyrov Apr 23, 2017
d694cdd
Merging VMSS with Managed Disks Changes for OS and Data disks
echuvyrov Apr 23, 2017
70cbdce
Merging VMSS with Managed Disks Changes for OS and Data disks
echuvyrov Apr 23, 2017
bf854bb
Merge branch 'vmssmanageddisks' of https://github.com/harijayms/terra…
echuvyrov Apr 23, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,9 @@ Implementing a new resource is a good way to learn more about how Terraform
interacts with upstream APIs. There are plenty of examples to draw from in the
existing resources, but you still get to implement something completely new.

- [ ] __Minimal LOC__: It can be inefficient for both the reviewer
and author to go through long feedback cycles on a big PR with many
resources. We therefore encourage you to only submit **1 resource at a time**.
- [ ] __Acceptance tests__: New resources should include acceptance tests
covering their behavior. See [Writing Acceptance
Tests](#writing-acceptance-tests) below for a detailed guide on how to
Expand All @@ -223,6 +226,11 @@ Implementing a new provider gives Terraform the ability to manage resources in
a whole new API. It's a larger undertaking, but brings major new functionality
into Terraform.

- [ ] __Minimal initial LOC__: Some providers may be big and it can be
inefficient for both reviewer & author to go through long feedback cycles
on a big PR with many resources. We encourage you to only submit
the necessary minimum in a single PR, ideally **just the first resource**
of the provider.
- [ ] __Acceptance tests__: Each provider should include an acceptance test
suite with tests for each resource should include acceptance tests covering
its behavior. See [Writing Acceptance Tests](#writing-acceptance-tests) below
Expand Down
80 changes: 77 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,80 @@
## 0.9.3 (unreleased)
## 0.9.4 (Unreleased)

FEATURES:

* **New Provider:** `opc` - Oracle Public Cloud [GH-13468]
* **New Data Source:** `aws_kms_alias` [GH-13669]
* **New Data Source:** `aws_kinesis_stream` [GH-13562]
* **New Data Source:** `google_compute_network` [GH-12442]
* **New Data Source:** `google_compute_subnetwork` [GH-12442]
* **New Resource:** `local_file` for creating local files (please see the docs for caveats) [GH-12757]
* **New Resource:** `alicloud_ess_scalinggroup` [GH-13731]
* **New Resource:** `alicloud_ess_scalingconfiguration` [GH-13731]
* **New Resource:** `alicloud_ess_scalingrule` [GH-13731]
* **New Resource:** `alicloud_ess_schedule` [GH-13731]
* **New Resource:** `alicloud_snat_entry` [GH-13731]
* **New Resource:** `alicloud_forward_entry` [GH-13731]
* **New Resource:** `github_branch_protection` [GH-10476]
* **New Resource:** `google_bigquery_dataset` [GH-13436]


IMPROVEMENTS:
* config: The interpolation function `cidrhost` now accepts a negative host number to count backwards from the end of the range [GH-13765]
* state/remote/swift: Support Openstack request logging [GH-13583]
* provider/aws: Add an option to skip getting the supported EC2 platforms [GH-13672]
* provider/aws: Add `name_prefix` support to `aws_cloudwatch_log_group` [GH-13273]
* provider/aws: Add `bucket_prefix` to `aws_s3_bucket` [GH-13274]
* provider/azurerm: VM Scale Sets - import support [GH-13464]
* provider/azurerm: Allow Azure China region support [GH-13767]
* provider/digitalocean: Export droplet prices [GH-13720]
* provider/google: `google_compute_address` and `google_compute_global_address` are now importable [GH-13270]
* provider/vault: `vault_generic_secret` resource can now optionally detect drift if it has appropriate access [GH-11776]

BUG FIXES:

* core: Add the close provider/provisioner transformers back [GH-13102]
* core: Fix a crash condition by improving the flatmap.Expand() logic [GH-13541]
* provider/alicloud: Fix create PrePaid instance [GH-13662]
* provider/alicloud: Fix allocate public ip error [GH-13268]
* provider/alicloud: alicloud_security_group_rule: check ptr before use it [GH-13731)
* provider/alicloud: alicloud_instance: fix ecs internet_max_bandwidth_out cannot set zero bug [GH-13731]
* provider/aws: Fix DB Parameter Group Name [GH-13279]
* provider/aws: Increase default number of retries from 11 to 25 [GH-13673]
* provider/aws: Use mutex & retry for WAF change operations [GH-13656]
* provider/aws: Remove aws_vpc_dhcp_options if not found [GH-13610]
* provider/aws: Remove aws_network_acl_rule if not found [GH-13608]
* provider/aws: Allow GovCloud KMS ARNs to pass validation in `kms_key_id` attributes [GH-13699]
* provider/azurerm: azurerm_redis_cache resource missing hostname [GH-13650]
* provider/azurerm: Locking around Network Security Group / Subnets [GH-13637]
* provider/azurerm: Locking route table on subnet create/delete [GH-13791]
* provider/azurerm: VM's - fixes a bug where ssh_keys could contain a null entry [GH-13755]
* provider/fastly: Fix issue with using 0 for `default_ttl` [GH-13648]
* provider/fastly: Add ability to associate a healthcheck to a backend [GH-13539]
* provider/google: Stop setting the id when project creation fails [GH-13644]
* provider/logentries: Refresh from state when resources not found [GH-13810]
* provider/newrelic: newrelic_alert_condition - `condition_scope` must be `application` or `instance` [GH-12972]
* provider/openstack: Fix updating Ports [GH-13604]
* provider/rabbitmq: Allow users without tags [GH-13798]

## 0.9.3 (April 12, 2017)

BACKWARDS INCOMPATIBILITIES / NOTES:
* provider/aws: Fix a critical bug in `aws_emr_cluster` in order to preserve the ordering
of any arguments in `bootstrap_action`. Terraform will now enforce the ordering
from the configuration. As a result, `aws_emr_cluster` resources may need to be
recreated, as there is no API to update them in-place [GH-13580]

FEATURES:

* **New Resource:** `aws_api_gateway_method_settings` [GH-13542]
* **New Resource:** `aws_api_gateway_stage` [GH-13540]
* **New Resource:** `aws_iam_openid_connect_provider` [GH-13456]
* **New Resource:** `aws_lightsail_static_ip` [GH-13175]
* **New Resource:** `aws_lightsail_static_ip_attachment` [GH-13207]
* **New Resource:** `aws_ses_domain_identity` [GH-13098]
* **New Resource:** `azurerm_managed_disk` [GH-12455]
* **New Resource:** `kubernetes_persistent_volume` [GH-13277]
* **New Resource:** `kubernetes_persistent_volume_claim` [GH-13527]
* **New Resource:** `kubernetes_secret` [GH-12960]
* **New Data Source:** `aws_iam_role` [GH-13213]

Expand All @@ -16,6 +83,7 @@ IMPROVEMENTS:
* core: add `-lock-timeout` option, which will block and retry locks for the given duration [GH-13262]
* core: new `chomp` interpolation function which returns the given string with any trailing newline characters removed [GH-13419]
* backend/remote-state: Add support for assume role extensions to s3 backend [GH-13236]
* backend/remote-state: Filter extra entries from s3 environment listings [GH-13596]
* config: New interpolation functions `basename` and `dirname`, for file path manipulation [GH-13080]
* helper/resource: Allow unknown "pending" states [GH-13099]
* command/hook_ui: Increase max length of state IDs from 20 to 80 [GH-13317]
Expand All @@ -40,11 +108,13 @@ IMPROVEMENTS:
* provider/aws: Add support for evaluate_low_sample_count_percentiles to cloudwatch_metric_alarm [GH-13371]
* provider/aws: Add `name_prefix` to `aws_alb_target_group` [GH-13442]
* provider/aws: Add support for EMR clusters to aws_appautoscaling_target [GH-13368]
* provider/aws: Add import capabilities to codecommit_repository [GH-13577]
* provider/bitbucket: Improved error handling [GH-13390]
* provider/cloudstack: Do not force a new resource when updating `cloudstack_loadbalancer_rule` members [GH-11786]
* provider/fastly: Add support for Sumologic logging [GH-12541]
* provider/github: Handle the case when issue labels already exist [GH-13182]
* provider/google: Mark `google_container_cluster`'s `client_key` & `password` inside `master_auth` as sensitive [GH-13148]
* provider/google: Add node_pool field in resource_container_cluster [GH-13402]
* provider/kubernetes: Allow defining custom config context [GH-12958]
* provider/openstack: Add support for 'value_specs' options to `openstack_compute_servergroup_v2` [GH-13380]
* provider/statuscake: Add support for StatusCake TriggerRate field [GH-13340]
Expand Down Expand Up @@ -84,19 +154,23 @@ BUG FIXES:
* provider/aws: Update ElasticTranscoderPreset to have default for MaxFrameRate [GH-13422]
* provider/aws: Fix aws_ami_launch_permission refresh when AMI disappears [GH-13469]
* provider/aws: Add support for updating SSM documents [GH-13491]
* provider/aws: Fix panic on nil route configs [GH-13548]
* provider/azurerm: Network Security Group - ignoring protocol casing at Import time [GH-13153]
* provider/azurerm: Fix crash when importing Local Network Gateways [GH-13261]
* provider/azurerm: Defaulting the value of `duplicate_detection_history_time_window` for `azurerm_servicebus_topic` [GH-13223]
* provider/azurerm: Event Hubs making the Location field idempotent [GH-13570]
* provider/bitbucket: Fixed issue where provider would fail with an "EOF" error on some operations [GH-13390]
* provider/dnsimple: Handle 404 on DNSimple records [GH-13131]
* provider/kubernetes: Use PATCH to update namespace [GH-13114]
* provider/ns1: No splitting answer on SPF records. [GH-13260]
* provider/openstack: Refresh volume_attachment from state if NotFound [GH-13342]
* provider/openstack: Add SOFT_DELETED to delete status [GH-13444]
* provider/profitbricks: Changed output type of ips variable of ip_block ProfitBricks resource [GH-13290]
* provider/template: Fix panic in cloudinit config [GH-13581]

## 0.9.2 (March 28, 2017)

BACKWARDS IMCOMPATIBILITIES / NOTES:
BACKWARDS INCOMPATIBILITIES / NOTES:

* provider/openstack: Port Fixed IPs are able to be read again using the original numerical notation. However, Fixed IP configurations which are obtaining addresses via DHCP must now use the `all_fixed_ips` attribute to reference the returned IP address.
* Environment names must be safe to use as a URL path segment without escaping, and is enforced by the CLI.
Expand Down Expand Up @@ -177,7 +251,7 @@ BUG FIXES:

## 0.9.1 (March 17, 2017)

BACKWARDS IMCOMPATIBILITIES / NOTES:
BACKWARDS INCOMPATIBILITIES / NOTES:

* provider/pagerduty: the deprecated `name_regex` field has been removed from vendor data source ([#12396](https://github.com/hashicorp/terraform/issues/12396))

Expand Down
4 changes: 3 additions & 1 deletion backend/local/backend_apply.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ func (b *Local) opApply(
doneCh := make(chan struct{})
go func() {
defer close(doneCh)
applyState, applyErr = tfCtx.Apply()
_, applyErr = tfCtx.Apply()
// we always want the state, even if apply failed
applyState = tfCtx.State()

/*
// Record any shadow errors for later
Expand Down
24 changes: 17 additions & 7 deletions backend/remote-state/s3/backend_state.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package s3

import (
"errors"
"fmt"
"sort"
"strings"
Expand Down Expand Up @@ -30,29 +31,34 @@ func (b *Backend) States() ([]string, error) {
return nil, err
}

var envs []string
envs := []string{backend.DefaultStateName}
for _, obj := range resp.Contents {
env := keyEnv(*obj.Key)
env := b.keyEnv(*obj.Key)
if env != "" {
envs = append(envs, env)
}
}

sort.Strings(envs)
envs = append([]string{backend.DefaultStateName}, envs...)
sort.Strings(envs[1:])
return envs, nil
}

// extract the env name from the S3 key
func keyEnv(key string) string {
parts := strings.Split(key, "/")
func (b *Backend) keyEnv(key string) string {
// we have 3 parts, the prefix, the env name, and the key name
parts := strings.SplitN(key, "/", 3)
if len(parts) < 3 {
// no env here
return ""
}

// shouldn't happen since we listed by prefix
if parts[0] != keyEnvPrefix {
// not our key, so ignore
return ""
}

// not our key, so don't include it in our listing
if parts[2] != b.keyName {
return ""
}

Expand All @@ -78,6 +84,10 @@ func (b *Backend) DeleteState(name string) error {
}

func (b *Backend) State(name string) (state.State, error) {
if name == "" {
return nil, errors.New("missing state name")
}

client := &RemoteClient{
s3Client: b.s3Client,
dynClient: b.dynClient,
Expand Down
132 changes: 131 additions & 1 deletion backend/remote-state/s3/backend_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ package s3
import (
"fmt"
"os"
"reflect"
"testing"
"time"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/dynamodb"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/hashicorp/terraform/backend"
"github.com/hashicorp/terraform/state/remote"
"github.com/hashicorp/terraform/terraform"
)

// verify that we are doing ACC tests or the S3 tests specifically
Expand Down Expand Up @@ -84,7 +87,7 @@ func TestBackendLocked(t *testing.T) {
testACC(t)

bucketName := fmt.Sprintf("terraform-remote-s3-test-%x", time.Now().Unix())
keyName := "testState"
keyName := "test/state"

b1 := backend.TestBackendConfig(t, New(), map[string]interface{}{
"bucket": bucketName,
Expand All @@ -108,6 +111,133 @@ func TestBackendLocked(t *testing.T) {
backend.TestBackend(t, b1, b2)
}

// add some extra junk in S3 to try and confuse the env listing.
func TestBackendExtraPaths(t *testing.T) {
testACC(t)
bucketName := fmt.Sprintf("terraform-remote-s3-test-%x", time.Now().Unix())
keyName := "test/state/tfstate"

b := backend.TestBackendConfig(t, New(), map[string]interface{}{
"bucket": bucketName,
"key": keyName,
"encrypt": true,
}).(*Backend)

createS3Bucket(t, b.s3Client, bucketName)
defer deleteS3Bucket(t, b.s3Client, bucketName)

// put multiple states in old env paths.
s1 := terraform.NewState()
s2 := terraform.NewState()

// RemoteClient to Put things in various paths
client := &RemoteClient{
s3Client: b.s3Client,
dynClient: b.dynClient,
bucketName: b.bucketName,
path: b.path("s1"),
serverSideEncryption: b.serverSideEncryption,
acl: b.acl,
kmsKeyID: b.kmsKeyID,
lockTable: b.lockTable,
}

stateMgr := &remote.State{Client: client}
stateMgr.WriteState(s1)
if err := stateMgr.PersistState(); err != nil {
t.Fatal(err)
}

client.path = b.path("s2")
stateMgr.WriteState(s2)
if err := stateMgr.PersistState(); err != nil {
t.Fatal(err)
}

if err := checkStateList(b, []string{"default", "s1", "s2"}); err != nil {
t.Fatal(err)
}

// put a state in an env directory name
client.path = keyEnvPrefix + "/error"
stateMgr.WriteState(terraform.NewState())
if err := stateMgr.PersistState(); err != nil {
t.Fatal(err)
}
if err := checkStateList(b, []string{"default", "s1", "s2"}); err != nil {
t.Fatal(err)
}

// add state with the wrong key for an existing env
client.path = keyEnvPrefix + "/s2/notTestState"
stateMgr.WriteState(terraform.NewState())
if err := stateMgr.PersistState(); err != nil {
t.Fatal(err)
}
if err := checkStateList(b, []string{"default", "s1", "s2"}); err != nil {
t.Fatal(err)
}

// remove the state with extra subkey
if err := b.DeleteState("s2"); err != nil {
t.Fatal(err)
}

if err := checkStateList(b, []string{"default", "s1"}); err != nil {
t.Fatal(err)
}

// fetch that state again, which should produce a new lineage
s2Mgr, err := b.State("s2")
if err != nil {
t.Fatal(err)
}
if err := s2Mgr.RefreshState(); err != nil {
t.Fatal(err)
}

if s2Mgr.State().Lineage == s2.Lineage {
t.Fatal("state s2 was not deleted")
}
s2 = s2Mgr.State()

// add a state with a key that matches an existing environment dir name
client.path = keyEnvPrefix + "/s2/"
stateMgr.WriteState(terraform.NewState())
if err := stateMgr.PersistState(); err != nil {
t.Fatal(err)
}

// make sure s2 is OK
s2Mgr, err = b.State("s2")
if err != nil {
t.Fatal(err)
}
if err := s2Mgr.RefreshState(); err != nil {
t.Fatal(err)
}

if s2Mgr.State().Lineage != s2.Lineage {
t.Fatal("we got the wrong state for s2")
}

if err := checkStateList(b, []string{"default", "s1", "s2"}); err != nil {
t.Fatal(err)
}
}

func checkStateList(b backend.Backend, expected []string) error {
states, err := b.States()
if err != nil {
return err
}

if !reflect.DeepEqual(states, expected) {
return fmt.Errorf("incorrect states listed: %q", states)
}
return nil
}

func createS3Bucket(t *testing.T, s3Client *s3.S3, bucketName string) {
createBucketReq := &s3.CreateBucketInput{
Bucket: &bucketName,
Expand Down
Loading