summaryrefslogtreecommitdiff
path: root/cloudinit/sources/DataSourceMAAS.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2015-08-25 15:03:35 -0400
committerScott Moser <smoser@ubuntu.com>2015-08-25 15:03:35 -0400
commit60a9ebaba73b2154ce841d36978e317197b66945 (patch)
tree54923e7fe54678468174ee00fb6ecee183309c4b /cloudinit/sources/DataSourceMAAS.py
parent827b7b903abc07d5fb04591bbae5587e6dc44993 (diff)
downloadvyos-cloud-init-60a9ebaba73b2154ce841d36978e317197b66945.tar.gz
vyos-cloud-init-60a9ebaba73b2154ce841d36978e317197b66945.zip
MAAS: fixes to data source and OauthUrlHelper
the previous version was broken. The vital fixes here are: * adding parsedate and oauth1 imports to url_helper * fix skew_data usage intending to use self.skew_data Additionally: * reorder imports in url_helper * fixes to python3 -m cloudinit.sources.DataSourceMaas LP: #1488507
Diffstat (limited to 'cloudinit/sources/DataSourceMAAS.py')
-rw-r--r--cloudinit/sources/DataSourceMAAS.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/cloudinit/sources/DataSourceMAAS.py b/cloudinit/sources/DataSourceMAAS.py
index 2f36bbe2..6c95c218 100644
--- a/cloudinit/sources/DataSourceMAAS.py
+++ b/cloudinit/sources/DataSourceMAAS.py
@@ -20,14 +20,10 @@
from __future__ import print_function
-from email.utils import parsedate
import errno
-import oauthlib.oauth1 as oauth1
import os
import time
-from six.moves.urllib_request import Request, urlopen
-
from cloudinit import log as logging
from cloudinit import sources
from cloudinit import url_helper
@@ -62,7 +58,7 @@ class DataSourceMAAS(sources.DataSource):
if required not in mcfg:
return url_helper.OauthUrlHelper()
- return url_helper.OauthHelper(
+ return url_helper.OauthUrlHelper(
consumer_key=mcfg['consumer_key'], token_key=mcfg['token_key'],
token_secret=mcfg['token_secret'],
consumer_secret=mcfg.get('consumer_secret'))
@@ -98,7 +94,7 @@ class DataSourceMAAS(sources.DataSource):
self.base_url = url
(userdata, metadata) = read_maas_seed_url(
- self.base_url, self.oauth_helper.md_headers,
+ self.base_url, read_file_or_url=self.oauth_helper.readurl,
paths=self.paths)
self.userdata_raw = userdata
self.metadata = metadata
@@ -312,25 +308,30 @@ if __name__ == "__main__":
def geturl(url):
return oauth_helper.readurl(url).contents
- def printurl(url, headers_cb):
- print("== %s ==\n%s\n" % (url, geturl(url)))
+ def printurl(url):
+ print("== %s ==\n%s\n" % (url, geturl(url).decode()))
def crawl(url):
if url.endswith("/"):
- for line in geturl(url).splitlines():
+ for line in geturl(url).decode().splitlines():
if line.endswith("/"):
crawl("%s%s" % (url, line))
+ elif line == "meta-data":
+ # meta-data is a dir, it *should* end in a /
+ crawl("%s%s" % (url, "meta-data/"))
else:
printurl("%s%s" % (url, line))
else:
printurl(url)
if args.subcmd == "check-seed":
+ readurl = oauth_helper.readurl
+ if args.url[0] == "/" or args.url.startswith("file://"):
+ readurl = None
(userdata, metadata) = read_maas_seed_url(
- args.url, read_file_or_url=oauth_helper.read_file_or_url,
- version=args.apiver)
+ args.url, version=args.apiver, read_file_or_url=readurl)
print("=== userdata ===")
- print(userdata)
+ print(userdata.decode())
print("=== metadata ===")
pprint.pprint(metadata)