summaryrefslogtreecommitdiff
path: root/cloudinit/net/cmdline.py
diff options
context:
space:
mode:
authorScott Moser <smoser@brickies.net>2017-05-26 15:53:48 -0400
committerScott Moser <smoser@brickies.net>2017-05-26 15:53:48 -0400
commitcc9748215f612b8c600c1080c60af71fe7624c47 (patch)
tree3f008cb6350adf6bc003d2d5ad2d851c9506b81e /cloudinit/net/cmdline.py
parent3dd56b4504003928bace87a7e67b08e9376fc6c1 (diff)
parent16a7302f6acb69adb0aee75eaf12392fa3688853 (diff)
downloadvyos-cloud-init-cc9748215f612b8c600c1080c60af71fe7624c47.tar.gz
vyos-cloud-init-cc9748215f612b8c600c1080c60af71fe7624c47.zip
merge from master at 0.7.9-153-g16a7302f
Diffstat (limited to 'cloudinit/net/cmdline.py')
-rwxr-xr-xcloudinit/net/cmdline.py36
1 files changed, 6 insertions, 30 deletions
diff --git a/cloudinit/net/cmdline.py b/cloudinit/net/cmdline.py
index 7c5d11a7..38b27a52 100755
--- a/cloudinit/net/cmdline.py
+++ b/cloudinit/net/cmdline.py
@@ -9,41 +9,12 @@ import base64
import glob
import gzip
import io
-import shlex
-import sys
-
-import six
from . import get_devicelist
from . import read_sys_net_safe
from cloudinit import util
-PY26 = sys.version_info[0:2] == (2, 6)
-
-
-def _shlex_split(blob):
- if PY26 and isinstance(blob, six.text_type):
- # Older versions don't support unicode input
- blob = blob.encode("utf8")
- return shlex.split(blob)
-
-
-def _load_shell_content(content, add_empty=False, empty_val=None):
- """Given shell like syntax (key=value\nkey2=value2\n) in content
- return the data in dictionary form. If 'add_empty' is True
- then add entries in to the returned dictionary for 'VAR='
- variables. Set their value to empty_val."""
- data = {}
- for line in _shlex_split(content):
- key, value = line.split("=", 1)
- if not value:
- value = empty_val
- if add_empty or value:
- data[key] = value
-
- return data
-
def _klibc_to_config_entry(content, mac_addrs=None):
"""Convert a klibc written shell content file to a 'config' entry
@@ -63,7 +34,7 @@ def _klibc_to_config_entry(content, mac_addrs=None):
if mac_addrs is None:
mac_addrs = {}
- data = _load_shell_content(content)
+ data = util.load_shell_content(content)
try:
name = data['DEVICE'] if 'DEVICE' in data else data['DEVICE6']
except KeyError:
@@ -100,6 +71,11 @@ def _klibc_to_config_entry(content, mac_addrs=None):
cur_proto = data.get(pre + 'PROTO', proto)
subnet = {'type': cur_proto, 'control': 'manual'}
+ # only populate address for static types. While the rendered config
+ # may have an address for dhcp, that is not really expected.
+ if cur_proto == 'static':
+ subnet['address'] = data[pre + 'ADDR']
+
# these fields go right on the subnet
for key in ('NETMASK', 'BROADCAST', 'GATEWAY'):
if pre + key in data: