feat: dynamic inventory skips now all servers with label manual

- avoid gathering of manually used servers
master
Sven Ketelsen 4 years ago
parent 6945366f89
commit 3711ee4de9

@ -68,9 +68,9 @@ class MyHcloudAPI:
while page > 0:
api_url = ""
if not self.label_selector:
api_url = "{}/{}?label_selector=!manual&per_page={}&page={}".format(self.BASE, api_path, str(page_size), str(page))
api_url = "{}/{}?per_page={}&page={}".format(self.BASE, api_path, str(page_size), str(page))
else:
api_url = "{}/{}?label_selector={},!manual&per_page={}&page={}".format(self.BASE, api_path, self.label_selector, str(page_size), str(page))
api_url = "{}/{}?label_selector={}&per_page={}&page={}".format(self.BASE, api_path, self.label_selector, str(page_size), str(page))
display.display(api_url)
@ -179,10 +179,10 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
loadbalancerPrivateIp = "-"
# filter all loadbalancers by naming convention -> {{ stage }}-ingress
ingressLoadbalancers = [lb for lb in loadbalancers if lb["name"] == self.get_option("stage") + "-ingress"]
loadbalancers = [x for x in loadbalancers if x["name"] == self.get_option("stage") + "-ingress"]
loadbalancers.sort(key=lambda x: x.get('name'))
ingressLoadbalancers.sort(key=lambda x: x.get('name'))
for loadbalancer in ingressLoadbalancers:
for loadbalancer in loadbalancers:
loadbalancerId = loadbalancer["id"]
loadbalancerName = loadbalancer["name"]
loadbalancerLabels = loadbalancer["labels"]
@ -191,7 +191,10 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
display.display("loadbalancer:<" + loadbalancerName + ">, publicIp=<" + loadbalancerPublicIp + ">, privateIp=<" + loadbalancerPrivateIp + ">")
# due to a hetzner api bug for label selector: only last given selector is used - label_selector=stage=XXX,!manual not working correctly
servers = [x for x in servers if 'manual' not in x["labels"]]
servers.sort(key=lambda x: x.get('name'))
for server in servers:
serverId = server["id"]
serverName = server["name"]

Loading…
Cancel
Save