diff options
author | Jay Faulkner <jay@jvf.cc> | 2014-09-08 21:32:21 -0700 |
---|---|---|
committer | Jay Faulkner <jay@jvf.cc> | 2014-09-08 21:32:21 -0700 |
commit | 822000955100179f9f5944e0b2403c95fac39458 (patch) | |
tree | acd407ea74b1cb4e2448ce8f07d34b6a55e9f1b7 | |
parent | 1e019cc001a8f31fa978d76b86fbe7813b2a076f (diff) | |
download | vyos-cloud-init-822000955100179f9f5944e0b2403c95fac39458.tar.gz vyos-cloud-init-822000955100179f9f5944e0b2403c95fac39458.zip |
Update read_config_drive to use OS_VERSIONS tuple for readers
Updated read_config_drive: removed the unused version kwarg, used the
OS_VERSIONS tuple from the openstack helper to avoid hardcoding
versions.
Added a comment to the tuple in helpers/openstack.py asking for it to
be kept in chronological order.
-rw-r--r-- | cloudinit/sources/DataSourceConfigDrive.py | 18 | ||||
-rw-r--r-- | cloudinit/sources/helpers/openstack.py | 1 |
2 files changed, 11 insertions, 8 deletions
diff --git a/cloudinit/sources/DataSourceConfigDrive.py b/cloudinit/sources/DataSourceConfigDrive.py index 65477184..2456bc2e 100644 --- a/cloudinit/sources/DataSourceConfigDrive.py +++ b/cloudinit/sources/DataSourceConfigDrive.py @@ -169,15 +169,17 @@ def get_ds_mode(cfgdrv_ver, ds_cfg=None, user=None): return "net" -def read_config_drive(source_dir, version=openstack.OS_HAVANA): - reader = openstack.ConfigDriveReader(source_dir) - finders = [ - (reader.read_v2, [], {'version': version}), - (reader.read_v2, [], {'version': openstack.OS_GRIZZLY}), - (reader.read_v2, [], {'version': openstack.OS_FOLSOM}), - (reader.read_v1, [], {}), - ] +def read_config_drive(source_dir): excps = [] + finders = [] + reader = openstack.ConfigDriveReader(source_dir) + + # openstack.OS_VERSIONS is stored in chronological order, so to check the + # newest first, use reversed() + for version in reversed(openstack.OS_VERSIONS): + finders.append((reader.read_v2, [], {'version': version})) + finders.append((reader.read_v1, [], {})) + for (functor, args, kwargs) in finders: try: return functor(*args, **kwargs) diff --git a/cloudinit/sources/helpers/openstack.py b/cloudinit/sources/helpers/openstack.py index 0fac0335..ed102c4c 100644 --- a/cloudinit/sources/helpers/openstack.py +++ b/cloudinit/sources/helpers/openstack.py @@ -48,6 +48,7 @@ OS_LATEST = 'latest' OS_FOLSOM = '2012-08-10' OS_GRIZZLY = '2013-04-04' OS_HAVANA = '2013-10-17' +# keep this in chronological order by time: add new entries to the end OS_VERSIONS = ( OS_FOLSOM, OS_GRIZZLY, |