The difference is with the template version, magnum uses version 2013-05-23 and the neutron autoscaling LB test uses template of version 2015-04-30
In hot template version 2013-05-23 the get_attr is mapped to GetAttrThenSelect function and all other versions it is mapped to GetAttr function. Looks like the problem is with GetAttrThenSelect function.
The issue is with a floatingip resource with definition:
api_pool_floating: :FloatingIP network: {get_param: external_network}
type: OS::Neutron:
depends_on:
- extrouter_inside
properties:
floating_
port_id: {get_attr: [api_pool, vip, port_id]}
When creating the floating IP, heat is not able to resolve the port_id. We have a similar test case with neutron autoscaling LB (test_autoscali ng_lb.py) scenario test but it works: https:/ /github. com/openstack/ heat/blob/ master/ heat_integratio ntests/ scenario/ templates/ test_autoscalin g_lb_neutron. yaml#L97
The difference is with the template version, magnum uses version 2013-05-23 and the neutron autoscaling LB test uses template of version 2015-04-30
In hot template version 2013-05-23 the get_attr is mapped to GetAttrThenSelect function and all other versions it is mapped to GetAttr function. Looks like the problem is with GetAttrThenSelect function.