Merge lp:~james-page/charms/trusty/nova-cloud-controller/kilo into lp:~openstack-charmers-archive/charms/trusty/nova-cloud-controller/next

Proposed by James Page
Status: Merged
Merged at revision: 147
Proposed branch: lp:~james-page/charms/trusty/nova-cloud-controller/kilo
Merge into: lp:~openstack-charmers-archive/charms/trusty/nova-cloud-controller/next
Diff against target: 291 lines (+203/-16)
6 files modified
hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken (+9/-0)
hooks/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo (+22/-0)
hooks/charmhelpers/core/services/helpers.py (+2/-2)
hooks/nova_cc_utils.py (+17/-0)
templates/kilo/etc_nova_api-paste.ini (+147/-0)
templates/kilo/nova.conf (+6/-14)
To merge this branch: bzr merge lp:~james-page/charms/trusty/nova-cloud-controller/kilo
Reviewer Review Type Date Requested Status
Liam Young (community) Approve
Review via email: mp+254051@code.launchpad.net
To post a comment you must log in.
Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_lint_check #2883 nova-cloud-controller-next for james-page mp254051
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/2883/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_unit_test #2674 nova-cloud-controller-next for james-page mp254051
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/2674/

150. By James Page

resync helpers

151. By James Page

Switch to using charm-helper templates for rabbitmq

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_amulet_test #2681 nova-cloud-controller-next for james-page mp254051
    AMULET FAIL: amulet-test failed

AMULET Results (max last 2 lines):
  ERROR subprocess encountered error code 1
  make: *** [test] Error 1

Full amulet test output: http://paste.ubuntu.com/10676223/
Build: http://10.245.162.77:8080/job/charm_amulet_test/2681/

152. By James Page

Switch to using charm-helper templates for keystone authtoken

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_lint_check #2890 nova-cloud-controller-next for james-page mp254051
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/2890/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_unit_test #2681 nova-cloud-controller-next for james-page mp254051
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/2681/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_amulet_test #2688 nova-cloud-controller-next for james-page mp254051
    AMULET FAIL: amulet-test failed

AMULET Results (max last 2 lines):
  ERROR subprocess encountered error code 1
  make: *** [test] Error 1

Full amulet test output: http://paste.ubuntu.com/10676441/
Build: http://10.245.162.77:8080/job/charm_amulet_test/2688/

153. By James Page

Don't overwrite all endpoints

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_lint_check #2898 nova-cloud-controller-next for james-page mp254051
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/2898/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_unit_test #2689 nova-cloud-controller-next for james-page mp254051
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/2689/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_amulet_test #2696 nova-cloud-controller-next for james-page mp254051
    AMULET FAIL: amulet-test failed

AMULET Results (max last 2 lines):
  ERROR subprocess encountered error code 1
  make: *** [test] Error 1

Full amulet test output: http://paste.ubuntu.com/10678139/
Build: http://10.245.162.77:8080/job/charm_amulet_test/2696/

Revision history for this message
Liam Young (gnuoy) wrote :

I have deployed with this branch and none of the nova services picked up the rabbit setting. Moving the rabbit config back into the default section fixed the issue.

From the nova-conductor.log:

2015-03-27 14:58:37.658 1451 ERROR oslo.messaging._drivers.impl_rabbit [req-13d19830-2316-4c52-833d-3d349ff28f07 ] AMQP server on 127.0.0.1:5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 2 seconds.
2015-03-27 14:58:37.660 1450 ERROR oslo.messaging._drivers.impl_rabbit [req-a29fd275-7814-44c4-b2a9-251493ccca14 ] AMQP server on 127.0.0.1:5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 2 seconds.

review: Needs Fixing
Revision history for this message
Liam Young (gnuoy) wrote :

Earlier issue was due to the version of kilo being installed. Deployment completed successfully using after switching to vivid and ppa:james-page/kilo

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken'
2--- hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken 1970-01-01 00:00:00 +0000
3+++ hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken 2015-03-25 13:34:36 +0000
4@@ -0,0 +1,9 @@
5+{% if auth_host -%}
6+[keystone_authtoken]
7+identity_uri = {{ auth_protocol }}://{{ auth_host }}:{{ auth_port }}/{{ auth_admin_prefix }}
8+auth_uri = {{ service_protocol }}://{{ service_host }}:{{ service_port }}/{{ service_admin_prefix }}
9+admin_tenant_name = {{ admin_tenant_name }}
10+admin_user = {{ admin_user }}
11+admin_password = {{ admin_password }}
12+signing_dir = {{ signing_dir }}
13+{% endif -%}
14
15=== added file 'hooks/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo'
16--- hooks/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo 1970-01-01 00:00:00 +0000
17+++ hooks/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo 2015-03-25 13:34:36 +0000
18@@ -0,0 +1,22 @@
19+{% if rabbitmq_host or rabbitmq_hosts -%}
20+[oslo_messaging_rabbit]
21+rabbit_userid = {{ rabbitmq_user }}
22+rabbit_virtual_host = {{ rabbitmq_virtual_host }}
23+rabbit_password = {{ rabbitmq_password }}
24+{% if rabbitmq_hosts -%}
25+rabbit_hosts = {{ rabbitmq_hosts }}
26+{% if rabbitmq_ha_queues -%}
27+rabbit_ha_queues = True
28+rabbit_durable_queues = False
29+{% endif -%}
30+{% else -%}
31+rabbit_host = {{ rabbitmq_host }}
32+{% endif -%}
33+{% if rabbit_ssl_port -%}
34+rabbit_use_ssl = True
35+rabbit_port = {{ rabbit_ssl_port }}
36+{% if rabbit_ssl_ca -%}
37+kombu_ssl_ca_certs = {{ rabbit_ssl_ca }}
38+{% endif -%}
39+{% endif -%}
40+{% endif -%}
41
42=== modified file 'hooks/charmhelpers/core/services/helpers.py'
43--- hooks/charmhelpers/core/services/helpers.py 2015-03-04 09:51:39 +0000
44+++ hooks/charmhelpers/core/services/helpers.py 2015-03-25 13:34:36 +0000
45@@ -139,7 +139,7 @@
46
47 def __init__(self, *args, **kwargs):
48 self.required_keys = ['host', 'user', 'password', 'database']
49- super(HttpRelation).__init__(self, *args, **kwargs)
50+ RelationContext.__init__(self, *args, **kwargs)
51
52
53 class HttpRelation(RelationContext):
54@@ -154,7 +154,7 @@
55
56 def __init__(self, *args, **kwargs):
57 self.required_keys = ['host', 'port']
58- super(HttpRelation).__init__(self, *args, **kwargs)
59+ RelationContext.__init__(self, *args, **kwargs)
60
61 def provide_data(self):
62 return {
63
64=== modified file 'hooks/nova_cc_utils.py'
65--- hooks/nova_cc_utils.py 2015-02-19 19:51:58 +0000
66+++ hooks/nova_cc_utils.py 2015-03-25 13:34:36 +0000
67@@ -846,6 +846,23 @@
68 'quantum_internal_url': neutron_internal_url,
69 })
70
71+ if os_rel >= 'kilo':
72+ # NOTE(jamespage) drop endpoints for ec2 and s3
73+ # ec2 is deprecated
74+ # s3 is insecure and should die in flames
75+ endpoints.update({
76+ 'ec2_service': None,
77+ 'ec2_region': None,
78+ 'ec2_public_url': None,
79+ 'ec2_admin_url': None,
80+ 'ec2_internal_url': None,
81+ 's3_service': None,
82+ 's3_region': None,
83+ 's3_public_url': None,
84+ 's3_admin_url': None,
85+ 's3_internal_url': None,
86+ })
87+
88 return endpoints
89
90
91
92=== added file 'templates/kilo/etc_nova_api-paste.ini'
93--- templates/kilo/etc_nova_api-paste.ini 1970-01-01 00:00:00 +0000
94+++ templates/kilo/etc_nova_api-paste.ini 2015-03-25 13:34:36 +0000
95@@ -0,0 +1,147 @@
96+############
97+# Metadata #
98+############
99+[composite:metadata]
100+use = egg:Paste#urlmap
101+/: meta
102+
103+[pipeline:meta]
104+pipeline = ec2faultwrap logrequest metaapp
105+
106+[app:metaapp]
107+paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory
108+
109+#######
110+# EC2 #
111+#######
112+
113+[composite:ec2]
114+use = egg:Paste#urlmap
115+/: ec2cloud
116+
117+[composite:ec2cloud]
118+use = call:nova.api.auth:pipeline_factory
119+noauth = ec2faultwrap logrequest ec2noauth cloudrequest validator ec2executor
120+noauth2 = ec2faultwrap logrequest ec2noauth cloudrequest validator ec2executor
121+keystone = ec2faultwrap logrequest ec2keystoneauth cloudrequest validator ec2executor
122+
123+[filter:ec2faultwrap]
124+paste.filter_factory = nova.api.ec2:FaultWrapper.factory
125+
126+[filter:logrequest]
127+paste.filter_factory = nova.api.ec2:RequestLogging.factory
128+
129+[filter:ec2lockout]
130+paste.filter_factory = nova.api.ec2:Lockout.factory
131+
132+[filter:ec2keystoneauth]
133+paste.filter_factory = nova.api.ec2:EC2KeystoneAuth.factory
134+
135+[filter:ec2noauth]
136+paste.filter_factory = nova.api.ec2:NoAuth.factory
137+
138+[filter:cloudrequest]
139+controller = nova.api.ec2.cloud.CloudController
140+paste.filter_factory = nova.api.ec2:Requestify.factory
141+
142+[filter:authorizer]
143+paste.filter_factory = nova.api.ec2:Authorizer.factory
144+
145+[filter:validator]
146+paste.filter_factory = nova.api.ec2:Validator.factory
147+
148+[app:ec2executor]
149+paste.app_factory = nova.api.ec2:Executor.factory
150+
151+#############
152+# OpenStack #
153+#############
154+
155+[composite:osapi_compute]
156+use = call:nova.api.openstack.urlmap:urlmap_factory
157+/: oscomputeversions
158+/v1.1: openstack_compute_api_v2
159+/v2: openstack_compute_api_v2
160+/v2.1: openstack_compute_api_v21
161+/v3: openstack_compute_api_v3
162+
163+[composite:openstack_compute_api_v2]
164+use = call:nova.api.auth:pipeline_factory
165+noauth = compute_req_id faultwrap sizelimit noauth ratelimit osapi_compute_app_v2
166+noauth2 = compute_req_id faultwrap sizelimit noauth2 ratelimit osapi_compute_app_v2
167+keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext ratelimit osapi_compute_app_v2
168+keystone_nolimit = compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v2
169+
170+[composite:openstack_compute_api_v21]
171+use = call:nova.api.auth:pipeline_factory_v21
172+noauth = compute_req_id faultwrap sizelimit noauth osapi_compute_app_v21
173+noauth2 = compute_req_id faultwrap sizelimit noauth2 osapi_compute_app_v21
174+keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v21
175+
176+[composite:openstack_compute_api_v3]
177+use = call:nova.api.auth:pipeline_factory_v21
178+noauth = request_id faultwrap sizelimit noauth_v3 osapi_compute_app_v3
179+noauth2 = request_id faultwrap sizelimit noauth_v3 osapi_compute_app_v3
180+keystone = request_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v3
181+
182+[filter:request_id]
183+paste.filter_factory = oslo.middleware:RequestId.factory
184+
185+[filter:compute_req_id]
186+paste.filter_factory = nova.api.compute_req_id:ComputeReqIdMiddleware.factory
187+
188+[filter:faultwrap]
189+paste.filter_factory = nova.api.openstack:FaultWrapper.factory
190+
191+[filter:noauth]
192+paste.filter_factory = nova.api.openstack.auth:NoAuthMiddlewareOld.factory
193+
194+[filter:noauth2]
195+paste.filter_factory = nova.api.openstack.auth:NoAuthMiddleware.factory
196+
197+[filter:noauth_v3]
198+paste.filter_factory = nova.api.openstack.auth:NoAuthMiddlewareV3.factory
199+
200+[filter:ratelimit]
201+paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.factory
202+
203+[filter:sizelimit]
204+paste.filter_factory = oslo.middleware:RequestBodySizeLimiter.factory
205+
206+[app:osapi_compute_app_v2]
207+paste.app_factory = nova.api.openstack.compute:APIRouter.factory
208+
209+[app:osapi_compute_app_v21]
210+paste.app_factory = nova.api.openstack.compute:APIRouterV21.factory
211+
212+[app:osapi_compute_app_v3]
213+paste.app_factory = nova.api.openstack.compute:APIRouterV3.factory
214+
215+[pipeline:oscomputeversions]
216+pipeline = faultwrap oscomputeversionapp
217+
218+[app:oscomputeversionapp]
219+paste.app_factory = nova.api.openstack.compute.versions:Versions.factory
220+
221+##########
222+# Shared #
223+##########
224+
225+[filter:keystonecontext]
226+paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory
227+
228+[filter:authtoken]
229+paste.filter_factory = keystonemiddleware.auth_token:filter_factory
230+
231+{% if service_host -%}
232+# NOTE(jamespage) - not used - but required for relation to nova-compute
233+service_protocol = {{ service_protocol }}
234+service_host = {{ service_host }}
235+service_port = {{ service_port }}
236+auth_host = {{ auth_host }}
237+auth_port = {{ auth_port }}
238+auth_protocol = {{ auth_protocol }}
239+admin_tenant_name = {{ admin_tenant_name }}
240+admin_user = {{ admin_user }}
241+admin_password = {{ admin_password }}
242+{% endif -%}
243
244=== modified file 'templates/kilo/nova.conf'
245--- templates/kilo/nova.conf 2015-02-20 10:21:52 +0000
246+++ templates/kilo/nova.conf 2015-03-25 13:34:36 +0000
247@@ -10,7 +10,6 @@
248 dhcpbridge=/usr/bin/nova-dhcpbridge
249 logdir=/var/log/nova
250 state_path=/var/lib/nova
251-lock_path=/var/lock/nova
252 force_dhcp_release=True
253 iscsi_helper=tgtadm
254 libvirt_use_virtio_for_bridges=True
255@@ -46,8 +45,6 @@
256 keystone_ec2_url = {{ keystone_ec2_url }}
257 {% endif -%}
258
259-{% include "parts/rabbitmq" %}
260-
261 {% if rbd_pool -%}
262 rbd_pool = {{ rbd_pool }}
263 rbd_user = {{ rbd_user }}
264@@ -131,17 +128,7 @@
265 {% endif -%}
266 {% endif -%}
267
268-{% if auth_host -%}
269-[keystone_authtoken]
270-auth_uri = {{ service_protocol }}://{{ service_host }}:{{ service_port }}/
271-auth_host = {{ auth_host }}
272-auth_port = {{ auth_port }}
273-auth_protocol = {{ auth_protocol }}
274-admin_tenant_name = {{ admin_tenant_name }}
275-admin_user = {{ admin_user }}
276-admin_password = {{ admin_password }}
277-signing_dir = {{ signing_dir }}
278-{% endif -%}
279+{% include "section-keystone-authtoken" %}
280
281 [osapi_v3]
282 enabled=True
283@@ -150,3 +137,8 @@
284
285 [conductor]
286 workers = {{ workers }}
287+
288+{% include "section-rabbitmq-oslo" %}
289+
290+[oslo_concurrency]
291+lock_path=/var/lock/nova

Subscribers

People subscribed via source and target branches