From 881df11844eba55882da1d0a6a96e65ddb12b9be Mon Sep 17 00:00:00 2001
From: Tyler Allen <tyler.allen@alvaria.com>
Date: Wed, 24 Nov 2021 10:57:37 -0600
Subject: [PATCH] add ability to detect and update network tags.

---
 plugins/modules/gcp_compute_instance.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/plugins/modules/gcp_compute_instance.py b/plugins/modules/gcp_compute_instance.py
index b62286d..6966f83 100644
--- a/plugins/modules/gcp_compute_instance.py
+++ b/plugins/modules/gcp_compute_instance.py
@@ -1229,8 +1229,17 @@ def update_fields(module, request, response):
         machine_type_update(module, request, response)
     if response.get('shieldedInstanceConfig') != request.get('shieldedInstanceConfig'):
         shielded_instance_config_update(module, request, response)
+    if response.get("tags") != request.get("tags"):
+        tag_fingerprint_update(module,request,response)
 
 
+def tag_fingerprint_update(module, request, response):
+    auth = GcpSession(module, 'compute')
+    auth.post(
+        ''.join(["https://compute.googleapis.com/compute/v1/", "projects/{project}/zones/{zone}/instances/{name}/setTags"]).format(**module.params),
+        {u'fingerprint': response.get('tags',{}).get('fingerprint'), u'items': module.params.get('tags', {}).get('items')},
+    )
+
 def label_fingerprint_update(module, request, response):
     auth = GcpSession(module, 'compute')
     auth.post(