summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Faulkner <jay@jvf.cc>2014-09-08 21:32:21 -0700
committerJay Faulkner <jay@jvf.cc>2014-09-08 21:32:21 -0700
commit822000955100179f9f5944e0b2403c95fac39458 (patch)
treeacd407ea74b1cb4e2448ce8f07d34b6a55e9f1b7
parent1e019cc001a8f31fa978d76b86fbe7813b2a076f (diff)
downloadvyos-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.py18
-rw-r--r--cloudinit/sources/helpers/openstack.py1
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,