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)
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- ceilometerclien t/blob/ master/ ceilometerclien t/client. py#L278 /review. openstack. org/#/c/ 146951
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:/