summaryrefslogtreecommitdiff
path: root/cloudinit/sources
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2012-11-11 21:49:10 -0500
committerScott Moser <smoser@ubuntu.com>2012-11-11 21:49:10 -0500
commit71ba36704132ff8597dfc0e45b34e0c4424e239f (patch)
tree66ebf04364d5bad1fd6aa74770fad17109bc30c6 /cloudinit/sources
parent3248ac9bbb2008e88a3bd9c030ba0fcbc14b7fce (diff)
downloadvyos-cloud-init-71ba36704132ff8597dfc0e45b34e0c4424e239f.tar.gz
vyos-cloud-init-71ba36704132ff8597dfc0e45b34e0c4424e239f.zip
config-drive-v2: populate metadata['public-keys'] from 'public_keys'
other datasources populate 'public-keys' rather than 'public_keys' and there is a more complete handler in the base DataSource. So, to take advantage of that, have DataSourceConfigDrive copy public_keys to public-keys, and remove the 'get_public_ssh_keys' from the DataSourcEConfigDrive. LP: #1077700
Diffstat (limited to 'cloudinit/sources')
-rw-r--r--cloudinit/sources/DataSourceConfigDrive.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/cloudinit/sources/DataSourceConfigDrive.py b/cloudinit/sources/DataSourceConfigDrive.py
index 9729cfb9..dbbedce1 100644
--- a/cloudinit/sources/DataSourceConfigDrive.py
+++ b/cloudinit/sources/DataSourceConfigDrive.py
@@ -218,11 +218,6 @@ class DataSourceConfigDrive(sources.DataSource):
return True
- def get_public_ssh_keys(self):
- if not 'public-keys' in self.metadata:
- return []
- return self.metadata['public-keys']
-
class DataSourceConfigDriveNet(DataSourceConfigDrive):
def __init__(self, sys_cfg, distro, paths):
@@ -331,6 +326,13 @@ def read_config_drive_dir_v2(source_dir, version="2012-08-10"):
except KeyError:
raise BrokenConfigDriveDir("No uuid entry in metadata")
+ # other datasources (and config-drive-v1) populate metadata['public-keys']
+ # where as with config-drive-v2, that would be 'public_keys'. So, just
+ # copy the field if it is present
+ if ('public_keys' in results['metadata'] and not
+ 'public-keys' in results['metadata']):
+ results['public-keys'] = results['public_keys']
+
def read_content_path(item):
# do not use os.path.join here, as content_path starts with /
cpath = os.path.sep.join((source_dir, "openstack",