Commit Graph

787 Commits

Author SHA1 Message Date
Paddy
53450244c3
Merge pull request #1523 from terraform-providers/paddy_project_read_fix
Ignore API not enabled errors when reading project
2018-05-23 14:53:48 -07:00
Paddy
23acaf2dd3
Merge pull request #1524 from terraform-providers/paddy_eventual_services
Guard against eventually consistent services
2018-05-23 14:53:14 -07:00
The Magician
488b9e86f3 Redis resource (#1485)
<!-- This change is generated by MagicModules. -->
/cc @danawillow
2018-05-23 11:25:48 -07:00
Paddy Carver
4ec59fccea Guard against eventually consistent services
When enabling services, after the waiter returns, list the enabled
services and ensure the ones we enabled are in there. If not, retry. May
not always resolve #1393, but should help. Unfortunately, the real
answer is probably either:

1. For us to try and get the API updated to only return the waiter when
the service will consistently be available. I don't know how feasible
this is, but I'm willing to open a ticket.
2. For us to build retries into ~all our resources to retry for a set
amount of time when a service not enabled error is returned. This would
greatly slow down the provider in the case of the service legitimately
not being enabled, but is how other providers handle this class of
problem.

Unfortunately, due to the eventual consistency at play, this is a hard
issue to reproduce and prove, though it matches with my
experience--while testing this patch, one of the tests failed with the
error that the serviceusage API hadn't been enabled, but only on step 4
of the test, when calls had already succeeded. Which suggests eventual
consistency, to me. Regardless, this patch shouldn't _hurt_ and should
mostly be an imperceptible change to users, and should make instances
like #1393 less likely.
2018-05-23 04:01:05 -07:00
Dana Hoffman
20616e424d
Use new serviceusage API for google_project_service[s] (#1522)
* vendor service usage api

* use serviceusage api instead of servicemanagement for project services

* add bigquery-json to test

* add import for project service

* add serviceusage_operation.go
2018-05-22 17:45:22 -07:00
Paddy Carver
4c40febd4b Ignore API not enabled errors when reading project
When reading a project, both App Engine and Billing would fail if
_neither_ the default project the provider was configured with nor the
project being targeted had the App Engine Admin or Billing APIs
(respectively) enabled. We didn't catch this because our source project
obviously has both enabled.

This fixes the matter by checking the error returned from each of those,
and if it looks like an API not enabled error, logging it at warning
level instead of returning it as an error, which will let the read
proceed as usual.
2018-05-22 16:59:33 -07:00
emily
acaf767f33 Fix panic on empty maintenance window (#1507)
* fix maintenance window panic

* tiny cleanup
2018-05-22 13:31:39 -07:00
Shinichi TAMURA
028ec27ccf Fixed region_backend_service to calc hash using relative path (#1491)
Along the change on region_backend_service.backend[].group to use DiffSuppressFunc (#1487), we also need to change hash function, as [pointed out](https://github.com/terraform-providers/terraform-provider-google/pull/1487#issuecomment-389000239).

Fixed this in a same way regular backend services do.
https://github.com/terraform-providers/terraform-provider-google/blob/v1.12.0/google/resource_compute_backend_service_migrate.go#L102-L103
2018-05-22 13:05:38 -07:00
Tenorio Orta JM
9ac7acc164 Added name and project_id regex validations (#1498) (#1519) 2018-05-22 12:45:28 -07:00
Nathan McKinley
ca83ea530a
Revert #1510 and #1508. (#1515) 2018-05-21 13:09:15 -07:00
Dana Hoffman
bc8f3046ad
initial tf changes needed to support redis (#1513) 2018-05-21 12:01:06 -07:00
Paddy
cd7364d649
Merge pull request #1503 from terraform-providers/paddy_app_engine_app
Add App Engine Application support
2018-05-18 17:12:34 -07:00
Paddy Carver
98b6323342 Fix suggestions from @ndmckinley. 2018-05-18 17:01:40 -07:00
Nathan McKinley
6cc720cad3
File moves to prepare for removing 'resourceManager' hack in Magic Modules. (#1508) 2018-05-18 16:32:05 -07:00
Christoph Tavan
0bcb01266c Add google_logging_project_exclusion resource (#990)
Adds support for log exclusions in billingAccounts, organizations,
folders and projects, see:
https://cloud.google.com/logging/docs/exclusions

```
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./google -v -run=Exclusion -timeout 120m
=== RUN   TestAccLoggingBillingAccountExclusion_basic
=== PAUSE TestAccLoggingBillingAccountExclusion_basic
=== RUN   TestAccLoggingBillingAccountExclusion_update
=== PAUSE TestAccLoggingBillingAccountExclusion_update
=== RUN   TestAccLoggingFolderExclusion_basic
=== PAUSE TestAccLoggingFolderExclusion_basic
=== RUN   TestAccLoggingFolderExclusion_folderAcceptsFullFolderPath
=== PAUSE TestAccLoggingFolderExclusion_folderAcceptsFullFolderPath
=== RUN   TestAccLoggingFolderExclusion_update
=== PAUSE TestAccLoggingFolderExclusion_update
=== RUN   TestAccLoggingOrganizationExclusion_basic
=== PAUSE TestAccLoggingOrganizationExclusion_basic
=== RUN   TestAccLoggingOrganizationExclusion_update
=== PAUSE TestAccLoggingOrganizationExclusion_update
=== RUN   TestAccLoggingProjectExclusion_basic
=== PAUSE TestAccLoggingProjectExclusion_basic
=== RUN   TestAccLoggingProjectExclusion_disablePreservesFilter
=== PAUSE TestAccLoggingProjectExclusion_disablePreservesFilter
=== RUN   TestAccLoggingProjectExclusion_update
=== PAUSE TestAccLoggingProjectExclusion_update
=== CONT  TestAccLoggingBillingAccountExclusion_basic
=== CONT  TestAccLoggingOrganizationExclusion_update
=== CONT  TestAccLoggingProjectExclusion_update
=== CONT  TestAccLoggingFolderExclusion_folderAcceptsFullFolderPath
=== CONT  TestAccLoggingOrganizationExclusion_basic
--- PASS: TestAccLoggingProjectExclusion_update (3.60s)
--- PASS: TestAccLoggingOrganizationExclusion_update (4.40s)
=== CONT  TestAccLoggingFolderExclusion_update
--- PASS: TestAccLoggingOrganizationExclusion_basic (1.90s)
=== CONT  TestAccLoggingFolderExclusion_basic
--- PASS: TestAccLoggingBillingAccountExclusion_basic (6.21s)
=== CONT  TestAccLoggingBillingAccountExclusion_update
--- PASS: TestAccLoggingBillingAccountExclusion_update (5.90s)
=== CONT  TestAccLoggingProjectExclusion_disablePreservesFilter
--- PASS: TestAccLoggingProjectExclusion_disablePreservesFilter (3.90s)
=== CONT  TestAccLoggingProjectExclusion_basic
--- PASS: TestAccLoggingFolderExclusion_folderAcceptsFullFolderPath (16.67s)
--- PASS: TestAccLoggingProjectExclusion_basic (1.96s)
--- PASS: TestAccLoggingFolderExclusion_basic (15.30s)
--- PASS: TestAccLoggingFolderExclusion_update (18.35s)
PASS
ok  	github.com/terraform-providers/terraform-provider-google/google	22.810s
```
2018-05-18 08:55:04 -07:00
The Magician
56481d8316 Add liens resource. (#1484) 2018-05-17 16:33:30 -07:00
Paddy
f78de6b76e Drop the resources we can't support.
IAP has no reasonable support policy, because PATCH is broken, and IAP
must be configured with an OAuth2 client ID and secret that belongs to
the project the app is associated with. There's no programmatic way to
create Clients. But we create the project and the app at the same time,
and we can't update because PATCH is broken. So this just drops IAP. It
also forces all our updates to ForceNew, because we can't update.

Also, adds more test coverage and docs, and fixes import by not relying
on the config for setting app engine info in state.
2018-05-17 14:47:34 -07:00
emily
d360236a8d
Allow bigquery regional location (#1496)
* Allow bigquery regional location

* remove stale comment about location
2018-05-15 14:36:12 -07:00
emily
3cc868b4a9
Fix order of getting project for storage notification topic (#1490)
* fix getting project for storage notification topic

* add more documentation for storage notification topic
2018-05-15 13:30:59 -07:00
Shinichi TAMURA
2d580ea0a2 Compare region_backend_service.backend[].group as a relative path (#1487) 2018-05-14 16:59:27 -07:00
Nathan McKinley
d47687f574
Check current status during apply-time diff. (#1474) 2018-05-14 16:31:24 -07:00
leo-baltus
4a0849eb86 Fixed typo (#1488)
google_project_iam_policy_binding and google_project_iam_policy_member should
read google_project_iam_binding and google_project_iam_policy_member
2018-05-14 10:11:11 -07:00
Vincent Roseberry
dc029dd329
Improve testing for forwarding rule (#1482) 2018-05-14 10:07:59 -07:00
The Magician
5e0d39225f Release generated SSLPolicy (#1478) 2018-05-14 09:52:33 -07:00
Paddy Carver
02a4259c39 Add basic test and fix bugs.
Add a test case that exercises the obvious path, and fix the some of the
bugs it exposed.
2018-05-13 22:49:26 -07:00
The Magician
722c21d78f Re-release generated vpn_gateway (#1479) 2018-05-11 12:06:17 -07:00
The Magician
fff3d612d6 Codegen update: allow all properties to be used in Updates. (#1443) 2018-05-10 15:34:24 -07:00
Nao YONASHIRO
1e38b21854 fix: replica_configuration.password to be sensitive (#1468) 2018-05-10 15:31:07 -07:00
Paddy Carver
765d9af0a3 Beginnings of App Engine app support.
This should have all the code, but who really knows if it works or not,
tbh.
2018-05-10 15:01:22 -07:00
Dana Hoffman
6672e09e9d
add oslogin to the project services tests (#1471) 2018-05-10 10:02:31 -07:00
Dana Hoffman
63277caf39
fix dns import tests (#1470) 2018-05-10 09:26:02 -07:00
Dana Hoffman
93689454f6
use google_project_service for tests that enable the compute api (#1464) 2018-05-09 16:57:30 -07:00
Dana Hoffman
d78725f866
fix ipallocationpolicy test (#1465) 2018-05-09 16:57:01 -07:00
The Magician
da0b6f9d48 Add support for ssl_policy to google_target_https_proxy (#1466) 2018-05-09 15:55:17 -07:00
Nathan McKinley
560e180693
Allow use of provider region, with big caveats in docs. (#1463) 2018-05-09 14:16:49 -07:00
Dana Hoffman
08b5804b70
add ability to retry cloud functions on failure (#1452) 2018-05-09 13:57:54 -07:00
Nathan McKinley
95e84aed83
Change in firewall rule handling so that only one service account (for source / target) is permitted. (#1462) 2018-05-09 13:38:00 -07:00
Shinichi TAMURA
73fe8bcec8 mark google_compute_instance_template's nat_ip as ForceNew (#1444) 2018-05-09 13:18:08 -07:00
Dana Hoffman
337a913cac
use correct region for guest accelerator import test (#1461) 2018-05-09 13:01:23 -07:00
Nathan McKinley
e37c25abe5
Can't move from region to region without a recreate. (#1456) 2018-05-09 12:55:28 -07:00
Dana Hoffman
8907321d60
Roll forward beta scaffolding PR (#1453)
* Revert "Merge pull request #1434 from terraform-providers/paddy_revert_beta"

This reverts commit 118cd71201, reversing
changes made to d59fcbbc59.

* add ConvertSelfLinkToV1 calls to places where beta links are stored
2018-05-09 11:24:40 -07:00
Nathan McKinley
4c4b4be413
When a disk shrinks, require ForceNew. (#1460) 2018-05-09 10:59:48 -07:00
Nathan McKinley
04a475d73d
Check provider level zone as well when parsing zonal values. (#1455) 2018-05-08 16:30:31 -07:00
Nathan McKinley
11c8a52d35
Modify resourcemanager API to be more consistent with compute API. (#1454) 2018-05-08 15:49:57 -07:00
Rene Kroon
dda26771d3 #843: Add policy support to storage buckets (#1190) 2018-05-08 14:00:48 -07:00
Nathan McKinley
b3ceef76ee
Get region from provider in case of import (or in case of not-set-in-resource) (#1447) 2018-05-08 11:23:35 -07:00
Vincent Roseberry
9cb159f992
ValidateFunc accepts blank value for cluster_ipv4_cidr (#1446)
* ValidateFunc accepts blank value for cluster_ipv4_cidr in google_container_cluster

* Simplify tests
2018-05-07 15:34:56 -07:00
Vincent Roseberry
b7ae1e77bd
Remove stale comments and checks for beta API in address (#1442)
* Remove stale comments and check around beta API

* Add the check for empty addresstype
2018-05-07 15:04:20 -07:00
Vincent Roseberry
038cd0b7d1
Add support for regional cluster in datasource (#1441) 2018-05-07 15:02:14 -07:00
Dan Couture
4f7a6c828f Add new google_cloudbuild_trigger resource (#1357) 2018-05-07 12:53:34 -07:00
Paddy Carver
a91951d3f8 Revert "remove dead api version code and move things around"
This reverts commit 7e291ce8392dc2766a158dd8d70007dcf791aa44.
2018-05-04 07:54:08 -07:00
Paddy Carver
f91c62d598 Revert "remove switch statements between api versions for container"
This reverts commit 9c85e57b8c7e84de385995df7ca04dd93e843f5b.
2018-05-04 07:52:42 -07:00
Paddy Carver
aa2626b490 Revert "remove switch statements between api versions for compute"
This reverts commit bf1b3a24e8c1cac832e74d9d0e145c7010a4c2f1.
2018-05-04 07:51:45 -07:00
Dana Hoffman
d59fcbbc59
Remove switch statements between api versions for container; clean up dead version code (#1427)
* remove switch statements between api versions for container

* remove dead api version code and move things around
2018-05-03 21:51:54 -07:00
The Magician
9c5f5f63a3 Disable autogeneration for google_compute_vpn_gateway (#1432)
* Disable autogeneration for google_compute_vpn_gateway

* Revert unrelated change to backend bucket
2018-05-03 17:50:48 -07:00
Vincent Roseberry
1567ac0879
Store region name only for vpn gateway (#1431) 2018-05-03 17:44:36 -07:00
Paddy
afcd482297
Merge pull request #1387 from terraform-providers/paddy_spanner_instance_iam
Add support for IAM on Spanner Instances.
2018-05-03 15:46:31 -07:00
Vincent Roseberry
f8ad4a2054
Always parse fixed64 string to int64 (#1429) 2018-05-03 15:35:17 -07:00
Dana Hoffman
30409d315e
Remove switch statements between api versions for compute (#1422) 2018-05-03 12:24:21 -07:00
Vincent Roseberry
135f5c4144
Allow setting folder_id to empty string on google_project (#1425)
* Allow setting folder_id to empty string on google_project

* Simplify logic

* Update Changelog
2018-05-03 09:53:22 -07:00
Paddy
325a118053 Merge branch 'master' into paddy_flow_logs 2018-05-02 11:47:43 -07:00
Paddy
5ad4414931 Don't reimplement policy translation.
We already have this in spaner_database_iam, no need to reimplement it
here.
2018-05-02 11:44:58 -07:00
Paddy Carver
6cb9f4c51c Merge branch 'master' into paddy_spanner_instance_iam 2018-05-02 11:39:08 -07:00
Paddy Carver
0ae3daaa5d Merge branch 'master' into paddy_spanner_database_iam 2018-05-02 10:44:39 -07:00
Paddy
87a7af9c2b Merge branch 'master' into paddy_spanner_instance_iam 2018-05-02 10:40:20 -07:00
The Magician
77a02b2b68 Generate google_target_tcp_proxy using Magic Modules (#1415) 2018-05-02 10:01:37 -07:00
The Magician
7eac32ab1f Generate google_target_tcp_proxy using Magic Module (#1406) 2018-05-01 15:04:56 -07:00
The Magician
1d05aa3a3a Generate google_vpn_gateway using Magic Module (#1409) 2018-05-01 13:48:56 -07:00
The Magician
2759e8a801 Add more test cases to TestReplaceVars (#1413) 2018-05-01 13:41:35 -07:00
Vincent Roseberry
7fd468c034
Delete dead code (#1411) 2018-05-01 12:31:43 -07:00
Vincent Roseberry
bc0b25e0c2
StateFunc for GetResourceNameFromSelfLink (#1412) 2018-05-01 12:31:18 -07:00
Paddy
b5ec48cdcc
Merge pull request #1408 from terraform-providers/paddy_list_policy_nil
Check that org listpolicy isn't nil.
2018-04-30 16:24:09 -07:00
Paddy
c5580ca12d
Merge pull request #1407 from terraform-providers/paddy_sql_err
Check error in SQL user test.
2018-04-30 16:23:54 -07:00
The Magician
f04a1d0eba Don't silently fail when d.Set fails at read time (#1403) 2018-04-30 16:18:17 -07:00
Paddy Carver
1a169a5900 Check that org listpolicy isn't nil.
Fix a panic in our test that is caused by a ListPolicy being nil. I
assume, but cannot verify, that this is an API change in that it may now
send back a nil listpolicy if a default is used.
2018-04-30 16:15:27 -07:00
Paddy Carver
179e075d72 Check error in SQL user test.
This fixes a panic in our tests.
2018-04-30 16:10:07 -07:00
Vincent Roseberry
e58e099b1a
Generate resource entries in ResourcesMap in provider.go for generated resources. (#1397) 2018-04-30 14:30:43 -07:00
The Magician
f2d67fd0dd Autogenerate provider-compute-gen.go file (#1402) 2018-04-30 13:22:35 -07:00
emily
ac64624adc
Add issue_client_certificate to cluster (#1396) 2018-04-27 18:06:26 -07:00
The Magician
5a1fe4f0be Simplify the custom update calls by only sending the required fields (#1395) 2018-04-27 16:33:57 -07:00
The Magician
df568b188c Release generated GlobalAddress (#1379) 2018-04-27 14:53:45 -07:00
The Magician
949b33ab20 Magic Modules changes. (#1392) 2018-04-27 10:20:39 -07:00
The Magician
b3a722ee39 Generate google_target_http_proxy using MagicModule (#1391) 2018-04-26 18:06:10 -07:00
emily
204a5f9078
Allow compute/app engine default service account ids in regex (#1390) 2018-04-26 15:46:56 -07:00
Paddy Carver
e686ea5d9b Add support for IAM on Spanner Instances.
Support managing IAM policies on Spanner instances.
2018-04-26 07:45:21 -07:00
Paddy Carver
1f5008655d Add IAM resources for Spanner databases.
Add new policy, binding, and member IAM resources for Spanner databases.
Fixes #1178.
2018-04-26 07:30:39 -07:00
Paddy Carver
0a469bfa49 Support subnetwork flow logs.
Add the `enable_flow_logs` field to our subnetwork resource, so we can
specify whether [flow logs][1] should be enabled in Terraform configs.

Note that this behavior isn't explicitly documented yet, but it has made
it into the beta API client.

[1]: https://cloud.google.com/vpc/docs/using-flow-logs
2018-04-26 04:49:16 -07:00
Vincent Roseberry
31a5c9d93c
Use v1 API for google_compute_address (#1384) 2018-04-25 15:13:59 -07:00
Nathan McKinley
0a02d8eaef
Fix failing compute tests which use AccessConfigs (#1383) 2018-04-25 13:26:24 -07:00
Nathan McKinley
7e5ce3f679
Bump timeouts - users are still experiencing failures. (#1381) 2018-04-25 12:24:52 -07:00
Darren Haken
2b1b668953 #1300 Supporting regional clusters for node pools (#1320)
This PR also switched us to using the beta API in all cases, and that had a side effect which is worth noting, note included here for posterity.

=====
The problem is, we add a GPU, and as per the docs, GKE adds a taint to
the node pool saying "don't schedule here unless you tolerate GPUs",
which is pretty sensible.

Terraform doesn't know about that, because it didn't ask for the taint
to be added. So after apply, on refresh, it sees the state of the world
(1 taint) and the state of the config (0 taints) and wants to set the
world equal to the config. This introduces a diff, which makes the test
fail - tests fail if there's a diff after they run.

Taints are a beta feature, though. :) And since the config doesn't
contain any taints, terraform didn't see any beta features in that node
pool ... so it used to send the request to the v1 API. And since the v1
API didn't return anything about taints (since they're a beta feature),
terraform happily checked the state of the world (0 taints I know about)
vs the config (0 taints), and all was well.

This PR makes every node pool refresh request hit the beta API. So now
terraform finds out about the taints (which were always there) and the
test fails (which it always should have done).

The solution is probably to write a little bit of code which suppresses
the report of the diff of any taint with value 'nvidia.com/gpu', but
only if GPUs are enabled. I think that's something that can be done.
2018-04-24 17:55:21 -07:00
The Magician
71df52d1aa Remove redundant &schema.Schema in schema map (#1377) 2018-04-24 16:39:20 -07:00
Nick Jacques
0d309b1e56 Update ssl_policy to use v1 API (#1368)
* Update compute/v1 to latest

* Update ssl_policy resource and test to v1 API
2018-04-24 14:43:00 -07:00
The Magician
e02587855a Release autogenerated google_compute_target_ssl_proxy resource (#1373) 2018-04-24 14:01:53 -07:00
The Magician
0544ef468f ResourceRef fields accept name-only or partial/full self_link (#1366) 2018-04-23 16:19:26 -07:00
Nathan McKinley
de9363502b
Fix for networkPolicyEnabled test - must explicitly add default network policy. (#1363) 2018-04-20 11:39:20 -07:00
Nathan McKinley
d3bbfbd22b
Add DNS PTR record to Compute Instance (#1349) 2018-04-20 11:14:38 -07:00
Paddy Carver
33750deb23 Bump GKE version.
Tests were failing with an invalid version error, so bumping the version
like this should fix the tests.
2018-04-19 14:47:55 -07:00
Dana Hoffman
51f9424dbf Fix IAM tests (#1337) 2018-04-19 14:30:20 -07:00
Nathan McKinley
039e82cf6d
Regional cluster update support for additional zones (#1359) 2018-04-19 14:17:38 -07:00