Comment 1 for bug 1817528

Revision history for this message
Ghada Khalil (gkhalil) wrote :

From Al Bailey:
---------------
The config url is set to: (public endpoint in my lab)
 config_url http://128.224.151.57:8000/v1/waitcondition

This is translated by the heat code to the internal url:
  http://127.168.204.2:8000/v1/signal

The WRS code that does that is here:
https://github.com/starlingx-staging/stx-heat/blob/master/heat/engine/resources/signal_responder.py#L150

This was done to fix CGTS-3907

If change that method to be similar to what upstream does, it should work for this customer as long as they are not using https or IPv6

This is the standard upstream code which does our alterations.
https://github.com/openstack/heat/blob/stable/pike/heat/engine/resources/signal_responder.py#L144

If you want to demonstrate that this fix works in this scenario, this is the file that needs to be changed:
 /usr/lib/python2.7/site-packages/heat/engine/resources/signal_responder.py

find these lines (around line 155)
 signal_url = "%s://%s:%s%s%s" % ("http",
                                             host_addr,
                                             cfg.CONF.heat_api_cfn.bind_port,
                                             "/v1",
                                             signal_type)

and add the following one line right below it (which basically sets the variable to what upstream is doing)
signal_url = config_url.replace('/waitcondition', signal_type)

Note: This will not work with IPv6 and https
This will however work for the tests highlighted here

After you make this change (and make sure you backup the original file), you can restart heat engine:

sudo sm-restart service heat-engine

then you should be able to create their stack.
Note: the stack uses a keypair, which may or may not need to be manually cleaned up