1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

[PR #6925/1c4e2d51 backport][stable-7] cobbler: Properly determine cobbler_ip_address (#6940)

cobbler: Properly determine cobbler_ip_address (#6925)

cobbler: Properly determine cobbler_ipv4/6_address
(cherry picked from commit 1c4e2d51b2)

Co-authored-by: Orion Poplawski <orion@nwra.com>
This commit is contained in:
patchback[bot] 2023-07-15 16:27:36 +02:00 committed by GitHub
parent f317fd924a
commit 7577d5218a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 7 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- cobbler inventory plugin - fix calculation of cobbler_ipv4/6_address (https://github.com/ansible-collections/community.general/pull/6925).

View file

@ -307,20 +307,22 @@ class InventoryModule(BaseInventoryPlugin, Cacheable):
# Add host variables # Add host variables
ip_address = None ip_address = None
ip_address_first = None
ipv6_address = None ipv6_address = None
ipv6_address_first = None
for iname, ivalue in interfaces.items(): for iname, ivalue in interfaces.items():
# Set to first interface or management interface if defined or hostname matches dns_name # Set to first interface or management interface if defined or hostname matches dns_name
if ivalue['ip_address'] != "": if ivalue['ip_address'] != "":
if ip_address is None: if ip_address_first is None:
ip_address = ivalue['ip_address'] ip_address_first = ivalue['ip_address']
elif ivalue['management']: if ivalue['management']:
ip_address = ivalue['ip_address'] ip_address = ivalue['ip_address']
elif ivalue['dns_name'] == hostname and ip_address is None: elif ivalue['dns_name'] == hostname and ip_address is None:
ip_address = ivalue['ip_address'] ip_address = ivalue['ip_address']
if ivalue['ipv6_address'] != "": if ivalue['ipv6_address'] != "":
if ipv6_address is None: if ipv6_address_first is None:
ipv6_address = ivalue['ipv6_address'] ipv6_address_first = ivalue['ipv6_address']
elif ivalue['management']: if ivalue['management']:
ipv6_address = ivalue['ipv6_address'] ipv6_address = ivalue['ipv6_address']
elif ivalue['dns_name'] == hostname and ipv6_address is None: elif ivalue['dns_name'] == hostname and ipv6_address is None:
ipv6_address = ivalue['ipv6_address'] ipv6_address = ivalue['ipv6_address']
@ -333,9 +335,13 @@ class InventoryModule(BaseInventoryPlugin, Cacheable):
if ivalue['ipv6_address'] != "": if ivalue['ipv6_address'] != "":
ip_addresses[ivalue['dns_name']] = ivalue['ipv6_address'] ip_addresses[ivalue['dns_name']] = ivalue['ipv6_address']
# Add ip_address to host if defined # Add ip_address to host if defined, use first if no management or matched dns_name
if ip_address is None and ip_address_first is not None:
ip_address = ip_address_first
if ip_address is not None: if ip_address is not None:
self.inventory.set_variable(hostname, 'cobbler_ipv4_address', ip_address) self.inventory.set_variable(hostname, 'cobbler_ipv4_address', ip_address)
if ipv6_address is None and ipv6_address_first is not None:
ipv6_address = ipv6_address_first
if ipv6_address is not None: if ipv6_address is not None:
self.inventory.set_variable(hostname, 'cobbler_ipv6_address', ipv6_address) self.inventory.set_variable(hostname, 'cobbler_ipv6_address', ipv6_address)