ceilometer client is not created properly

Bug #1419772 reported by Ishant Tyagi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Heat
Fix Released
Undecided
Ishant Tyagi

Bug Description

When heat and ceilometer are configured for https, heat fails to communicate to ceilometer .

2015-02-09 11:38:47.457 4878 INFO heat.engine.resource [-] CREATE: CeilometerAlarm "cpu_alarm_high" Stack "stack13" [1df26c41-27ed-4424-9dab-9b0c5f9384f3]
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource Traceback (most recent call last):
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/heat/engine/resource.py", line 439, in _action_recorder
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource yield
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/heat/engine/resource.py", line 509, in _do_action
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource yield self.action_handler_task(action, args=handler_args)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/heat/engine/scheduler.py", line 286, in wrapper
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource step = next(subtask)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/heat/engine/resource.py", line 480, in action_handler_task
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource handler_data = handler(*args)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/lib/python2.7/site-packages/heat/engine/resources/ceilometer/alarm.py", line 199, in handle_create
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource alarm = self.ceilometer().alarms.create(**props)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/ceilometerclient/v2/alarms.py", line 156, in create
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource return self._create(self._path(), new)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/ceilometerclient/common/base.py", line 53, in _create
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource body = self.api.post(url, json=body).json()
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py", line 337, in post
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource return self.client_request("POST", url, **kwargs)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py", line 328, in client_request
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource self, method, url, **kwargs)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py", line 244, in client_request
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource method, self.concat_url(endpoint, url), **kwargs)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/ceilometerclient/openstack/common/apiclient/client.py", line 174, in request
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource resp = self.http.request(method, url, **kwargs)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/requests/sessions.py", line 464, in request
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource resp = self.send(prep, **send_kwargs)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource r = adapter.send(request, **kwargs)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource File "/opt/stack/venvs/openstack/local/lib/python2.7/site-packages/requests/adapters.py", line 442, in send
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource raise SSLError(e, request=request)
2015-02-09 11:38:47.457 4878 TRACE heat.engine.resource SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

Revision history for this message
Ishant Tyagi (ishanttyagi) wrote :

This happens because the ceilometer client is not created properly. heat should use get_client to create client object instead of directly calling Client function. https://github.com/openstack/python-ceilometerclient/blob/master/ceilometerclient/client.py#L278
This is required because get_client function sets the verify parameter correctly before making the client connection. There was a bug in ceilometer client earlier which is now fixed. https://review.openstack.org/#/c/146951

Changed in heat:
assignee: nobody → Ishant Tyagi (ishant-tyagi)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to heat (master)

Fix proposed to branch: master
Review: https://review.openstack.org/154022

Changed in heat:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to heat (master)

Reviewed: https://review.openstack.org/154022
Committed: https://git.openstack.org/cgit/openstack/heat/commit/?id=80b13e9974574541465cb8a7512ab4a61da1c63d
Submitter: Jenkins
Branch: master

commit 80b13e9974574541465cb8a7512ab4a61da1c63d
Author: ishant <email address hidden>
Date: Mon Feb 9 05:07:18 2015 -0800

    Fix heat and ceilometer client connection

    Heat Ceilometer client plugin uses direclty the Client function of
    python-ceilometerclient which does not exposes all the parameters
    required to make a https connection with ceilometer. Instead of
    this get_client fucntion of ceilometer client should be used which
    set all the ssl parameters correctly

    Change-Id: I64029b90b6fdd553b98e4a9e4a749aef6855982a
    Closes-Bug: #1419772

Changed in heat:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in heat:
milestone: none → kilo-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in heat:
milestone: kilo-3 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.