Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,38 +1,72 @@
// security_policy isn't set by Create / Update
if o, n := d.GetChange("security_policy"); o.(string) != n.(string) {
pol, err := tpgresource.ParseSecurityPolicyFieldValue(n.(string), d, config)
pol, err := tpgresource.ParseSecurityPolicyFieldValue(n.(string), d, config)
if err != nil {
return errwrap.Wrapf("Error parsing Backend Service security policy: {{"{{"}}err{{"}}"}}", err)
}

spr := emptySecurityPolicyReference()
spr.SecurityPolicy = pol.RelativeLink()
op, err := config.NewComputeClient(userAgent).BackendServices.SetSecurityPolicy(project, obj["name"].(string), spr).Do()
sBody := map[string]interface{}{
"securityPolicy": pol.RelativeLink(),
}

securityPolicyPath := "{{"{{"}}ComputeBasePath{{"}}"}}projects/{{"{{"}}project{{"}}"}}/global/backendServices/{{"{{"}}name{{"}}"}}/setSecurityPolicy?prettyPrint=false"
sUrl, err := tpgresource.ReplaceVars(d, config, securityPolicyPath)
if err != nil {
return err
}

res, err = transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
Config: config,
Method: "POST",
Project: project,
RawURL: sUrl,
UserAgent: userAgent,
Body: sBody,
Headers: headers,
})
if err != nil {
return errwrap.Wrapf("Error setting Backend Service security policy: {{"{{"}}err{{"}}"}}", err)
}

// This uses the create timeout for simplicity, though technically this code appears in both create and update
waitErr := ComputeOperationWaitTime(config, op, project, "Setting Backend Service Security Policy", userAgent, d.Timeout(schema.TimeoutCreate))
if waitErr != nil {
return waitErr
err = ComputeOperationWaitTime(config, res, project, "Setting Backend Service Security Policy", userAgent, d.Timeout(schema.TimeoutCreate))
if err != nil {
return err
}
}
// edge security_policy isn't set by Create / Update
if o, n := d.GetChange("edge_security_policy"); o.(string) != n.(string) {
pol, err := tpgresource.ParseSecurityPolicyFieldValue(n.(string), d, config)
pol, err := tpgresource.ParseSecurityPolicyFieldValue(n.(string), d, config)
if err != nil {
return errwrap.Wrapf("Error parsing Backend Service edge security policy: {{"{{"}}err{{"}}"}}", err)
}

spr := emptySecurityPolicyReference()
spr.SecurityPolicy = pol.RelativeLink()
op, err := config.NewComputeClient(userAgent).BackendServices.SetEdgeSecurityPolicy(project, obj["name"].(string), spr).Do()
eBody := map[string]interface{}{
"securityPolicy": pol.RelativeLink(),
}

edgeSecurityPolicyPath := "{{"{{"}}ComputeBasePath{{"}}"}}projects/{{"{{"}}project{{"}}"}}/global/backendServices/{{"{{"}}name{{"}}"}}/setEdgeSecurityPolicy?prettyPrint=false"
eUrl, err := tpgresource.ReplaceVars(d, config, edgeSecurityPolicyPath)
if err != nil {
return err
}

res, err = transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
Config: config,
Method: "POST",
Project: project,
RawURL: eUrl,
UserAgent: userAgent,
Body: eBody,
Headers: headers,
})
if err != nil {
return errwrap.Wrapf("Error setting Backend Service edge security policy: {{"{{"}}err{{"}}"}}", err)
}

// This uses the create timeout for simplicity, though technically this code appears in both create and update
waitErr := ComputeOperationWaitTime(config, op, project, "Setting Backend Service Edge Security Policy", userAgent, d.Timeout(schema.TimeoutCreate))
if waitErr != nil {
return waitErr
err = ComputeOperationWaitTime(config, res, project, "Setting Backend Service Edge Security Policy", userAgent, d.Timeout(schema.TimeoutCreate))
if err != nil {
return err
}
}
Loading