Merge lp:~darkmuggle-deactivatedaccount/cloud-init/cloud-sigma-vendordata into lp:~cloud-init-dev/cloud-init/trunk

Proposed by Ben Howard
Status: Merged
Merged at revision: 974
Proposed branch: lp:~darkmuggle-deactivatedaccount/cloud-init/cloud-sigma-vendordata
Merge into: lp:~cloud-init-dev/cloud-init/trunk
Diff against target: 55 lines (+29/-1)
2 files modified
cloudinit/sources/DataSourceCloudSigma.py (+2/-0)
tests/unittests/test_datasource/test_cloudsigma.py (+27/-1)
To merge this branch: bzr merge lp:~darkmuggle-deactivatedaccount/cloud-init/cloud-sigma-vendordata
Reviewer Review Type Date Requested Status
Scott Moser Pending
Review via email: mp+221119@code.launchpad.net

Description of the change

Enable vendordata for Cloud Sigma

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cloudinit/sources/DataSourceCloudSigma.py'
2--- cloudinit/sources/DataSourceCloudSigma.py 2014-03-04 17:11:10 +0000
3+++ cloudinit/sources/DataSourceCloudSigma.py 2014-05-27 16:18:45 +0000
4@@ -66,6 +66,8 @@
5 self.userdata_raw = server_meta.get('cloudinit-user-data', "")
6 if 'cloudinit-user-data' in base64_fields:
7 self.userdata_raw = b64decode(self.userdata_raw)
8+ if 'cloudinit' in server_context.get('vendor_data', {}):
9+ self.vendordata_raw = server_context["vendor_data"]["cloudinit"]
10
11 self.metadata = server_context
12 self.ssh_public_key = server_meta['ssh_public_key']
13
14=== modified file 'tests/unittests/test_datasource/test_cloudsigma.py'
15--- tests/unittests/test_datasource/test_cloudsigma.py 2014-02-19 08:45:53 +0000
16+++ tests/unittests/test_datasource/test_cloudsigma.py 2014-05-27 16:18:45 +0000
17@@ -20,7 +20,11 @@
18 "smp": 1,
19 "tags": ["much server", "very performance"],
20 "uuid": "65b2fb23-8c03-4187-a3ba-8b7c919e8890",
21- "vnc_password": "9e84d6cb49e46379"
22+ "vnc_password": "9e84d6cb49e46379",
23+ "vendor_data": {
24+ "location": "zrh",
25+ "cloudinit": "#cloud-config\n\n...",
26+ }
27 }
28
29
30@@ -68,3 +72,25 @@
31 self.datasource.get_data()
32
33 self.assertEqual(self.datasource.userdata_raw, b'hi world\n')
34+
35+ def test_vendor_data(self):
36+ self.assertEqual(self.datasource.vendordata_raw,
37+ SERVER_CONTEXT['vendor_data']['cloudinit'])
38+
39+ def test_lack_of_vendor_data(self):
40+ stripped_context = copy.deepcopy(SERVER_CONTEXT)
41+ del stripped_context["vendor_data"]
42+ self.datasource = DataSourceCloudSigma.DataSourceCloudSigma("", "", "")
43+ self.datasource.cepko = CepkoMock(stripped_context)
44+ self.datasource.get_data()
45+
46+ self.assertIsNone(self.datasource.vendordata_raw)
47+
48+ def test_lack_of_cloudinit_key_in_vendor_data(self):
49+ stripped_context = copy.deepcopy(SERVER_CONTEXT)
50+ del stripped_context["vendor_data"]["cloudinit"]
51+ self.datasource = DataSourceCloudSigma.DataSourceCloudSigma("", "", "")
52+ self.datasource.cepko = CepkoMock(stripped_context)
53+ self.datasource.get_data()
54+
55+ self.assertIsNone(self.datasource.vendordata_raw)