diff options
author | Ben Howard <ben.howard@canonical.com> | 2013-10-03 17:30:57 -0600 |
---|---|---|
committer | Ben Howard <ben.howard@canonical.com> | 2013-10-03 17:30:57 -0600 |
commit | 7b5480e46e14c6e31492e0a1e9ef4eb05a9d746d (patch) | |
tree | d8d505daab74e30a08aa1ad9158ae372ab95aea1 /cloudinit | |
parent | 193704c37b97a5687cab09416f9f38e632c76fa3 (diff) | |
download | vyos-cloud-init-7b5480e46e14c6e31492e0a1e9ef4eb05a9d746d.tar.gz vyos-cloud-init-7b5480e46e14c6e31492e0a1e9ef4eb05a9d746d.zip |
Added support for 'ephmeral0.<auto|any|0>' for device mappings in disk
formating support.
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/config/cc_disk_setup.py | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/cloudinit/config/cc_disk_setup.py b/cloudinit/config/cc_disk_setup.py index 127b5879..5faffefc 100644 --- a/cloudinit/config/cc_disk_setup.py +++ b/cloudinit/config/cc_disk_setup.py @@ -94,6 +94,15 @@ def update_disk_setup_devices(disk_setup, tformer): LOG.debug("updated disk_setup device entry '%s' to '%s'", origname, transformed) +def reset_part_definition(definition, value): + if not value and 'partition' in definition: + definition['opartition'] = definition['partition'] + del definition['partition'] + + else: + definition['partition'] = value + + return definition def update_fs_setup_devices(disk_setup, tformer): # update 'fs_setup' dictionary anywhere were a device may occur @@ -109,17 +118,27 @@ def update_fs_setup_devices(disk_setup, tformer): continue transformed = None - if len(origname.split('.')) > 1: + if len(origname.split('.')) == 2: # this maps ephemeralX.Y to a proper disk name. For example, # if the origname is 'ephemeral0.1' and transformed is /dev/sdb # then the returned device will be /dev/sdb1 _if_ /dev/sdb1 exists # otherwise NONE - base_name = origname.split('.')[0] + base_name, partition = origname.split('.') tformed = tformer(base_name) LOG.info("base device for %s is %s" % (origname, tformed)) - transformed = util.map_device_alias(tformed, alias=origname) - LOG.info("%s is mapped to %s" % (origname, transformed)) + if partition == "0": + transformed = tformed + definition = reset_part_definition(definition, None) + + elif partition in ("auto", "any"): + definition = reset_part_definition(definition, partition) + transformed = tformed + + else: + definition = reset_part_definition(definition, None) + transformed = util.map_device_alias(tformed, alias=origname) + LOG.info("%s is mapped to %s" % (origname, transformed)) else: transformed = tformer(origname) |