File cloud-init-norename-w-debug.patch of Package cloud-init
Index: cloud-init-23.3/cloudinit/net/__init__.py
===================================================================
--- cloud-init-23.3.orig/cloudinit/net/__init__.py
+++ cloud-init-23.3/cloudinit/net/__init__.py
@@ -597,6 +597,7 @@ def extract_physdevs(netcfg):
if not device_id:
device_id = device_devid(name)
physdevs.append([mac, name, driver, device_id])
+ LOG.debug("v1 physdevs %s" % physdevs)
return physdevs
def _version_2(netcfg):
@@ -698,12 +699,18 @@ def _rename_interfaces(
renames, strict_present=True, strict_busy=True, current_info=None
):
+ LOG.debug(
+ "Enter _rename_interfaces with renames: %s and current_inf0: %s" % (
+ renames, current_info)
+ )
if not len(renames):
LOG.debug("no interfaces to rename")
return
if current_info is None:
+ LOG.debug("get the current rename info")
current_info = _get_current_rename_info()
+ LOG.debug("raname info: %s" % current_info)
cur_info = {}
for name, data in current_info.items():
Index: cloud-init-23.3/cloudinit/net/renderer.py
===================================================================
--- cloud-init-23.3.orig/cloudinit/net/renderer.py
+++ cloud-init-23.3/cloudinit/net/renderer.py
@@ -7,11 +7,14 @@
import abc
import io
+import logging
from typing import Optional
from cloudinit.net.network_state import NetworkState
from cloudinit.net.udev import generate_udev_rule
+LOG = logging.getLogger(__name__)
+
def filter_by_type(match_type):
return lambda iface: match_type == iface["type"]
@@ -37,6 +40,12 @@ class Renderer(abc.ABC):
for iface in network_state.iter_interfaces(filter_by_physical):
# for physical interfaces write out a persist net udev rule
if "name" in iface and iface.get("mac_address"):
+ # Skip any interfaces with the artificial "rename" name.
+ # This is a horrible hack to address bsc#1211957 until the
+ # root cause is understood and fixed.
+ if iface["name"].startswith("rename"):
+ LOG.debug("Skipping %s in udev rule" % iface["name"])
+ continue
driver = iface.get("driver", None)
content.write(
generate_udev_rule(