feat: dynamic inventory skips now all servers with label manual

- avoid gathering of manually used servers
master
Sven Ketelsen 4 years ago
parent 4cf78b7386
commit cc99dfda35

@ -68,9 +68,9 @@ class MyHcloudAPI:
while page > 0: while page > 0:
api_url = "" api_url = ""
if not self.label_selector: if not self.label_selector:
api_url = "{}/{}?per_page={}&page={}".format(self.BASE, api_path, str(page_size), str(page)) api_url = "{}/{}?label_selector=!manual&per_page={}&page={}".format(self.BASE, api_path, str(page_size), str(page))
else: else:
api_url = "{}/{}?label_selector={}&per_page={}&page={}".format(self.BASE, api_path, self.label_selector, str(page_size), str(page)) api_url = "{}/{}?label_selector={},!manual&per_page={}&page={}".format(self.BASE, api_path, self.label_selector, str(page_size), str(page))
display.display(api_url) display.display(api_url)
@ -84,6 +84,7 @@ class MyHcloudAPI:
if json_response["meta"]["pagination"]["page"] == json_response["meta"]["pagination"]["last_page"]: if json_response["meta"]["pagination"]["page"] == json_response["meta"]["pagination"]["last_page"]:
break break
page += 1 page += 1
return response_values return response_values
except ValueError: except ValueError:
raise AnsibleError("Incorrect JSON payload") raise AnsibleError("Incorrect JSON payload")
@ -180,6 +181,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
# filter all loadbalancers by naming convention -> {{ stage }}-ingress # filter all loadbalancers by naming convention -> {{ stage }}-ingress
ingressLoadbalancers = [lb for lb in loadbalancers if lb["name"] == self.get_option("stage") + "-ingress"] ingressLoadbalancers = [lb for lb in loadbalancers if lb["name"] == self.get_option("stage") + "-ingress"]
ingressLoadbalancers.sort(key=lambda x: x.get('name'))
for loadbalancer in ingressLoadbalancers: for loadbalancer in ingressLoadbalancers:
loadbalancerId = loadbalancer["id"] loadbalancerId = loadbalancer["id"]
loadbalancerName = loadbalancer["name"] loadbalancerName = loadbalancer["name"]
@ -189,6 +191,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
display.display("loadbalancer:<" + loadbalancerName + ">, publicIp=<" + loadbalancerPublicIp + ">, privateIp=<" + loadbalancerPrivateIp + ">") display.display("loadbalancer:<" + loadbalancerName + ">, publicIp=<" + loadbalancerPublicIp + ">, privateIp=<" + loadbalancerPrivateIp + ">")
servers.sort(key=lambda x: x.get('name'))
for server in servers: for server in servers:
serverId = server["id"] serverId = server["id"]
serverName = server["name"] serverName = server["name"]

Loading…
Cancel
Save