Skip to content

Commit 13bb0dd

Browse files
Org Security Policies (Hierarchical Firewalls) (#3626) (#2333)
Co-authored-by: Dana Hoffman <[email protected]> Signed-off-by: Modular Magician <[email protected]> Co-authored-by: Dana Hoffman <[email protected]>
1 parent bf7911e commit 13bb0dd

File tree

151 files changed

+2719
-81
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+2719
-81
lines changed

.changelog/3626.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
```release-note:new-resource
2+
`google_compute_compute_organization_security_policy` (beta-only)
3+
```
4+
```release-note:new-resource
5+
`google_compute_compute_organization_security_policy_association` (beta-only)
6+
```
7+
```release-note:new-resource
8+
`google_compute_compute_organization_security_policy_rule` (beta-only)
9+
```

google-beta/compute_operation.go

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@ package google
22

33
import (
44
"bytes"
5+
"encoding/json"
56
"fmt"
67
"time"
78

8-
"google.golang.org/api/compute/v1"
9+
computeBeta "google.golang.org/api/compute/v0.beta"
910
)
1011

1112
type ComputeOperationWaiter struct {
12-
Service *compute.Service
13-
Op *compute.Operation
13+
Service *computeBeta.Service
14+
Op *computeBeta.Operation
1415
Project string
16+
Parent string
1517
}
1618

1719
func (w *ComputeOperationWaiter) State() string {
@@ -42,7 +44,7 @@ func (w *ComputeOperationWaiter) IsRetryable(err error) bool {
4244

4345
func (w *ComputeOperationWaiter) SetOp(op interface{}) error {
4446
var ok bool
45-
w.Op, ok = op.(*compute.Operation)
47+
w.Op, ok = op.(*computeBeta.Operation)
4648
if !ok {
4749
return fmt.Errorf("Unable to set operation. Bad type!")
4850
}
@@ -59,6 +61,8 @@ func (w *ComputeOperationWaiter) QueryOp() (interface{}, error) {
5961
} else if w.Op.Region != "" {
6062
region := GetResourceNameFromSelfLink(w.Op.Region)
6163
return w.Service.RegionOperations.Get(w.Project, region, w.Op.Name).Do()
64+
} else if w.Parent != "" {
65+
return w.Service.GlobalOrganizationOperations.Get(w.Op.Name).ParentId(w.Parent).Do()
6266
}
6367
return w.Service.GlobalOperations.Get(w.Project, w.Op.Name).Do()
6468
}
@@ -80,14 +84,14 @@ func (w *ComputeOperationWaiter) TargetStates() []string {
8084
}
8185

8286
func computeOperationWaitTime(config *Config, res interface{}, project, activity string, timeout time.Duration) error {
83-
op := &compute.Operation{}
87+
op := &computeBeta.Operation{}
8488
err := Convert(res, op)
8589
if err != nil {
8690
return err
8791
}
8892

8993
w := &ComputeOperationWaiter{
90-
Service: config.clientCompute,
94+
Service: config.clientComputeBeta,
9195
Op: op,
9296
Project: project,
9397
}
@@ -98,9 +102,35 @@ func computeOperationWaitTime(config *Config, res interface{}, project, activity
98102
return OperationWait(w, activity, timeout, config.PollInterval)
99103
}
100104

105+
func computeOrgOperationWaitTimeWithResponse(config *Config, res interface{}, response *map[string]interface{}, parent, activity string, timeout time.Duration) error {
106+
op := &computeBeta.Operation{}
107+
err := Convert(res, op)
108+
if err != nil {
109+
return err
110+
}
111+
112+
w := &ComputeOperationWaiter{
113+
Service: config.clientComputeBeta,
114+
Op: op,
115+
Parent: parent,
116+
}
117+
118+
if err := w.SetOp(op); err != nil {
119+
return err
120+
}
121+
if err := OperationWait(w, activity, timeout, config.PollInterval); err != nil {
122+
return err
123+
}
124+
e, err := json.Marshal(w.Op)
125+
if err != nil {
126+
return err
127+
}
128+
return json.Unmarshal(e, response)
129+
}
130+
101131
// ComputeOperationError wraps compute.OperationError and implements the
102132
// error interface so it can be returned.
103-
type ComputeOperationError compute.OperationError
133+
type ComputeOperationError computeBeta.OperationError
104134

105135
func (e ComputeOperationError) Error() string {
106136
var buf bytes.Buffer

google-beta/deployment_manager_operation.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"time"
77

8-
"google.golang.org/api/compute/v1"
8+
computeBeta "google.golang.org/api/compute/v0.beta"
99
)
1010

1111
type DeploymentManagerOperationWaiter struct {
@@ -27,15 +27,15 @@ func (w *DeploymentManagerOperationWaiter) QueryOp() (interface{}, error) {
2727
if err != nil {
2828
return nil, err
2929
}
30-
op := &compute.Operation{}
30+
op := &computeBeta.Operation{}
3131
if err := Convert(resp, op); err != nil {
3232
return nil, fmt.Errorf("could not convert response to operation: %v", err)
3333
}
3434
return op, nil
3535
}
3636

3737
func deploymentManagerOperationWaitTime(config *Config, resp interface{}, project, activity string, timeout time.Duration) error {
38-
op := &compute.Operation{}
38+
op := &computeBeta.Operation{}
3939
err := Convert(resp, op)
4040
if err != nil {
4141
return err
@@ -71,7 +71,7 @@ func (w *DeploymentManagerOperationWaiter) Error() error {
7171
type DeploymentManagerOperationError struct {
7272
HTTPStatusCode int64
7373
HTTPMessage string
74-
compute.OperationError
74+
computeBeta.OperationError
7575
}
7676

7777
func (e DeploymentManagerOperationError) Error() string {

google-beta/provider.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -700,9 +700,9 @@ func Provider() terraform.ResourceProvider {
700700
return provider
701701
}
702702

703-
// Generated resources: 176
703+
// Generated resources: 179
704704
// Generated IAM resources: 66
705-
// Total generated resources: 242
705+
// Total generated resources: 245
706706
func ResourceMap() map[string]*schema.Resource {
707707
resourceMap, _ := ResourceMapWithErrors()
708708
return resourceMap
@@ -789,6 +789,9 @@ func ResourceMapWithErrors() (map[string]*schema.Resource, error) {
789789
"google_compute_node_group": resourceComputeNodeGroup(),
790790
"google_compute_network_peering_routes_config": resourceComputeNetworkPeeringRoutesConfig(),
791791
"google_compute_node_template": resourceComputeNodeTemplate(),
792+
"google_compute_organization_security_policy": resourceComputeOrganizationSecurityPolicy(),
793+
"google_compute_organization_security_policy_association": resourceComputeOrganizationSecurityPolicyAssociation(),
794+
"google_compute_organization_security_policy_rule": resourceComputeOrganizationSecurityPolicyRule(),
792795
"google_compute_packet_mirroring": resourceComputePacketMirroring(),
793796
"google_compute_per_instance_config": resourceComputePerInstanceConfig(),
794797
"google_compute_region_per_instance_config": resourceComputeRegionPerInstanceConfig(),

google-beta/resource_access_context_manager_access_level.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,8 @@ func resourceAccessContextManagerAccessLevelUpdate(d *schema.ResourceData, meta
469469

470470
if err != nil {
471471
return fmt.Errorf("Error updating AccessLevel %q: %s", d.Id(), err)
472+
} else {
473+
log.Printf("[DEBUG] Finished updating AccessLevel %q: %#v", d.Id(), res)
472474
}
473475

474476
err = accessContextManagerOperationWaitTime(

google-beta/resource_access_context_manager_access_policy.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@ func resourceAccessContextManagerAccessPolicyUpdate(d *schema.ResourceData, meta
210210

211211
if err != nil {
212212
return fmt.Errorf("Error updating AccessPolicy %q: %s", d.Id(), err)
213+
} else {
214+
log.Printf("[DEBUG] Finished updating AccessPolicy %q: %#v", d.Id(), res)
213215
}
214216

215217
err = accessContextManagerOperationWaitTime(

google-beta/resource_access_context_manager_service_perimeter.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,8 @@ func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData,
521521

522522
if err != nil {
523523
return fmt.Errorf("Error updating ServicePerimeter %q: %s", d.Id(), err)
524+
} else {
525+
log.Printf("[DEBUG] Finished updating ServicePerimeter %q: %#v", d.Id(), res)
524526
}
525527

526528
err = accessContextManagerOperationWaitTime(

google-beta/resource_active_directory_domain.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ func resourceActiveDirectoryDomainUpdate(d *schema.ResourceData, meta interface{
299299

300300
if err != nil {
301301
return fmt.Errorf("Error updating Domain %q: %s", d.Id(), err)
302+
} else {
303+
log.Printf("[DEBUG] Finished updating Domain %q: %#v", d.Id(), res)
302304
}
303305

304306
err = activeDirectoryOperationWaitTime(

google-beta/resource_app_engine_application_url_dispatch_rules.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ func resourceAppEngineApplicationUrlDispatchRulesUpdate(d *schema.ResourceData,
195195

196196
if err != nil {
197197
return fmt.Errorf("Error updating ApplicationUrlDispatchRules %q: %s", d.Id(), err)
198+
} else {
199+
log.Printf("[DEBUG] Finished updating ApplicationUrlDispatchRules %q: %#v", d.Id(), res)
198200
}
199201

200202
err = appEngineOperationWaitTime(

google-beta/resource_app_engine_domain_mapping.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ func resourceAppEngineDomainMappingUpdate(d *schema.ResourceData, meta interface
306306

307307
if err != nil {
308308
return fmt.Errorf("Error updating DomainMapping %q: %s", d.Id(), err)
309+
} else {
310+
log.Printf("[DEBUG] Finished updating DomainMapping %q: %#v", d.Id(), res)
309311
}
310312

311313
err = appEngineOperationWaitTime(

0 commit comments

Comments
 (0)