Merge ~chad.smith/cloud-init:cleanup/fix-ec2-test-metadata-leak into cloud-init:master

Proposed by Chad Smith
Status: Merged
Approved by: Chad Smith
Approved revision: 85f5c8302d194207465845af8b12e2b2785e17e3
Merge reported by: Server Team CI bot
Merged at revision: not available
Proposed branch: ~chad.smith/cloud-init:cleanup/fix-ec2-test-metadata-leak
Merge into: cloud-init:master
Diff against target: 145 lines (+24/-16)
1 file modified
tests/unittests/test_datasource/test_ec2.py (+24/-16)
Reviewer Review Type Date Requested Status
Server Team CI bot continuous-integration Approve
cloud-init Commiters Pending
Review via email: mp+358474@code.launchpad.net

Commit message

tests: ec2 mock missing httpretty user-data and instance-identity routes

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

FAILED: Continuous integration, rev:bc0048ee2870e17ad2e3fac1aaad2d4ad7d20219
https://jenkins.ubuntu.com/server/job/cloud-init-ci/426/
Executed test runs:
    SUCCESS: Checkout
    FAILED: Unit & Style Tests

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/426/rebuild

review: Needs Fixing (continuous-integration)
85f5c83... by Chad Smith

pycodestyle

Revision history for this message
Server Team CI bot (server-team-bot) wrote :

FAILED: Continuous integration, rev:85f5c8302d194207465845af8b12e2b2785e17e3
https://jenkins.ubuntu.com/server/job/cloud-init-ci/428/
Executed test runs:
    FAILED: Checkout

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/428/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

PASSED: Continuous integration, rev:85f5c8302d194207465845af8b12e2b2785e17e3
https://jenkins.ubuntu.com/server/job/cloud-init-ci/427/
Executed test runs:
    SUCCESS: Checkout
    SUCCESS: Unit & Style Tests
    SUCCESS: Ubuntu LTS: Build
    SUCCESS: Ubuntu LTS: Integration
    IN_PROGRESS: Declarative: Post Actions

Click here to trigger a rebuild:
https://jenkins.ubuntu.com/server/job/cloud-init-ci/427/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/tests/unittests/test_datasource/test_ec2.py b/tests/unittests/test_datasource/test_ec2.py
2index 9f81255..1a5956d 100644
3--- a/tests/unittests/test_datasource/test_ec2.py
4+++ b/tests/unittests/test_datasource/test_ec2.py
5@@ -211,9 +211,9 @@ class TestEc2(test_helpers.HttprettyTestCase):
6 self.metadata_addr = self.datasource.metadata_urls[0]
7 self.tmp = self.tmp_dir()
8
9- def data_url(self, version):
10+ def data_url(self, version, data_item='meta-data'):
11 """Return a metadata url based on the version provided."""
12- return '/'.join([self.metadata_addr, version, 'meta-data', ''])
13+ return '/'.join([self.metadata_addr, version, data_item])
14
15 def _patch_add_cleanup(self, mpath, *args, **kwargs):
16 p = mock.patch(mpath, *args, **kwargs)
17@@ -238,10 +238,18 @@ class TestEc2(test_helpers.HttprettyTestCase):
18 all_versions = (
19 [ds.min_metadata_version] + ds.extended_metadata_versions)
20 for version in all_versions:
21- metadata_url = self.data_url(version)
22+ metadata_url = self.data_url(version) + '/'
23 if version == md_version:
24 # Register all metadata for desired version
25- register_mock_metaserver(metadata_url, md)
26+ register_mock_metaserver(
27+ metadata_url, md.get('md', DEFAULT_METADATA))
28+ userdata_url = self.data_url(
29+ version, data_item='user-data')
30+ register_mock_metaserver(userdata_url, md.get('ud', ''))
31+ identity_url = self.data_url(
32+ version, data_item='dynamic/instance-identity')
33+ register_mock_metaserver(
34+ identity_url, md.get('id', DYNAMIC_METADATA))
35 else:
36 instance_id_url = metadata_url + 'instance-id'
37 if version == ds.min_metadata_version:
38@@ -261,7 +269,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
39 ds = self._setup_ds(
40 platform_data=self.valid_platform_data,
41 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
42- md=DEFAULT_METADATA)
43+ md={'md': DEFAULT_METADATA})
44 find_fallback_path = (
45 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')
46 with mock.patch(find_fallback_path) as m_find_fallback:
47@@ -293,7 +301,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
48 ds = self._setup_ds(
49 platform_data=self.valid_platform_data,
50 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
51- md=DEFAULT_METADATA)
52+ md={'md': DEFAULT_METADATA})
53 find_fallback_path = (
54 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')
55 with mock.patch(find_fallback_path) as m_find_fallback:
56@@ -322,7 +330,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
57 ds = self._setup_ds(
58 platform_data=self.valid_platform_data,
59 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
60- md=DEFAULT_METADATA)
61+ md={'md': DEFAULT_METADATA})
62 ds._network_config = {'cached': 'data'}
63 self.assertEqual({'cached': 'data'}, ds.network_config)
64
65@@ -338,7 +346,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
66 ds = self._setup_ds(
67 platform_data=self.valid_platform_data,
68 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
69- md=old_metadata)
70+ md={'md': old_metadata})
71 self.assertTrue(ds.get_data())
72 # Provide new revision of metadata that contains network data
73 register_mock_metaserver(
74@@ -372,7 +380,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
75 ds = self._setup_ds(
76 platform_data=self.valid_platform_data,
77 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
78- md=DEFAULT_METADATA)
79+ md={'md': DEFAULT_METADATA})
80 # Mock 404s on all versions except latest
81 all_versions = (
82 [ds.min_metadata_version] + ds.extended_metadata_versions)
83@@ -399,7 +407,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
84 ds = self._setup_ds(
85 platform_data=self.valid_platform_data,
86 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
87- md=DEFAULT_METADATA)
88+ md={'md': DEFAULT_METADATA})
89 ret = ds.get_data()
90 self.assertTrue(ret)
91 self.assertEqual(0, m_dhcp.call_count)
92@@ -412,7 +420,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
93 ds = self._setup_ds(
94 platform_data=self.valid_platform_data,
95 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
96- md=DEFAULT_METADATA)
97+ md={'md': DEFAULT_METADATA})
98 ret = ds.get_data()
99 self.assertTrue(ret)
100
101@@ -422,7 +430,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
102 ds = self._setup_ds(
103 platform_data={'uuid': uuid, 'uuid_source': 'dmi', 'serial': ''},
104 sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
105- md=DEFAULT_METADATA)
106+ md={'md': DEFAULT_METADATA})
107 ret = ds.get_data()
108 self.assertFalse(ret)
109
110@@ -432,7 +440,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
111 ds = self._setup_ds(
112 platform_data={'uuid': uuid, 'uuid_source': 'dmi', 'serial': ''},
113 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
114- md=DEFAULT_METADATA)
115+ md={'md': DEFAULT_METADATA})
116 ret = ds.get_data()
117 self.assertTrue(ret)
118
119@@ -442,7 +450,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
120 ds = self._setup_ds(
121 platform_data=self.valid_platform_data,
122 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
123- md=DEFAULT_METADATA)
124+ md={'md': DEFAULT_METADATA})
125 platform_attrs = [
126 attr for attr in ec2.CloudNames.__dict__.keys()
127 if not attr.startswith('__')]
128@@ -469,7 +477,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
129 ds = self._setup_ds(
130 platform_data=self.valid_platform_data,
131 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
132- md=DEFAULT_METADATA)
133+ md={'md': DEFAULT_METADATA})
134 ret = ds.get_data()
135 self.assertFalse(ret)
136 self.assertIn(
137@@ -499,7 +507,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
138 ds = self._setup_ds(
139 platform_data=self.valid_platform_data,
140 sys_cfg={'datasource': {'Ec2': {'strict_id': False}}},
141- md=DEFAULT_METADATA)
142+ md={'md': DEFAULT_METADATA})
143
144 ret = ds.get_data()
145 self.assertTrue(ret)

Subscribers

People subscribed via source and target branches