summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2012-04-04 22:05:17 -0400
committerScott Moser <smoser@ubuntu.com>2012-04-04 22:05:17 -0400
commite105bfb7b3bf352244a73fc3a7e08a12a102f477 (patch)
tree3371be8994fd1090d76fea3fcedeb98eb5a541d7
parent7b2fc4e014e6b7a43e6b8fc719d82c3d0b0a8bed (diff)
downloadvyos-cloud-init-e105bfb7b3bf352244a73fc3a7e08a12a102f477.tar.gz
vyos-cloud-init-e105bfb7b3bf352244a73fc3a7e08a12a102f477.zip
add reading of 'seedfrom' via DataSourceNoCloud's DataSourceConfig
What this does is provide an second DataSource that could use the kernel command line url=. For example: ro root=/dev/vda url=http://example.com/i-abcdefg/ http://example.com/i-abcdefg/ would contain: datasource: NoCloud: # default seedfrom is None # if found, then it should contain a url with: # <url>/user-data and <url>/meta-data # seedfrom: http://my.example.com/i-abcde seedfrom: http://example.com/i-abcdefg/ Then, the NoCloudNet DataSource would find that seedfrom config and consume data at http://example.com/i-abcdefg/user-data and http://example.com/i-abcdefg/meta-data
-rw-r--r--cloudinit/DataSourceNoCloud.py7
-rw-r--r--doc/examples/cloud-config-datasources.txt7
2 files changed, 14 insertions, 0 deletions
diff --git a/cloudinit/DataSourceNoCloud.py b/cloudinit/DataSourceNoCloud.py
index 62ecc088..fe649513 100644
--- a/cloudinit/DataSourceNoCloud.py
+++ b/cloudinit/DataSourceNoCloud.py
@@ -67,6 +67,13 @@ class DataSourceNoCloud(DataSource.DataSource):
found.append(self.seeddir)
log.debug("using seeded cache data in %s" % self.seeddir)
+ # if the datasource config had a 'seedfrom' entry, then that takes
+ # precedence over a 'seedfrom' that was found in a filesystem
+ # but not over external medi
+ if 'seedfrom' in self.ds_cfg and self.ds_cfg['seedfrom']:
+ found.append(["ds_config"])
+ md["seedfrom"] = self.ds_cfg['seedfrom']
+
fslist = util.find_devs_with("TYPE=vfat")
fslist.extend(util.find_devs_with("TYPE=iso9660"))
diff --git a/doc/examples/cloud-config-datasources.txt b/doc/examples/cloud-config-datasources.txt
index 63a6cfc4..d10dde05 100644
--- a/doc/examples/cloud-config-datasources.txt
+++ b/doc/examples/cloud-config-datasources.txt
@@ -24,3 +24,10 @@ datasource:
consumer_key: Xh234sdkljf
token_key: kjfhgb3n
token_secret: 24uysdfx1w4
+
+ NoCloud:
+ # default seedfrom is None
+ # if found, then it should contain a url with:
+ # <url>/user-data and <url>/meta-data
+ # seedfrom: http://my.example.com/i-abcde
+ seedfrom: None