Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:Uyuni:Snapshots:2023.03
cobbler
fix_next_server_being_hostname.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix_next_server_being_hostname.patch of Package cobbler
Index: cobbler-3.3.3/cobbler/settings/migrations/V3_3_0.py =================================================================== --- cobbler-3.3.3.orig/cobbler/settings/migrations/V3_3_0.py +++ cobbler-3.3.3/cobbler/settings/migrations/V3_3_0.py @@ -11,6 +11,7 @@ import glob import ipaddress import json import os +import socket from shutil import copytree @@ -310,11 +311,38 @@ def migrate_cobbler_collections(collecti data["next_server_v6"] = addr data.pop("next_server") else: - _ip = ipaddress.ip_address(addr) - if isinstance(_ip, ipaddress.IPv4Address): - data["next_server_v4"] = data.pop("next_server") - elif isinstance(_ip, ipaddress.IPv6Address): - data["next_server_v6"] = data.pop("next_server") + try: + _ip = ipaddress.ip_address(addr) + if isinstance(_ip, ipaddress.IPv4Address): + data["next_server_v4"] = data.pop("next_server") + elif isinstance(_ip, ipaddress.IPv6Address): + data["next_server_v6"] = data.pop("next_server") + except ValueError: + # next_server is a hostname so we need to resolve hostname + try: + data["next_server_v4"] = socket.getaddrinfo( + addr, + None, + socket.AF_INET, + )[1][4][0] + except OSError: + pass + try: + data["next_server_v6"] = socket.getaddrinfo( + addr, + None, + socket.AF_INET6, + )[1][4][0] + except OSError: + pass + + if "next_server_v4" not in data and "next_server_v6" not in data: + print( + "ERROR: Neither IPv4 nor IPv6 addresses can be resolved for " + f"'next server': {data['next_server']}. Please check your DNS configuration." + ) + else: + data.pop("next_server") # enable_gpxe -> enable_ipxe if "enable_gpxe" in data:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor