Yes, we can take a look. Diff comments:
> diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py > index 0998392..5f6f2d8 100644 > --- a/cloudinit/net/sysconfig.py > +++ b/cloudinit/net/sysconfig.py > @@ -696,6 +696,14 @@ class Renderer(renderer.Renderer): > if nm_conf_content: > util.write_file(nm_conf_path, nm_conf_content, file_mode) > if self.netrules_path: > + # When many interfaces are present it can happen that we get here > + # before they are all setup. Settle if that is the case. > + for iface in network_state.iter_interfaces( > + renderer.filter_by_physical): > + path = net.sys_dev_path(str(iface)) > + if not os.path.exists(path): > + util.udevadm_settle(path, 5) > + break Do we want to break after the first missing? I suspect that's good enough, however, it would be good to at least confirm the rest of the interfaces didn't need a settle? > netrules_content = self._render_persistent_net(network_state) > netrules_path = util.target_path(target, self.netrules_path) > util.write_file(netrules_path, netrules_content, file_mode) -- https://code.launchpad.net/~rjschwei/cloud-init/+git/cloud-init/+merge/363571 Your team cloud-init commiters is requested to review the proposed merge of ~rjschwei/cloud-init:triggerudev into cloud-init:master. _______________________________________________ Mailing list: https://launchpad.net/~cloud-init-dev Post to : cloud-init-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~cloud-init-dev More help : https://help.launchpad.net/ListHelp