summaryrefslogtreecommitdiff
path: root/cloudinit/sources
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@yahoo-inc.com>2012-10-24 20:31:19 -0700
committerJoshua Harlow <harlowja@yahoo-inc.com>2012-10-24 20:31:19 -0700
commit758e152721891c707573757fe7a7ff410ec446e2 (patch)
tree81b8484365b6b3400c2f372b8241b3463018af61 /cloudinit/sources
parent71b4108d029fff61ff8183ffbd77917569bea2cd (diff)
downloadvyos-cloud-init-758e152721891c707573757fe7a7ff410ec446e2.tar.gz
vyos-cloud-init-758e152721891c707573757fe7a7ff410ec446e2.zip
Handle the case where newer versions of boto
are used that lazily load the metadata from the ec2 metadata service. 1. Add a ec2_utils module that checks which version of boto is being used and under the right versions the metadata dictionary will be expanded. 2. Use this new ec2_utils module in the cloudstack and ec2 datasources as there entrypoints into boto.
Diffstat (limited to 'cloudinit/sources')
-rw-r--r--cloudinit/sources/DataSourceCloudStack.py11
-rw-r--r--cloudinit/sources/DataSourceEc2.py15
2 files changed, 14 insertions, 12 deletions
diff --git a/cloudinit/sources/DataSourceCloudStack.py b/cloudinit/sources/DataSourceCloudStack.py
index f7ffa7cb..78cf24d7 100644
--- a/cloudinit/sources/DataSourceCloudStack.py
+++ b/cloudinit/sources/DataSourceCloudStack.py
@@ -26,8 +26,7 @@ from struct import pack
import os
import time
-import boto.utils as boto_utils
-
+from cloudinit import ec2_utils as ec2
from cloudinit import log as logging
from cloudinit import sources
from cloudinit import url_helper as uhelp
@@ -116,10 +115,10 @@ class DataSourceCloudStack(sources.DataSource):
if not self.wait_for_metadata_service():
return False
start_time = time.time()
- self.userdata_raw = boto_utils.get_instance_userdata(self.api_ver,
- None, self.metadata_address)
- self.metadata = boto_utils.get_instance_metadata(self.api_ver,
- self.metadata_address)
+ self.userdata_raw = ec2.get_instance_userdata(self.api_ver,
+ self.metadata_address)
+ self.metadata = ec2.get_instance_metadata(self.api_ver,
+ self.metadata_address)
LOG.debug("Crawl of metadata service took %s seconds",
int(time.time() - start_time))
return True
diff --git a/cloudinit/sources/DataSourceEc2.py b/cloudinit/sources/DataSourceEc2.py
index 3686fa10..3da7b54e 100644
--- a/cloudinit/sources/DataSourceEc2.py
+++ b/cloudinit/sources/DataSourceEc2.py
@@ -23,8 +23,7 @@
import os
import time
-import boto.utils as boto_utils
-
+from cloudinit import ec2_utils as ec2
from cloudinit import log as logging
from cloudinit import sources
from cloudinit import url_helper as uhelp
@@ -53,6 +52,10 @@ class DataSourceEc2(sources.DataSource):
def __str__(self):
return util.obj_name(self)
+ def __getstate__(self):
+ # Versions of boto
+ pass
+
def get_data(self):
seed_ret = {}
if util.read_optional_seed(seed_ret, base=(self.seed_dir + "/")):
@@ -65,10 +68,10 @@ class DataSourceEc2(sources.DataSource):
if not self.wait_for_metadata_service():
return False
start_time = time.time()
- self.userdata_raw = boto_utils.get_instance_userdata(self.api_ver,
- None, self.metadata_address)
- self.metadata = boto_utils.get_instance_metadata(self.api_ver,
- self.metadata_address)
+ self.userdata_raw = ec2.get_instance_userdata(self.api_ver,
+ self.metadata_address)
+ self.metadata = ec2.get_instance_metadata(self.api_ver,
+ self.metadata_address)
LOG.debug("Crawl of metadata service took %s seconds",
int(time.time() - start_time))
return True