Skip to content

Commit 91251d8

Browse files
authored
Merge pull request #752 from apichick/shared-vpc-host-dependency
Added dependency on google_compute_shared_vpc_host_project.shared_vpc…
2 parents 0b721a3 + 4069e42 commit 91251d8

File tree

7 files changed

+55
-21
lines changed

7 files changed

+55
-21
lines changed

modules/project/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ output "compute_robot" {
404404
| [name](outputs.tf#L25) | Project name. | |
405405
| [number](outputs.tf#L38) | Project number. | |
406406
| [project_id](outputs.tf#L51) | Project id. | |
407-
| [service_accounts](outputs.tf#L68) | Product robot service accounts in project. | |
408-
| [sink_writer_identities](outputs.tf#L84) | Writer identities created for each sink. | |
407+
| [service_accounts](outputs.tf#L69) | Product robot service accounts in project. | |
408+
| [sink_writer_identities](outputs.tf#L85) | Writer identities created for each sink. | |
409409

410410
<!-- END TFDOC -->

modules/project/outputs.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ output "project_id" {
5757
google_project_organization_policy.boolean,
5858
google_project_organization_policy.list,
5959
google_project_service.project_services,
60+
google_compute_shared_vpc_host_project.shared_vpc_host,
6061
google_compute_shared_vpc_service_project.service_projects,
6162
google_project_iam_member.shared_vpc_host_robots,
6263
google_kms_crypto_key_iam_member.service_identity_cmek,

tests/modules/project/fixture/main.tf

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
module "test" {
1818
source = "../../../../modules/project"
19-
name = "my-project"
20-
billing_account = "12345-12345-12345"
19+
name = var.name
20+
billing_account = var.billing_account
2121
auto_create_network = var.auto_create_network
2222
custom_roles = var.custom_roles
2323
iam = var.iam
@@ -36,4 +36,6 @@ module "test" {
3636
services = var.services
3737
logging_sinks = var.logging_sinks
3838
logging_exclusions = var.logging_exclusions
39+
shared_vpc_host_config = var.shared_vpc_host_config
3940
}
41+

tests/modules/project/fixture/variables.tf

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@
1414
* limitations under the License.
1515
*/
1616

17+
variable "name" {
18+
type = string
19+
default = "my-project"
20+
}
21+
22+
variable "billing_account" {
23+
type = string
24+
default = "12345-12345-12345"
25+
}
26+
1727
variable "auto_create_network" {
1828
type = bool
1929
default = false
@@ -115,3 +125,17 @@ variable "logging_exclusions" {
115125
type = map(string)
116126
default = {}
117127
}
128+
129+
variable "shared_vpc_host_config" {
130+
type = object({
131+
enabled = bool
132+
service_projects = list(string)
133+
})
134+
default = {
135+
enabled = true
136+
service_projects = [
137+
"my-service-project-1",
138+
"my-service-project-2"
139+
]
140+
}
141+
}

tests/modules/project/test_plan.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,36 @@
1515
def test_prefix(plan_runner):
1616
"Test project id prefix."
1717
_, resources = plan_runner()
18-
assert len(resources) == 1
19-
assert resources[0]['values']['name'] == 'my-project'
18+
assert len(resources) == 4
19+
[project_resource] = [r for r in resources if r['address'] == 'module.test.google_project.project[0]']
20+
assert project_resource['values']['name'] == 'my-project'
2021
_, resources = plan_runner(prefix='foo')
21-
assert len(resources) == 1
22-
assert resources[0]['values']['name'] == 'foo-my-project'
22+
assert len(resources) == 4
23+
[project_resource] = [r for r in resources if r['address'] == 'module.test.google_project.project[0]']
24+
assert project_resource['values']['name'] == 'foo-my-project'
2325

2426

2527
def test_parent(plan_runner):
2628
"Test project parent."
2729
_, resources = plan_runner(parent='folders/12345678')
28-
assert len(resources) == 1
29-
assert resources[0]['values']['folder_id'] == '12345678'
30-
assert resources[0]['values'].get('org_id') == None
30+
assert len(resources) == 4
31+
[project_resource] = [r for r in resources if r['address'] == 'module.test.google_project.project[0]']
32+
assert project_resource['values']['folder_id'] == '12345678'
33+
assert project_resource['values'].get('org_id') == None
3134
_, resources = plan_runner(parent='organizations/12345678')
32-
assert len(resources) == 1
33-
assert resources[0]['values']['org_id'] == '12345678'
34-
assert resources[0]['values'].get('folder_id') == None
35+
assert len(resources) == 4
36+
[project_resource] = [r for r in resources if r['address'] == 'module.test.google_project.project[0]']
37+
assert project_resource['values']['org_id'] == '12345678'
38+
assert project_resource['values'].get('folder_id') == None
3539

3640

3741
def test_no_parent(plan_runner):
3842
"Test null project parent."
3943
_, resources = plan_runner()
40-
assert len(resources) == 1
41-
assert resources[0]['values'].get('folder_id') == None
42-
assert resources[0]['values'].get('org_id') == None
44+
assert len(resources) == 4
45+
[project_resource] = [r for r in resources if r['address'] == 'module.test.google_project.project[0]']
46+
assert project_resource['values'].get('folder_id') == None
47+
assert project_resource['values'].get('org_id') == None
4348

4449

4550
def test_service_encryption_keys(plan_runner):

tests/modules/project/test_plan_logging.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def test_sinks(plan_runner):
5656
}
5757
"""
5858
_, resources = plan_runner(logging_sinks=logging_sinks)
59-
assert len(resources) == 9
59+
assert len(resources) == 12
6060

6161
resource_types = Counter([r["type"] for r in resources])
6262
assert resource_types == {
@@ -66,6 +66,8 @@ def test_sinks(plan_runner):
6666
"google_project_iam_member": 1,
6767
"google_pubsub_topic_iam_member": 1,
6868
"google_storage_bucket_iam_member": 1,
69+
"google_compute_shared_vpc_host_project": 1,
70+
"google_compute_shared_vpc_service_project": 2
6971
}
7072

7173
sinks = [r for r in resources if r["type"] == "google_logging_project_sink"]
@@ -149,7 +151,7 @@ def test_exclusions(plan_runner):
149151
"}"
150152
)
151153
_, resources = plan_runner(logging_exclusions=logging_exclusions)
152-
assert len(resources) == 3
154+
assert len(resources) == 6
153155
exclusions = [
154156
r for r in resources if r["type"] == "google_logging_project_exclusion"
155157
]

tests/modules/project/test_plan_org_policies.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_policy_boolean(plan_runner):
1616
"Test boolean org policy."
1717
policy_boolean = '{policy-a = true, policy-b = false, policy-c = null}'
1818
_, resources = plan_runner(policy_boolean=policy_boolean)
19-
assert len(resources) == 4
19+
assert len(resources) == 7
2020
resources = [r for r in resources if r['type']
2121
== 'google_project_organization_policy']
2222
assert sorted([r['index'] for r in resources]) == [
@@ -45,7 +45,7 @@ def test_policy_list(plan_runner):
4545
'}'
4646
)
4747
_, resources = plan_runner(policy_list=policy_list)
48-
assert len(resources) == 4
48+
assert len(resources) == 7
4949
values = [r['values'] for r in resources if r['type']
5050
== 'google_project_organization_policy']
5151
assert [r['constraint'] for r in values] == [

0 commit comments

Comments
 (0)