Skip to content

Commit 1bf076f

Browse files
authored
Add disable_on_destroy flag to project_services (#1293)
1 parent 0cac59d commit 1bf076f

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

google/resource_google_project_services.go

+12
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ func resourceGoogleProjectServices() *schema.Resource {
3030
Elem: &schema.Schema{Type: schema.TypeString},
3131
Set: schema.HashString,
3232
},
33+
"disable_on_destroy": &schema.Schema{
34+
Type: schema.TypeBool,
35+
Optional: true,
36+
Default: true,
37+
},
3338
},
3439
}
3540
}
@@ -105,6 +110,13 @@ func resourceGoogleProjectServicesUpdate(d *schema.ResourceData, meta interface{
105110

106111
func resourceGoogleProjectServicesDelete(d *schema.ResourceData, meta interface{}) error {
107112
log.Printf("[DEBUG]: Deleting google_project_services")
113+
114+
if disable := d.Get("disable_on_destroy"); !(disable.(bool)) {
115+
log.Printf("Not disabling service '%s', because disable_on_destroy is false.", d.Id())
116+
d.SetId("")
117+
return nil
118+
}
119+
108120
config := meta.(*Config)
109121
services := resourceServices(d)
110122
for _, s := range services {

google/resource_google_project_services_test.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,11 @@ func testAccProjectAssociateServicesBasic(services []string, pid, name, org stri
224224
return fmt.Sprintf(`
225225
resource "google_project" "acceptance" {
226226
project_id = "%s"
227-
name = "%s"
228-
org_id = "%s"
227+
name = "%s"
228+
org_id = "%s"
229229
}
230230
resource "google_project_services" "acceptance" {
231-
project = "${google_project.acceptance.project_id}"
231+
project = "${google_project.acceptance.project_id}"
232232
services = [%s]
233233
}
234234
`, pid, name, org, testStringsToString(services))
@@ -237,14 +237,15 @@ resource "google_project_services" "acceptance" {
237237
func testAccProjectAssociateServicesBasic_withBilling(services []string, pid, name, org, billing string) string {
238238
return fmt.Sprintf(`
239239
resource "google_project" "acceptance" {
240-
project_id = "%s"
241-
name = "%s"
242-
org_id = "%s"
240+
project_id = "%s"
241+
name = "%s"
242+
org_id = "%s"
243243
billing_account = "%s"
244244
}
245245
resource "google_project_services" "acceptance" {
246-
project = "${google_project.acceptance.project_id}"
247-
services = [%s]
246+
project = "${google_project.acceptance.project_id}"
247+
services = [%s]
248+
disable_on_destroy = false
248249
}
249250
`, pid, name, org, billing, testStringsToString(services))
250251
}

0 commit comments

Comments
 (0)