From 3e3611fb23afdea810576ef61c4ac3bab76fe7c2 Mon Sep 17 00:00:00 2001 From: Jorge Gallegos Date: Mon, 9 Jun 2025 13:32:14 -0700 Subject: [PATCH] Adding hostname support to dynamic inventory Fixes #434 It is basically the same as #438 but with a few extra checks, don't want to rebase the whole thing. Signed-off-by: Jorge Gallegos --- plugins/inventory/gcp_compute.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/inventory/gcp_compute.py b/plugins/inventory/gcp_compute.py index bc3e953a..9a7cde80 100644 --- a/plugins/inventory/gcp_compute.py +++ b/plugins/inventory/gcp_compute.py @@ -23,7 +23,7 @@ DOCUMENTATION = """ required: True choices: ['google.cloud.gcp_compute', 'gcp_compute'] zones: - description: A list of regions in which to describe GCE instances. + description: A list of zones in which to describe GCE instances. If none provided, it defaults to all zones available to a given project. type: list elements: string @@ -48,7 +48,7 @@ DOCUMENTATION = """ hostnames: description: A list of options that describe the ordering for which hostnames should be assigned. Currently supported hostnames are - 'public_ip', 'private_ip', 'name' or 'labels.vm_name'. + 'public_ip', 'private_ip', 'name', 'hostname' or 'labels.vm_name'. default: ['public_ip', 'private_ip', 'name'] type: list elements: string @@ -121,7 +121,7 @@ DOCUMENTATION = """ EXAMPLES = """ plugin: google.cloud.gcp_compute -zones: # populate inventory with instances in these regions +zones: # populate inventory with instances in these zones - us-east1-a projects: - gcp-prod-gke-100 @@ -248,6 +248,8 @@ class GcpInstance(object): name = self._get_publicip() elif order == "private_ip": name = self._get_privateip() + elif order == "hostname": + name = self.json.get("hostname", self.json["name"] + self.name_suffix) elif order == "name": name = self.json["name"] + self.name_suffix else: