diff options
| author | Scott Moser <smoser@brickies.net> | 2016-08-23 16:48:43 -0400 |
|---|---|---|
| committer | Scott Moser <smoser@brickies.net> | 2016-08-23 16:48:43 -0400 |
| commit | c00558f3159e0d1c54df3afa16ad8e06db6e30ab (patch) | |
| tree | 7450e4d94477db02910da4d5118521904c3a89e2 /cloudinit/distros | |
| parent | 90ad4618fd49dae5e833d6ab4d16495911cd5cde (diff) | |
| parent | d86e75313524298e52469d4e55fa945ec731e938 (diff) | |
| download | vyos-cloud-init-c00558f3159e0d1c54df3afa16ad8e06db6e30ab.tar.gz vyos-cloud-init-c00558f3159e0d1c54df3afa16ad8e06db6e30ab.zip | |
merge trunk at 0.7.7~bzr1256
Diffstat (limited to 'cloudinit/distros')
| -rw-r--r-- | cloudinit/distros/__init__.py | 28 | ||||
| -rw-r--r-- | cloudinit/distros/debian.py | 3 |
2 files changed, 27 insertions, 4 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py index 14b500f8..40af8802 100644 --- a/cloudinit/distros/__init__.py +++ b/cloudinit/distros/__init__.py @@ -32,6 +32,8 @@ import stat from cloudinit import importer from cloudinit import log as logging from cloudinit import net +from cloudinit.net import eni +from cloudinit.net import network_state from cloudinit import ssh_util from cloudinit import type_utils from cloudinit import util @@ -138,9 +140,31 @@ class Distro(object): return self._bring_up_interfaces(dev_names) return False + def _apply_network_from_network_config(self, netconfig, bring_up=True): + distro = self.__class__ + LOG.warn("apply_network_config is not currently implemented " + "for distribution '%s'. Attempting to use apply_network", + distro) + header = '\n'.join([ + "# Converted from network_config for distro %s" % distro, + "# Implmentation of _write_network_config is needed." + ]) + ns = network_state.parse_net_config_data(netconfig) + contents = eni.network_state_to_eni( + ns, header=header, render_hwaddress=True) + return self.apply_network(contents, bring_up=bring_up) + def apply_network_config(self, netconfig, bring_up=False): - # Write it out - dev_names = self._write_network_config(netconfig) + # apply network config netconfig + # This method is preferred to apply_network which only takes + # a much less complete network config format (interfaces(5)). + try: + dev_names = self._write_network_config(netconfig) + except NotImplementedError: + # backwards compat until all distros have apply_network_config + return self._apply_network_from_network_config( + netconfig, bring_up=bring_up) + # Now try to bring them up if bring_up: return self._bring_up_interfaces(dev_names) diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py index 5ae9a509..f9b3b92e 100644 --- a/cloudinit/distros/debian.py +++ b/cloudinit/distros/debian.py @@ -55,7 +55,6 @@ class Distro(distros.Distro): hostname_conf_fn = "/etc/hostname" locale_conf_fn = "/etc/default/locale" network_conf_fn = "/etc/network/interfaces.d/50-cloud-init.cfg" - links_prefix = "/etc/systemd/network/50-cloud-init-" def __init__(self, name, cfg, paths): distros.Distro.__init__(self, name, cfg, paths) @@ -67,7 +66,7 @@ class Distro(distros.Distro): self._net_renderer = eni.Renderer({ 'eni_path': self.network_conf_fn, 'eni_header': ENI_HEADER, - 'links_prefix_path': None, + 'links_path_prefix': None, 'netrules_path': None, }) |
