diff options
| author | Scott Moser <smoser@brickies.net> | 2016-09-23 16:51:03 -0400 | 
|---|---|---|
| committer | Scott Moser <smoser@brickies.net> | 2016-09-23 16:51:03 -0400 | 
| commit | f13a89a1592d0445d93ea42809eba2363454488b (patch) | |
| tree | a254dd95a9f45ab55af92402e8c7789e28e2ae80 /cloudinit | |
| parent | 0e4eaef9640b6aaf09063124959717e05ed52b06 (diff) | |
| parent | 0439d8a17d181a2546f2f7cb2d71a04bbb13b186 (diff) | |
| download | vyos-cloud-init-f13a89a1592d0445d93ea42809eba2363454488b.tar.gz vyos-cloud-init-f13a89a1592d0445d93ea42809eba2363454488b.zip  | |
merge from master at 0.7.8-8-g0439d8a
Diffstat (limited to 'cloudinit')
| -rw-r--r-- | cloudinit/config/cc_disk_setup.py | 11 | ||||
| -rw-r--r-- | cloudinit/util.py | 11 | 
2 files changed, 17 insertions, 5 deletions
diff --git a/cloudinit/config/cc_disk_setup.py b/cloudinit/config/cc_disk_setup.py index b642f1f8..39a23688 100644 --- a/cloudinit/config/cc_disk_setup.py +++ b/cloudinit/config/cc_disk_setup.py @@ -33,6 +33,8 @@ BLKID_CMD = util.which("blkid")  BLKDEV_CMD = util.which("blockdev")  WIPEFS_CMD = util.which("wipefs") +LANG_C_ENV = {'LANG': 'C'} +  LOG = logging.getLogger(__name__) @@ -355,8 +357,11 @@ def get_mbr_hdd_size(device):  def get_gpt_hdd_size(device): -    out, _ = util.subp([SGDISK_CMD, '-p', device]) -    return out.splitlines()[0].split()[2] +    out, _ = util.subp([SGDISK_CMD, '-p', device], update_env=LANG_C_ENV) +    for line in out.splitlines(): +        if line.startswith("Disk"): +            return line.split()[2] +    raise Exception("Failed to get %s size from sgdisk" % (device))  def get_hdd_size(table_type, device): @@ -408,7 +413,7 @@ def check_partition_mbr_layout(device, layout):  def check_partition_gpt_layout(device, layout):      prt_cmd = [SGDISK_CMD, '-p', device]      try: -        out, _err = util.subp(prt_cmd) +        out, _err = util.subp(prt_cmd, update_env=LANG_C_ENV)      except Exception as e:          raise Exception("Error running partition command on %s\n%s" % (                          device, e)) diff --git a/cloudinit/util.py b/cloudinit/util.py index 6c5cf741..eb3e5899 100644 --- a/cloudinit/util.py +++ b/cloudinit/util.py @@ -154,7 +154,7 @@ def target_path(target, path=None):  def decode_binary(blob, encoding='utf-8'):      # Converts a binary type into a text type using given encoding. -    if isinstance(blob, six.text_type): +    if isinstance(blob, six.string_types):          return blob      return blob.decode(encoding) @@ -1762,7 +1762,7 @@ def delete_dir_contents(dirname):  def subp(args, data=None, rcs=None, env=None, capture=True, shell=False, -         logstring=False, decode="replace", target=None): +         logstring=False, decode="replace", target=None, update_env=None):      # not supported in cloud-init (yet), for now kept in the call signature      # to ease maintaining code shared between cloud-init and curtin @@ -1773,6 +1773,13 @@ def subp(args, data=None, rcs=None, env=None, capture=True, shell=False,          rcs = [0]      devnull_fp = None + +    if update_env: +        if env is None: +            env = os.environ +        env = env.copy() +        env.update(update_env) +      try:          if target_path(target) != "/":              args = ['chroot', target] + list(args)  | 
