Can't pass network name to port in template with fip and router interface

Bug #1629929 reported by Oleksii Chuprykov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Heat
In Progress
Undecided
Zane Bitter

Bug Description

(py27) oleksii@oleksii:~$ heat stack-create test -f test_neutron_deps.yaml
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server Traceback (most recent call last):
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server result = func(ctxt, **new_args)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 154, in wrapper
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server return f(*args, **kwargs)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/common/context.py", line 424, in wrapped
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server return func(self, ctx, *args, **kwargs)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/service.py", line 802, in create_stack
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server template_id)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/service.py", line 701, in _parse_template_and_validate_stack
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server stack.validate()
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 154, in wrapper
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server return f(*args, **kwargs)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/stack.py", line 814, in validate
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server iter_rsc = self.dependencies
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/stack.py", line 393, in dependencies
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server ignore_errors=self.id is not None)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/stack.py", line 474, in _get_dependencies
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server res.add_dependencies(deps)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/resources/openstack/neutron/floatingip.py", line 227, in add_dependencies
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server if port_on_subnet(d, interface_subnet):
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/opt/stack/heat/heat/engine/resources/openstack/neutron/floatingip.py", line 207, in port_on_subnet
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server subnets = self.client().show_network(p_net)[
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 768, in show_network
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server return self.get(self.network_path % (network), params=_params)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 360, in get
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server headers=headers, params=params)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 337, in retry_request
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server headers=headers, params=params)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 300, in do_request
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server self._handle_fault_response(status_code, replybody, resp)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 275, in _handle_fault_response
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server exception_handler_v20(status_code, error_body)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 91, in exception_handler_v20
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server request_ids=request_ids)
2016-10-03 19:09:27.979 TRACE oslo_messaging.rpc.server NotFound: The resource could not be found.<br /><br />
with this template:

heat_template_version: '2013-05-23'
description: |
 Template which creates single instance
parameters:
 InstanceType:
   type: string
   default: m1.tiny
 ImageId:
   type: string
   default: cirros-0.3.3-x86_64-disk
 network:
   type: string
   default: private1
resources:

 floatingip_port:
   type: OS::Neutron::Port
   properties:
     network: {get_param: network}

 aloatingip:
  type: OS::Neutron::FloatingIP
  properties:
    floating_network: public
    port_id: {get_resource: floatingip_port}

 router_interface_port:
  type: OS::Neutron::Port
  properties:
    network: {get_param: network}

 router_interface:
  type: OS::Neutron::RouterInterface
  properties:
   router: cc
   subnet: 34755eb6-0455-4d76-b9e6-c367db26ad06

The reason of fail is that we use self.client().show_network call https://github.com/openstack/heat/blob/master/heat/engine/resources/openstack/neutron/floatingip.py#L207 while getting the list of subnet of this network. This method can search only for id.

summary: - Can't pass network name to port
+ Can't pass network name to port in template with fip and router
+ interface
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/381219

Changed in heat:
assignee: nobody → Oleksii Chuprykov (ochuprykov)
status: New → In Progress
Changed in heat:
assignee: Oleksii Chuprykov (ochuprykov) → Zane Bitter (zaneb)
Rico Lin (rico-lin)
Changed in heat:
milestone: none → no-priority-tag-bugs
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.