From c93ba3750a14a3a41f417ddebff1ae246da9917a Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 3 Mar 2021 13:23:01 -0500 Subject: [PATCH] Suppress diff for COS images --- google/image.go | 1 + google/resource_compute_disk.go | 17 +++++++++++++++++ google/resource_compute_disk_test.go | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/google/image.go b/google/image.go index 61ac117dc9e..ad90c55cef8 100644 --- a/google/image.go +++ b/google/image.go @@ -27,6 +27,7 @@ var ( windowsSqlImage = regexp.MustCompile("^sql-(?:server-)?([0-9]{4})-([a-z]+)-windows-(?:server-)?([0-9]{4})(?:-r([0-9]+))?-dc-v[0-9]+$") canonicalUbuntuLtsImage = regexp.MustCompile("^ubuntu-(minimal-)?([0-9]+)-") + cosLtsImage = regexp.MustCompile("^cos-([0-9]+)-") ) // built-in projects to look for images/families containing the string diff --git a/google/resource_compute_disk.go b/google/resource_compute_disk.go index 0fa266fd34c..297e291652f 100644 --- a/google/resource_compute_disk.go +++ b/google/resource_compute_disk.go @@ -150,6 +150,10 @@ func diskImageFamilyEquals(imageName, familyName string) bool { return true } + if suppressCosFamilyDiff(imageName, familyName) { + return true + } + if suppressWindowsSqlFamilyDiff(imageName, familyName) { return true } @@ -174,6 +178,19 @@ func suppressCanonicalFamilyDiff(imageName, familyName string) bool { return false } +// e.g. image: cos-NN-*, family: cos-NN-lts +func suppressCosFamilyDiff(imageName, familyName string) bool { + parts := cosLtsImage.FindStringSubmatch(imageName) + if len(parts) == 2 { + f := fmt.Sprintf("cos-%s-lts", parts[1]) + if f == familyName { + return true + } + } + + return false +} + // e.g. image: sql-2017-standard-windows-2016-dc-v20180109, family: sql-std-2017-win-2016 // e.g. image: sql-2017-express-windows-2012-r2-dc-v20180109, family: sql-exp-2017-win-2012-r2 func suppressWindowsSqlFamilyDiff(imageName, familyName string) bool { diff --git a/google/resource_compute_disk_test.go b/google/resource_compute_disk_test.go index 5fb5b2f6c8a..e8e475d9440 100644 --- a/google/resource_compute_disk_test.go +++ b/google/resource_compute_disk_test.go @@ -125,6 +125,11 @@ func TestDiskImageDiffSuppress(t *testing.T) { New: "ubuntu-minimal-1804-lts", ExpectDiffSuppress: true, }, + "matching unconventional image family - cos": { + Old: "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-85-13310-1209-17", + New: "cos-85-lts", + ExpectDiffSuppress: true, + }, "different image family": { Old: "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20171213", New: "family/debian-7",