summaryrefslogtreecommitdiff
path: root/cloudinit/sources/DataSourceDigitalOcean.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2016-03-14 14:16:49 -0400
committerScott Moser <smoser@ubuntu.com>2016-03-14 14:16:49 -0400
commit92db1b884bf34339a4536a20123c45b01c9c49ce (patch)
tree22be0de3d0496212d26015c3b30423da9338aa5c /cloudinit/sources/DataSourceDigitalOcean.py
parent91ccf1b55b5b79694449446b029dd7c4570517a5 (diff)
parent72f826bff694b612d54b177635ca7e0dc83aed2f (diff)
downloadvyos-cloud-init-92db1b884bf34339a4536a20123c45b01c9c49ce.tar.gz
vyos-cloud-init-92db1b884bf34339a4536a20123c45b01c9c49ce.zip
merge with trunk
Diffstat (limited to 'cloudinit/sources/DataSourceDigitalOcean.py')
-rw-r--r--cloudinit/sources/DataSourceDigitalOcean.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/cloudinit/sources/DataSourceDigitalOcean.py b/cloudinit/sources/DataSourceDigitalOcean.py
index 069bdb41..12e863d2 100644
--- a/cloudinit/sources/DataSourceDigitalOcean.py
+++ b/cloudinit/sources/DataSourceDigitalOcean.py
@@ -18,7 +18,7 @@ from cloudinit import log as logging
from cloudinit import util
from cloudinit import sources
from cloudinit import ec2_utils
-from types import StringType
+
import functools
@@ -31,6 +31,7 @@ BUILTIN_DS_CONFIG = {
MD_RETRIES = 0
MD_TIMEOUT = 1
+
class DataSourceDigitalOcean(sources.DataSource):
def __init__(self, sys_cfg, distro, paths):
sources.DataSource.__init__(self, sys_cfg, distro, paths)
@@ -51,11 +52,15 @@ class DataSourceDigitalOcean(sources.DataSource):
self.timeout = MD_TIMEOUT
def get_data(self):
- caller = functools.partial(util.read_file_or_url, timeout=self.timeout,
- retries=self.retries)
- md = ec2_utils.MetadataMaterializer(str(caller(self.metadata_address)),
- base_url=self.metadata_address,
- caller=caller)
+ caller = functools.partial(util.read_file_or_url,
+ timeout=self.timeout, retries=self.retries)
+
+ def mcaller(url):
+ return caller(url).contents
+
+ md = ec2_utils.MetadataMaterializer(mcaller(self.metadata_address),
+ base_url=self.metadata_address,
+ caller=mcaller)
self.metadata = md.materialize()
@@ -71,10 +76,11 @@ class DataSourceDigitalOcean(sources.DataSource):
return "\n".join(self.metadata['vendor-data'])
def get_public_ssh_keys(self):
- if type(self.metadata['public-keys']) is StringType:
- return [self.metadata['public-keys']]
+ public_keys = self.metadata['public-keys']
+ if isinstance(public_keys, list):
+ return public_keys
else:
- return self.metadata['public-keys']
+ return [public_keys]
@property
def availability_zone(self):
@@ -83,7 +89,7 @@ class DataSourceDigitalOcean(sources.DataSource):
def get_instance_id(self):
return self.metadata['id']
- def get_hostname(self, fqdn=False):
+ def get_hostname(self, fqdn=False, resolve_ip=False):
return self.metadata['hostname']
def get_package_mirror_info(self):
@@ -95,8 +101,8 @@ class DataSourceDigitalOcean(sources.DataSource):
# Used to match classes to dependencies
datasources = [
- (DataSourceDigitalOcean, (sources.DEP_FILESYSTEM, sources.DEP_NETWORK)),
- ]
+ (DataSourceDigitalOcean, (sources.DEP_FILESYSTEM, sources.DEP_NETWORK)),
+]
# Return a list of data sources that match this set of dependencies