added new option and changed the format of the interfaces

Dieser Commit ist enthalten in:
Sebastian Tobie 2023-12-10 20:49:32 +01:00
Ursprung 0384f7c17e
Commit 333a906f05
3 geänderte Dateien mit 21 neuen und 10 gelöschten Zeilen

Datei anzeigen

@ -0,0 +1,2 @@
---
release_summary: added nickname_is_hostname config to let the nickname be the hostname of the host

Datei anzeigen

@ -1,7 +1,7 @@
--- ---
namespace: ansible namespace: ansible
name: netcup name: netcup
version: 0.1.0 version: 0.1.1
readme: README.md readme: README.md
authors: authors:
- Sebastian Tobie - Sebastian Tobie

Datei anzeigen

@ -42,22 +42,25 @@ class InventoryModule(BaseInventoryPlugin):
inventory.add_host(nickname, group) inventory.add_host(nickname, group)
else: else:
inventory.add_child(group, nickname) inventory.add_child(group, nickname)
interfaces = [] interfaces = dict()
for interface in serverinfo["serverInterfaces"]: for interface in serverinfo["serverInterfaces"]:
interfaces.append( interfaces[interface["mac"]] = dict(
dict(
driver=interface["driver"], driver=interface["driver"],
id=interface["id"], id=interface["id"],
ipv4=interface["ipv4IP"], ipv4=interface["ipv4IP"],
ipv6=interface["ipv6IP"], ipv6=interface["ipv6IP"],
mac=interface["mac"], mac=interface["mac"],
) )
) if len(interface["ipv4IP"]) > 0:
ansible_host = interface["ipv4IP"][0]
inventory.set_variable(nickname, "interfaces", interfaces) inventory.set_variable(nickname, "interfaces", interfaces)
inventory.set_variable(nickname, "memory", serverinfo["memory"]) inventory.set_variable(nickname, "memory", serverinfo["memory"])
inventory.set_variable(nickname, "name", serverinfo["vServerName"]) inventory.set_variable(nickname, "name", serverinfo["vServerName"])
inventory.set_variable(nickname, "cores", serverinfo["cpuCores"]) inventory.set_variable(nickname, "cores", serverinfo["cpuCores"])
inventory.set_variable(nickname, "up", serverinfo["status"] == "online") inventory.set_variable(nickname, "up", serverinfo["status"] == "online")
if self.config.get("nickname_is_hostname", False):
ansible_host = nickname
inventory.set_variable(nickname, "ansible_host", ansible_host)
DOCUMENTATION = """ DOCUMENTATION = """
@ -79,4 +82,10 @@ DOCUMENTATION = """
- API password to authenticate againt the api. - API password to authenticate againt the api.
- This is different from you SCP password and must be set indipendently from the SCP password - This is different from you SCP password and must be set indipendently from the SCP password
required: true required: true
nickname_is_hostname:
version_added: 0.1.1
description: use the nickname as hostname
type: bool
required: false
default: false
""" """