Ubuntu Pastebin

Paste from smoser at Mon, 11 Dec 2017 22:01:06 +0000

Download as text
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
diff --git a/cloudinit/distros/opensuse.py b/cloudinit/distros/opensuse.py
index a219e9fb..4d14691c 100644
--- a/cloudinit/distros/opensuse.py
+++ b/cloudinit/distros/opensuse.py
@@ -22,6 +22,10 @@ from cloudinit.settings import PER_INSTANCE
 
 LOG = logging.getLogger(__name__)
 
+SCRIPT_PATH_TPL = '/etc/sysconfig/network/ifcfg-%s'
+ROUTE_CONFIG_PATH_TPL = '/etc/sysconfig/network/ifroute-%s'
+RESOLVE_CONF_PATH = '/etc/resolv.conf'
+
 
 class Distro(distros.Distro):
     clock_conf_fn = '/etc/sysconfig/clock'
@@ -29,9 +33,6 @@ class Distro(distros.Distro):
     init_cmd = ['service']
     locale_conf_fn = '/etc/sysconfig/language'
     network_conf_fn = '/etc/sysconfig/network'
-    network_script_tpl = '/etc/sysconfig/network/ifcfg-%s'
-    resolve_conf_fn = '/etc/resolv.conf'
-    route_conf_tpl = '/etc/sysconfig/network/ifroute-%s'
     systemd_hostname_conf_fn = '/etc/hostname'
     systemd_locale_conf_fn = '/etc/locale.conf'
     tz_local_fn = '/etc/localtime'
@@ -164,49 +165,54 @@ class Distro(distros.Distro):
             util.write_file(out_fn, str(conf), 0o644)
 
     def _write_network(self, settings):
-        # Convert debian settings to ifcfg format
-        entries = net_util.translate_network(settings)
-        LOG.debug("Translated ubuntu style network settings %s into %s",
-                  settings, entries)
-        # Make the intermediate format as the suse format...
-        nameservers = []
-        searchservers = []
-        dev_names = entries.keys()
-        for (dev, info) in entries.items():
-            net_fn = self.network_script_tpl % (dev)
-            route_fn = self.route_conf_tpl % (dev)
-            mode = None
-            if info.get('auto', None):
-                mode = 'auto'
-            else:
-                mode = 'manual'
-            bootproto = info.get('bootproto', None)
-            gateway = info.get('gateway', None)
-            net_cfg = {
-                'BOOTPROTO': bootproto,
-                'BROADCAST': info.get('broadcast'),
-                'GATEWAY': gateway,
-                'IPADDR': info.get('address'),
-                'LLADDR': info.get('hwaddress'),
-                'NETMASK': info.get('netmask'),
-                'STARTMODE': mode,
-                'USERCONTROL': 'no'
-            }
-            if dev != 'lo':
-                net_cfg['ETHTOOL_OPTIONS'] = ''
-            else:
-                net_cfg['FIREWALL'] = 'no'
-            rhutil.update_sysconfig_file(net_fn, net_cfg, True)
-            if gateway and bootproto == 'static':
-                default_route = 'default    %s' % gateway
-                util.write_file(route_fn, default_route, 0o644)
-            if 'dns-nameservers' in info:
-                nameservers.extend(info['dns-nameservers'])
-            if 'dns-search' in info:
-                searchservers.extend(info['dns-search'])
-        if nameservers or searchservers:
-            rhutil.update_resolve_conf_file(self.resolve_conf_fn,
-                                            nameservers, searchservers)
-        return dev_names
+        return write_network_from_eni(settings)
+
+
+def write_network_from_eni(eni, target="/"):
+    # Convert debian settings to ifcfg format
+    entries = net_util.translate_network(eni)
+    LOG.debug("Translated ubuntu style network settings %s into %s",
+              eni, entries)
+    # Make the intermediate format as the suse format...
+    nameservers = []
+    searchservers = []
+    dev_names = entries.keys()
+    for (dev, info) in entries.items():
+        net_fn = util.target_path(target, SCRIPT_PATH_TPL % (dev))
+        route_fn = util.target_path(target, ROUTE_CONFIG_PATH_TPL % (dev))
+        mode = None
+        if info.get('auto', None):
+            mode = 'auto'
+        else:
+            mode = 'manual'
+        bootproto = info.get('bootproto', None)
+        gateway = info.get('gateway', None)
+        net_cfg = {
+            'BOOTPROTO': bootproto,
+            'BROADCAST': info.get('broadcast'),
+            'GATEWAY': gateway,
+            'IPADDR': info.get('address'),
+            'LLADDR': info.get('hwaddress'),
+            'NETMASK': info.get('netmask'),
+            'STARTMODE': mode,
+            'USERCONTROL': 'no'
+        }
+        if dev != 'lo':
+            net_cfg['ETHTOOL_OPTIONS'] = ''
+        else:
+            net_cfg['FIREWALL'] = 'no'
+        rhutil.update_sysconfig_file(net_fn, net_cfg, True)
+        if gateway and bootproto == 'static':
+            default_route = 'default    %s' % gateway
+            util.write_file(route_fn, default_route, 0o644)
+        if 'dns-nameservers' in info:
+            nameservers.extend(info['dns-nameservers'])
+        if 'dns-search' in info:
+            searchservers.extend(info['dns-search'])
+    if nameservers or searchservers:
+        rhutil.update_resolve_conf_file(
+            util.target_path(target, RESOLVE_CONF_PATH),
+            nameservers, searchservers)
+    return dev_names
 
 # vi: ts=4 expandtab
Download as text