summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2016-03-29 16:24:58 -0400
committerScott Moser <smoser@ubuntu.com>2016-03-29 16:24:58 -0400
commitf6ad06d80aecadcd6d009111d14b6056a9545bd2 (patch)
treeb208e754e58cf15539fca0255fd10012d4583def
parent78c9de871eb2a68da36fb4397fe756b88dc9eb15 (diff)
parent30d8a1f2336f9e05b047136903d47025fdf28f5a (diff)
downloadvyos-cloud-init-f6ad06d80aecadcd6d009111d14b6056a9545bd2.tar.gz
vyos-cloud-init-f6ad06d80aecadcd6d009111d14b6056a9545bd2.zip
apply_network_config improvements
3 things here: a.) do not raise exception, only warn when trying to apply a network config for a distro that does not have an implementation. This is important since debian/ubuntu is the only one *with* an implementation at the moment b.) apply network config in 'cloud-init --local' even if there is no datasource found. This means that the fallback datasource has to get things right. c.) do not write 70-persistent-net.rules the code was writing both 70-persistent-net.rules and /etc/systemd/network/50-cloud-init-*.link files that would just be confusing.
-rwxr-xr-xbin/cloud-init1
-rw-r--r--cloudinit/distros/debian.py3
-rw-r--r--cloudinit/stages.py8
3 files changed, 10 insertions, 2 deletions
diff --git a/bin/cloud-init b/bin/cloud-init
index 341359e3..715be4b5 100755
--- a/bin/cloud-init
+++ b/bin/cloud-init
@@ -259,6 +259,7 @@ def main_init(name, args):
util.logexc(LOG, ("No instance datasource found!"
" Likely bad things to come!"))
if not args.force:
+ init.apply_network_config()
if args.local:
return (None, [])
else:
diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py
index b14fa3e2..5d7e6cfc 100644
--- a/cloudinit/distros/debian.py
+++ b/cloudinit/distros/debian.py
@@ -82,7 +82,8 @@ class Distro(distros.Distro):
ns = net.parse_net_config_data(netconfig)
net.render_network_state(target="/", network_state=ns,
eni=self.network_conf_fn,
- links_prefix=self.links_prefix)
+ links_prefix=self.links_prefix,
+ netrules=None)
util.del_file("/etc/network/interfaces.d/eth0.cfg")
return []
diff --git a/cloudinit/stages.py b/cloudinit/stages.py
index 143a4fc9..3fbb4443 100644
--- a/cloudinit/stages.py
+++ b/cloudinit/stages.py
@@ -596,7 +596,13 @@ class Init(object):
return
LOG.info("Applying network configuration from %s: %s", src, netcfg)
- return self.distro.apply_network_config(netcfg)
+ try:
+ return self.distro.apply_network_config(netcfg)
+ except NotImplementedError:
+ LOG.warn("distro '%s' does not implement apply_network_config. "
+ "networking may not be configured properly." %
+ self.distro)
+ return
class Modules(object):