Merge lp:~corey.bryant/charms/trusty/nova-cloud-controller/amulet-git-fixups into lp:~openstack-charmers-archive/charms/trusty/nova-cloud-controller/next
- Trusty Tahr (14.04)
- amulet-git-fixups
- Merge into next
Status: | Merged |
---|---|
Merged at revision: | 174 |
Proposed branch: | lp:~corey.bryant/charms/trusty/nova-cloud-controller/amulet-git-fixups |
Merge into: | lp:~openstack-charmers-archive/charms/trusty/nova-cloud-controller/next |
Diff against target: |
349 lines (+162/-106) 2 files modified
tests/00-setup (+1/-0) tests/basic_deployment.py (+161/-106) |
To merge this branch: | bzr merge lp:~corey.bryant/charms/trusty/nova-cloud-controller/amulet-git-fixups |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenStack Charmers | Pending | ||
Review via email: mp+264569@code.launchpad.net |
Commit message
Description of the change
Corey Bryant (corey.bryant) wrote : | # |
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #6122 nova-cloud-
LINT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #5754 nova-cloud-
UNIT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #5111 nova-cloud-
AMULET OK: passed
Build: http://
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #6126 nova-cloud-
LINT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #5758 nova-cloud-
UNIT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #5115 nova-cloud-
AMULET FAIL: amulet-test failed
AMULET Results (max last 2 lines):
make: *** [test] Error 1
ERROR:root:Make target returned non-zero.
Full amulet test output: http://
Build: http://
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #6176 nova-cloud-
LINT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #5808 nova-cloud-
UNIT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #6177 nova-cloud-
LINT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #5809 nova-cloud-
UNIT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #5120 nova-cloud-
AMULET FAIL: amulet-test failed
AMULET Results (max last 2 lines):
make: *** [test] Error 1
ERROR:root:Make target returned non-zero.
Full amulet test output: http://
Build: http://
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #5121 nova-cloud-
AMULET OK: passed
Build: http://
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_lint_check #6226 nova-cloud-
LINT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_unit_test #5858 nova-cloud-
UNIT OK: passed
uosci-testing-bot (uosci-testing-bot) wrote : | # |
charm_amulet_test #5125 nova-cloud-
AMULET OK: passed
Build: http://
Preview Diff
1 | === modified file 'tests/00-setup' | |||
2 | --- tests/00-setup 2014-09-29 21:03:48 +0000 | |||
3 | +++ tests/00-setup 2015-07-14 19:28:42 +0000 | |||
4 | @@ -5,6 +5,7 @@ | |||
5 | 5 | sudo add-apt-repository --yes ppa:juju/stable | 5 | sudo add-apt-repository --yes ppa:juju/stable |
6 | 6 | sudo apt-get update --yes | 6 | sudo apt-get update --yes |
7 | 7 | sudo apt-get install --yes python-amulet \ | 7 | sudo apt-get install --yes python-amulet \ |
8 | 8 | python-distro-info \ | ||
9 | 8 | python-glanceclient \ | 9 | python-glanceclient \ |
10 | 9 | python-keystoneclient \ | 10 | python-keystoneclient \ |
11 | 10 | python-novaclient | 11 | python-novaclient |
12 | 11 | 12 | ||
13 | === modified file 'tests/017-basic-trusty-kilo' (properties changed: -x to +x) | |||
14 | === modified file 'tests/basic_deployment.py' | |||
15 | --- tests/basic_deployment.py 2015-07-09 18:16:49 +0000 | |||
16 | +++ tests/basic_deployment.py 2015-07-14 19:28:42 +0000 | |||
17 | @@ -68,21 +68,24 @@ | |||
18 | 68 | """Configure all of the services.""" | 68 | """Configure all of the services.""" |
19 | 69 | nova_cc_config = {} | 69 | nova_cc_config = {} |
20 | 70 | if self.git: | 70 | if self.git: |
23 | 71 | release = self._get_openstack_release_string() | 71 | amulet_http_proxy = os.environ.get('AMULET_HTTP_PROXY') |
24 | 72 | reqs_branch = 'stable/' + release | 72 | |
25 | 73 | reqs_repo = 'git://github.com/openstack/requirements' | ||
26 | 74 | nova_repo = 'git://github.com/openstack/nova' | ||
27 | 73 | if self._get_openstack_release() == self.trusty_icehouse: | 75 | if self._get_openstack_release() == self.trusty_icehouse: |
32 | 74 | nova_branch = release + '-eol' | 76 | reqs_repo = 'git://github.com/coreycb/requirements' |
33 | 75 | else: | 77 | nova_repo = 'git://github.com/coreycb/nova' |
34 | 76 | nova_branch = 'stable/' + release | 78 | |
35 | 77 | amulet_http_proxy = os.environ.get('AMULET_HTTP_PROXY') | 79 | branch = 'stable/' + self._get_openstack_release_string() |
36 | 80 | |||
37 | 78 | openstack_origin_git = { | 81 | openstack_origin_git = { |
38 | 79 | 'repositories': [ | 82 | 'repositories': [ |
39 | 80 | {'name': 'requirements', | 83 | {'name': 'requirements', |
42 | 81 | 'repository': 'git://github.com/openstack/requirements', | 84 | 'repository': reqs_repo, |
43 | 82 | 'branch': reqs_branch}, | 85 | 'branch': branch}, |
44 | 83 | {'name': 'nova', | 86 | {'name': 'nova', |
47 | 84 | 'repository': 'git://github.com/openstack/nova', | 87 | 'repository': nova_repo, |
48 | 85 | 'branch': nova_branch}, | 88 | 'branch': branch}, |
49 | 86 | ], | 89 | ], |
50 | 87 | 'directory': '/mnt/openstack-git', | 90 | 'directory': '/mnt/openstack-git', |
51 | 88 | 'http_proxy': amulet_http_proxy, | 91 | 'http_proxy': amulet_http_proxy, |
52 | @@ -177,8 +180,11 @@ | |||
53 | 177 | if self._get_openstack_release() >= self.precise_folsom: | 180 | if self._get_openstack_release() >= self.precise_folsom: |
54 | 178 | endpoint_vol['id'] = u.not_null | 181 | endpoint_vol['id'] = u.not_null |
55 | 179 | endpoint_id['id'] = u.not_null | 182 | endpoint_id['id'] = u.not_null |
58 | 180 | expected = {'s3': [endpoint_vol], 'compute': [endpoint_vol], | 183 | if self._get_openstack_release() >= self.trusty_kilo: |
59 | 181 | 'ec2': [endpoint_vol], 'identity': [endpoint_id]} | 184 | expected = {'compute': [endpoint_vol], 'identity': [endpoint_id]} |
60 | 185 | else: | ||
61 | 186 | expected = {'s3': [endpoint_vol], 'compute': [endpoint_vol], | ||
62 | 187 | 'ec2': [endpoint_vol], 'identity': [endpoint_id]} | ||
63 | 182 | actual = self.keystone_demo.service_catalog.get_endpoints() | 188 | actual = self.keystone_demo.service_catalog.get_endpoints() |
64 | 183 | 189 | ||
65 | 184 | ret = u.validate_svc_catalog_endpoint_data(expected, actual) | 190 | ret = u.validate_svc_catalog_endpoint_data(expected, actual) |
66 | @@ -204,6 +210,9 @@ | |||
67 | 204 | 210 | ||
68 | 205 | def test_ec2_api_endpoint(self): | 211 | def test_ec2_api_endpoint(self): |
69 | 206 | """Verify the EC2 api endpoint data.""" | 212 | """Verify the EC2 api endpoint data.""" |
70 | 213 | if self._get_openstack_release() >= self.trusty_kilo: | ||
71 | 214 | return | ||
72 | 215 | |||
73 | 207 | endpoints = self.keystone.endpoints.list() | 216 | endpoints = self.keystone.endpoints.list() |
74 | 208 | admin_port = internal_port = public_port = '8773' | 217 | admin_port = internal_port = public_port = '8773' |
75 | 209 | expected = {'id': u.not_null, | 218 | expected = {'id': u.not_null, |
76 | @@ -221,6 +230,9 @@ | |||
77 | 221 | 230 | ||
78 | 222 | def test_s3_api_endpoint(self): | 231 | def test_s3_api_endpoint(self): |
79 | 223 | """Verify the S3 api endpoint data.""" | 232 | """Verify the S3 api endpoint data.""" |
80 | 233 | if self._get_openstack_release() >= self.trusty_kilo: | ||
81 | 234 | return | ||
82 | 235 | |||
83 | 224 | endpoints = self.keystone.endpoints.list() | 236 | endpoints = self.keystone.endpoints.list() |
84 | 225 | admin_port = internal_port = public_port = '3333' | 237 | admin_port = internal_port = public_port = '3333' |
85 | 226 | expected = {'id': u.not_null, | 238 | expected = {'id': u.not_null, |
86 | @@ -274,21 +286,22 @@ | |||
87 | 274 | expected = { | 286 | expected = { |
88 | 275 | 'nova_internal_url': u.valid_url, | 287 | 'nova_internal_url': u.valid_url, |
89 | 276 | 'nova_public_url': u.valid_url, | 288 | 'nova_public_url': u.valid_url, |
90 | 277 | 's3_public_url': u.valid_url, | ||
91 | 278 | 's3_service': 's3', | ||
92 | 279 | 'ec2_admin_url': u.valid_url, | ||
93 | 280 | 'ec2_internal_url': u.valid_url, | ||
94 | 281 | 'nova_service': 'nova', | 289 | 'nova_service': 'nova', |
95 | 282 | 's3_region': 'RegionOne', | ||
96 | 283 | 'private-address': u.valid_ip, | 290 | 'private-address': u.valid_ip, |
97 | 284 | 'nova_region': 'RegionOne', | 291 | 'nova_region': 'RegionOne', |
98 | 285 | 'ec2_public_url': u.valid_url, | ||
99 | 286 | 'ec2_region': 'RegionOne', | ||
100 | 287 | 's3_internal_url': u.valid_url, | ||
101 | 288 | 's3_admin_url': u.valid_url, | ||
102 | 289 | 'nova_admin_url': u.valid_url, | 292 | 'nova_admin_url': u.valid_url, |
103 | 290 | 'ec2_service': 'ec2' | ||
104 | 291 | } | 293 | } |
105 | 294 | if self._get_openstack_release() < self.trusty_kilo: | ||
106 | 295 | expected['s3_admin_url'] = u.valid_url | ||
107 | 296 | expected['s3_internal_url'] = u.valid_url | ||
108 | 297 | expected['s3_public_url'] = u.valid_url | ||
109 | 298 | expected['s3_region'] = 'RegionOne' | ||
110 | 299 | expected['s3_service'] = 's3' | ||
111 | 300 | expected['ec2_admin_url'] = u.valid_url | ||
112 | 301 | expected['ec2_internal_url'] = u.valid_url | ||
113 | 302 | expected['ec2_public_url'] = u.valid_url | ||
114 | 303 | expected['ec2_region'] = 'RegionOne' | ||
115 | 304 | expected['ec2_service'] = 'ec2' | ||
116 | 292 | 305 | ||
117 | 293 | ret = u.validate_relation_data(unit, relation, expected) | 306 | ret = u.validate_relation_data(unit, relation, expected) |
118 | 294 | if ret: | 307 | if ret: |
119 | @@ -314,6 +327,8 @@ | |||
120 | 314 | 'service_tenant_id': u.not_null, | 327 | 'service_tenant_id': u.not_null, |
121 | 315 | 'service_host': u.valid_ip | 328 | 'service_host': u.valid_ip |
122 | 316 | } | 329 | } |
123 | 330 | if self._get_openstack_release() >= self.trusty_kilo: | ||
124 | 331 | expected['service_username'] = 'nova' | ||
125 | 317 | 332 | ||
126 | 318 | ret = u.validate_relation_data(unit, relation, expected) | 333 | ret = u.validate_relation_data(unit, relation, expected) |
127 | 319 | if ret: | 334 | if ret: |
128 | @@ -462,97 +477,137 @@ | |||
129 | 462 | endpoint_type='publicURL') | 477 | endpoint_type='publicURL') |
130 | 463 | keystone_ec2 = "{}/ec2tokens".format(keystone_ep) | 478 | keystone_ec2 = "{}/ec2tokens".format(keystone_ep) |
131 | 464 | 479 | ||
132 | 465 | expected = {'dhcpbridge_flagfile': '/etc/nova/nova.conf', | ||
133 | 466 | 'dhcpbridge': '/usr/bin/nova-dhcpbridge', | ||
134 | 467 | 'logdir': '/var/log/nova', | ||
135 | 468 | 'state_path': '/var/lib/nova', | ||
136 | 469 | 'lock_path': '/var/lock/nova', | ||
137 | 470 | 'force_dhcp_release': 'True', | ||
138 | 471 | 'iscsi_helper': 'tgtadm', | ||
139 | 472 | 'libvirt_use_virtio_for_bridges': 'True', | ||
140 | 473 | 'connection_type': 'libvirt', | ||
141 | 474 | 'root_helper': 'sudo nova-rootwrap /etc/nova/rootwrap.conf', | ||
142 | 475 | 'verbose': 'False', | ||
143 | 476 | 'debug': 'False', | ||
144 | 477 | 'ec2_private_dns_show_ip': 'True', | ||
145 | 478 | 'api_paste_config': '/etc/nova/api-paste.ini', | ||
146 | 479 | 'volumes_path': '/var/lib/nova/volumes', | ||
147 | 480 | 'enabled_apis': 'ec2,osapi_compute,metadata', | ||
148 | 481 | 'auth_strategy': 'keystone', | ||
149 | 482 | 'compute_driver': 'libvirt.LibvirtDriver', | ||
150 | 483 | 'keystone_ec2_url': keystone_ec2, | ||
151 | 484 | 'rabbit_userid': 'nova', | ||
152 | 485 | 'rabbit_virtual_host': 'openstack', | ||
153 | 486 | 'rabbit_password': rabbitmq_relation['password'], | ||
154 | 487 | 'rabbit_host': rabbitmq_relation['hostname'], | ||
155 | 488 | 'glance_api_servers': glance_relation['glance-api-server'], | ||
156 | 489 | 'network_manager': 'nova.network.manager.FlatDHCPManager', | ||
157 | 490 | 's3_listen_port': '3323', | ||
158 | 491 | 'osapi_compute_listen_port': '8764', | ||
159 | 492 | 'ec2_listen_port': '8763'} | ||
160 | 493 | |||
161 | 494 | # This has been moved to [database] for I and above | ||
162 | 495 | if self._get_openstack_release() < self.precise_icehouse: | ||
163 | 496 | mysql_relation = self.mysql_sentry.relation('shared-db', | ||
164 | 497 | 'nova-cloud-controller:shared-db') | ||
165 | 498 | db_uri = "mysql://{}:{}@{}/{}".format('nova', | ||
166 | 499 | mysql_relation['nova_password'], | ||
167 | 500 | mysql_relation['db_host'], | ||
168 | 501 | 'nova') | ||
169 | 502 | expected['sql_connection'] = db_uri | ||
170 | 503 | |||
171 | 504 | ret = u.validate_config_data(unit, conf, 'DEFAULT', expected) | ||
172 | 505 | if ret: | ||
173 | 506 | message = "nova config error: {}".format(ret) | ||
174 | 507 | amulet.raise_status(amulet.FAIL, msg=message) | ||
175 | 508 | |||
176 | 509 | def test_nova_database_config(self): | ||
177 | 510 | """Verify the data in the nova config file's database section.""" | ||
178 | 511 | # NOTE(hopem): this is >= Icehouse only | ||
179 | 512 | if self._get_openstack_release() < self.precise_icehouse: | ||
180 | 513 | return | ||
181 | 514 | |||
182 | 515 | unit = self.nova_cc_sentry | ||
183 | 516 | conf = '/etc/nova/nova.conf' | ||
184 | 517 | mysql_relation = self.mysql_sentry.relation('shared-db', | ||
185 | 518 | 'nova-cloud-controller:shared-db') | ||
186 | 519 | db_uri = "mysql://{}:{}@{}/{}".format('nova', | ||
187 | 520 | mysql_relation['nova_password'], | ||
188 | 521 | mysql_relation['db_host'], | ||
189 | 522 | 'nova') | ||
190 | 523 | |||
191 | 524 | # For >= icehouse we move away from deprecated sql_connection | ||
192 | 525 | expected = {'connection': db_uri} | ||
193 | 526 | |||
194 | 527 | ret = u.validate_config_data(unit, conf, 'database', expected) | ||
195 | 528 | if ret: | ||
196 | 529 | message = "nova config error: {}".format(ret) | ||
197 | 530 | amulet.raise_status(amulet.FAIL, msg=message) | ||
198 | 531 | |||
199 | 532 | def test_nova_keystone_authtoken_config(self): | ||
200 | 533 | """Verify the data in the nova config file's keystone_authtoken | ||
201 | 534 | section. This data only exists since icehouse.""" | ||
202 | 535 | if self._get_openstack_release() < self.precise_icehouse: | ||
203 | 536 | return | ||
204 | 537 | |||
205 | 538 | unit = self.nova_cc_sentry | ||
206 | 539 | conf = '/etc/nova/nova.conf' | ||
207 | 540 | keystone_relation = self.keystone_sentry.relation('identity-service', | 480 | keystone_relation = self.keystone_sentry.relation('identity-service', |
208 | 541 | 'nova-cloud-controller:identity-service') | 481 | 'nova-cloud-controller:identity-service') |
209 | 542 | keystone_uri = "http://{}:{}/".format(keystone_relation['service_host'], | 482 | keystone_uri = "http://{}:{}/".format(keystone_relation['service_host'], |
210 | 543 | keystone_relation['service_port']) | 483 | keystone_relation['service_port']) |
215 | 544 | expected = {'auth_uri': keystone_uri, | 484 | identity_uri = "{}://{}:{}/".format(keystone_relation['auth_protocol'], |
216 | 545 | 'auth_host': keystone_relation['service_host'], | 485 | keystone_relation['service_host'], |
217 | 546 | 'auth_port': keystone_relation['auth_port'], | 486 | keystone_relation['auth_port']) |
218 | 547 | 'auth_protocol': keystone_relation['auth_protocol'], | 487 | |
219 | 488 | mysql_relation = self.mysql_sentry.relation('shared-db', | ||
220 | 489 | 'nova-cloud-controller:shared-db') | ||
221 | 490 | db_uri = "mysql://{}:{}@{}/{}".format('nova', | ||
222 | 491 | mysql_relation['nova_password'], | ||
223 | 492 | mysql_relation['db_host'], | ||
224 | 493 | 'nova') | ||
225 | 494 | |||
226 | 495 | expected = { | ||
227 | 496 | 'DEFAULT': { | ||
228 | 497 | 'dhcpbridge_flagfile': '/etc/nova/nova.conf', | ||
229 | 498 | 'dhcpbridge': '/usr/bin/nova-dhcpbridge', | ||
230 | 499 | 'logdir': '/var/log/nova', | ||
231 | 500 | 'state_path': '/var/lib/nova', | ||
232 | 501 | 'force_dhcp_release': 'True', | ||
233 | 502 | 'iscsi_helper': 'tgtadm', | ||
234 | 503 | 'libvirt_use_virtio_for_bridges': 'True', | ||
235 | 504 | 'connection_type': 'libvirt', | ||
236 | 505 | 'root_helper': 'sudo nova-rootwrap /etc/nova/rootwrap.conf', | ||
237 | 506 | 'verbose': 'False', | ||
238 | 507 | 'debug': 'False', | ||
239 | 508 | 'ec2_private_dns_show_ip': 'True', | ||
240 | 509 | 'api_paste_config': '/etc/nova/api-paste.ini', | ||
241 | 510 | 'volumes_path': '/var/lib/nova/volumes', | ||
242 | 511 | 'enabled_apis': 'ec2,osapi_compute,metadata', | ||
243 | 512 | 'auth_strategy': 'keystone', | ||
244 | 513 | 'compute_driver': 'libvirt.LibvirtDriver', | ||
245 | 514 | 'keystone_ec2_url': keystone_ec2, | ||
246 | 515 | 'network_manager': 'nova.network.manager.FlatDHCPManager', | ||
247 | 516 | 's3_listen_port': '3323', | ||
248 | 517 | 'osapi_compute_listen_port': '8764', | ||
249 | 518 | 'ec2_listen_port': '8763' | ||
250 | 519 | } | ||
251 | 520 | } | ||
252 | 521 | if self._get_openstack_release() < self.trusty_kilo: | ||
253 | 522 | d = 'DEFAULT' | ||
254 | 523 | if self._get_openstack_release() < self.precise_icehouse: | ||
255 | 524 | expected[d]['sql_connection'] = db_uri | ||
256 | 525 | else: | ||
257 | 526 | database = { | ||
258 | 527 | 'database': { | ||
259 | 528 | 'connection': db_uri | ||
260 | 529 | } | ||
261 | 530 | } | ||
262 | 531 | keystone_authtoken = { | ||
263 | 532 | 'keystone_authtoken': { | ||
264 | 533 | 'auth_uri': keystone_uri, | ||
265 | 534 | 'auth_host': keystone_relation['service_host'], | ||
266 | 535 | 'auth_port': keystone_relation['auth_port'], | ||
267 | 536 | 'auth_protocol': keystone_relation['auth_protocol'], | ||
268 | 537 | 'admin_tenant_name': keystone_relation['service_tenant'], | ||
269 | 538 | 'admin_user': keystone_relation['service_username'], | ||
270 | 539 | 'admin_password': keystone_relation['service_password'], | ||
271 | 540 | } | ||
272 | 541 | } | ||
273 | 542 | expected.update(database) | ||
274 | 543 | expected.update(keystone_authtoken) | ||
275 | 544 | expected[d]['lock_path'] = '/var/lock/nova' | ||
276 | 545 | expected[d]['libvirt_use_virtio_for_bridges'] = 'True' | ||
277 | 546 | expected[d]['compute_driver'] = 'libvirt.LibvirtDriver' | ||
278 | 547 | expected[d]['rabbit_userid'] = 'nova' | ||
279 | 548 | expected[d]['rabbit_virtual_host'] = 'openstack' | ||
280 | 549 | expected[d]['rabbit_password'] = rabbitmq_relation['password'] | ||
281 | 550 | expected[d]['rabbit_host'] = rabbitmq_relation['hostname'] | ||
282 | 551 | expected[d]['glance_api_servers'] = glance_relation['glance-api-server'] | ||
283 | 552 | |||
284 | 553 | else: | ||
285 | 554 | database = { | ||
286 | 555 | 'database': { | ||
287 | 556 | 'connection': db_uri, | ||
288 | 557 | 'max_pool_size': '2', | ||
289 | 558 | } | ||
290 | 559 | } | ||
291 | 560 | glance = { | ||
292 | 561 | 'glance': { | ||
293 | 562 | 'api_servers': glance_relation['glance-api-server'], | ||
294 | 563 | } | ||
295 | 564 | } | ||
296 | 565 | keystone_authtoken = { | ||
297 | 566 | 'keystone_authtoken': { | ||
298 | 567 | 'identity_uri': identity_uri, | ||
299 | 568 | 'auth_uri': keystone_uri, | ||
300 | 548 | 'admin_tenant_name': keystone_relation['service_tenant'], | 569 | 'admin_tenant_name': keystone_relation['service_tenant'], |
301 | 549 | 'admin_user': keystone_relation['service_username'], | 570 | 'admin_user': keystone_relation['service_username'], |
303 | 550 | 'admin_password': keystone_relation['service_password']} | 571 | 'admin_password': keystone_relation['service_password'], |
304 | 572 | 'signing_dir': '/var/cache/nova', | ||
305 | 573 | } | ||
306 | 574 | } | ||
307 | 575 | osapi_v3 = { | ||
308 | 576 | 'osapi_v3': { | ||
309 | 577 | 'enabled': 'True', | ||
310 | 578 | } | ||
311 | 579 | } | ||
312 | 580 | conductor = { | ||
313 | 581 | 'conductor': { | ||
314 | 582 | 'workers': '2', | ||
315 | 583 | } | ||
316 | 584 | } | ||
317 | 585 | oslo_messaging_rabbit = { | ||
318 | 586 | 'oslo_messaging_rabbit': { | ||
319 | 587 | 'rabbit_userid': 'nova', | ||
320 | 588 | 'rabbit_virtual_host': 'openstack', | ||
321 | 589 | 'rabbit_password': rabbitmq_relation['password'], | ||
322 | 590 | 'rabbit_host': rabbitmq_relation['hostname'], | ||
323 | 591 | } | ||
324 | 592 | } | ||
325 | 593 | oslo_concurrency = { | ||
326 | 594 | 'oslo_concurrency': { | ||
327 | 595 | 'lock_path': '/var/lock/nova', | ||
328 | 596 | } | ||
329 | 597 | } | ||
330 | 598 | expected.update(database) | ||
331 | 599 | expected.update(glance) | ||
332 | 600 | expected.update(keystone_authtoken) | ||
333 | 601 | expected.update(osapi_v3) | ||
334 | 602 | expected.update(conductor) | ||
335 | 603 | expected.update(oslo_messaging_rabbit) | ||
336 | 604 | expected.update(oslo_concurrency) | ||
337 | 551 | 605 | ||
342 | 552 | ret = u.validate_config_data(unit, conf, 'keystone_authtoken', expected) | 606 | for section, pairs in expected.iteritems(): |
343 | 553 | if ret: | 607 | ret = u.validate_config_data(unit, conf, section, pairs) |
344 | 554 | message = "nova config error: {}".format(ret) | 608 | if ret: |
345 | 555 | amulet.raise_status(amulet.FAIL, msg=message) | 609 | message = "nova config error: {}".format(ret) |
346 | 610 | amulet.raise_status(amulet.FAIL, msg=message) | ||
347 | 556 | 611 | ||
348 | 557 | def test_image_instance_create(self): | 612 | def test_image_instance_create(self): |
349 | 558 | """Create an image/instance, verify they exist, and delete them.""" | 613 | """Create an image/instance, verify they exist, and delete them.""" |
Amulet deploy from source updates:
* Install amulet pre-req python-distro-info
* Use modified icehouse branches due to requirements issues