Creating a port by using fixed-ip is failing

Bug #1381324 reported by Vedamurthy Joshi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R1.1
Fix Committed
High
Sachin Bansal
Trunk
Invalid
High
Sachin Bansal

Bug Description

Build 1.20 Build 53 Ubuntu multinode running icehouse

Port-create using --fixed-ip attribute is failing

root@nodec22:~# neutron port-create backend1 --fixed-ip subnet_id=67e97fdf-6268-4e7a-9b05-da158a12927b
Request Failed: internal server error while processing your request.
root@nodec22:~# neutron port-create backend1 --fixed-ip subnet_id=67e97fdf-6268-4e7a-9b05-da158a12927b,ip_address=199.1.1.10
Request Failed: internal server error while processing your request.
root@nodec22:~#

contrail-api-0.log:
=================

<type 'exceptions.AttributeError'>
Python 2.7.3: /usr/bin/python
Wed Oct 15 10:44:07 2014

A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.

 /usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_interface.py in plugin_create_port(self=<vnc_openstack.neutron_plugin_interface.NeutronPluginInterface object>, context={u'is_admin': False, u'operation': u'CREATE', u'roles': [u'_member_', u'Member'], u'tenant': u'a23e639b511c468daff77e888603e449', u'tenant_id': u'a23e639b511c468daff77e888603e449', u'type': u'port', u'user_id': u'8ae2085a07174beabdb0305612366a20'}, port={u'fields': None, u'filters': None, u'resource': {u'admin_state_up': True, u'binding:vnic_type': u'normal', u'device_id': u'', u'device_owner': u'', u'extra_dhcp_opts': None, u'fixed_ips': [{u'subnet_id': u'67e97fdf-6268-4e7a-9b05-da158a12927b'}], u'name': u'', u'network:tenant_id': u'a23e639b511c468daff77e888603e449', u'network_id': u'e94b9265-ae4b-4b1b-bdd3-efcd80c34970', u'tenant_id': u'a23e639b511c468daff77e888603e449'}})
  383 try:
  384 cfgdb = self._get_user_cfgdb(context)
  385 net_info = cfgdb.port_create(context, port['resource'])
  386 return net_info
  387 except Exception as e:
net_info undefined
cfgdb = <vnc_openstack.neutron_plugin_db.DBInterface object>
cfgdb.port_create = <bound method DBInterface.port_create of <vnc_openstack.neutron_plugin_db.DBInterface object>>
context = {u'is_admin': False, u'operation': u'CREATE', u'roles': [u'_member_', u'Member'], u'tenant': u'a23e639b511c468daff77e888603e449', u'tenant_id': u'a23e639b511c468daff77e888603e449', u'type': u'port', u'user_id': u'8ae2085a07174beabdb0305612366a20'}
port = {u'fields': None, u'filters': None, u'resource': {u'admin_state_up': True, u'binding:vnic_type': u'normal', u'device_id': u'', u'device_owner': u'', u'extra_dhcp_opts': None, u'fixed_ips': [{u'subnet_id': u'67e97fdf-6268-4e7a-9b05-da158a12927b'}], u'name': u'', u'network:tenant_id': u'a23e639b511c468daff77e888603e449', u'network_id': u'e94b9265-ae4b-4b1b-bdd3-efcd80c34970', u'tenant_id': u'a23e639b511c468daff77e888603e449'}}
 /usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_db.py in port_create(self=<vnc_openstack.neutron_plugin_db.DBInterface object>, context={u'is_admin': False, u'operation': u'CREATE', u'roles': [u'_member_', u'Member'], u'tenant': u'a23e639b511c468daff77e888603e449', u'tenant_id': u'a23e639b511c468daff77e888603e449', u'type': u'port', u'user_id': u'8ae2085a07174beabdb0305612366a20'}, port_q={u'admin_state_up': True, u'binding:vnic_type': u'normal', u'device_id': u'', u'device_owner': u'', u'extra_dhcp_opts': None, u'fixed_ips': [{u'subnet_id': u'67e97fdf-6268-4e7a-9b05-da158a12927b'}], u'name': u'', u'network:tenant_id': u'a23e639b511c468daff77e888603e449', u'network_id': u'e94b9265-ae4b-4b1b-bdd3-efcd80c34970', u'tenant_id': u'a23e639b511c468daff77e888603e449'})
 3706 try:
 3707 if 'fixed_ips' in port_q:
 3708 self._port_create_instance_ip(net_obj, port_obj, port_q)
 3709 elif net_obj.get_network_ipam_refs():
 3710 self._port_create_instance_ip(net_obj, port_obj,
self = <vnc_openstack.neutron_plugin_db.DBInterface object>
self._port_create_instance_ip = <bound method DBInterface._port_create_instance_..._openstack.neutron_plugin_db.DBInterface object>>
net_obj = <vnc_api.gen.resource_client.VirtualNetwork object>
port_obj = <vnc_api.gen.resource_client.VirtualMachineInterface object>
port_q = {u'admin_state_up': True, u'binding:vnic_type': u'normal', u'device_id': u'', u'device_owner': u'', u'extra_dhcp_opts': None, u'fixed_ips': [{u'subnet_id': u'67e97fdf-6268-4e7a-9b05-da158a12927b'}], u'name': u'', u'network:tenant_id': u'a23e639b511c468daff77e888603e449', u'network_id': u'e94b9265-ae4b-4b1b-bdd3-efcd80c34970', u'tenant_id': u'a23e639b511c468daff77e888603e449'}

 /usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_db.py in _port_create_instance_ip(self=<vnc_openstack.neutron_plugin_db.DBInterface object>, net_obj=<vnc_api.gen.resource_client.VirtualNetwork object>, port_obj=<vnc_api.gen.resource_client.VirtualMachineInterface object>, port_q={u'admin_state_up': True, u'binding:vnic_type': u'normal', u'device_id': u'', u'device_owner': u'', u'extra_dhcp_opts': None, u'fixed_ips': [{u'subnet_id': u'67e97fdf-6268-4e7a-9b05-da158a12927b'}], u'name': u'', u'network:tenant_id': u'a23e639b511c468daff77e888603e449', u'network_id': u'e94b9265-ae4b-4b1b-bdd3-efcd80c34970', u'tenant_id': u'a23e639b511c468daff77e888603e449'})
 3680 subnet_id = fixed_ip.get('subnet_id')
 3681
 3682 ip_id = self._create_instance_ip(net_obj, port_obj, ip_addr, subnet_id)
 3683 created_iip_ids.append(ip_id)
 3684 except vnc_exc.HttpError as e:
ip_id undefined
self = <vnc_openstack.neutron_plugin_db.DBInterface object>
self._create_instance_ip = <bound method DBInterface._create_instance_ip of..._openstack.neutron_plugin_db.DBInterface object>>
net_obj = <vnc_api.gen.resource_client.VirtualNetwork object>
port_obj = <vnc_api.gen.resource_client.VirtualMachineInterface object>
ip_addr = None
subnet_id = u'67e97fdf-6268-4e7a-9b05-da158a12927b'

 /usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_db.py in _create_instance_ip(self=<vnc_openstack.neutron_plugin_db.DBInterface object>, net_obj=<vnc_api.gen.resource_client.VirtualNetwork object>, port_obj=<vnc_api.gen.resource_client.VirtualMachineInterface object>, ip_addr=None, subnet_uuid=u'67e97fdf-6268-4e7a-9b05-da158a12927b')
 3660 ip_obj.uuid = ip_name
 3661 if subnet_uuid:
 3662 ip_obj.set_subnet_uuid(subnet_uuid)
 3663 ip_obj.set_virtual_machine_interface(port_obj)
 3664 ip_obj.set_virtual_network(net_obj)
ip_obj = <vnc_api.gen.resource_client.InstanceIp object>
ip_obj.set_subnet_uuid undefined
subnet_uuid = u'67e97fdf-6268-4e7a-9b05-da158a12927b'
<type 'exceptions.AttributeError'>: 'InstanceIp' object has no attribute 'set_subnet_uuid'
    __class__ = <type 'exceptions.AttributeError'>
    __delattr__ = <method-wrapper '__delattr__' of exceptions.AttributeError object>
    __dict__ = {}
    __doc__ = 'Attribute not found.'
    __format__ = <built-in method __format__ of exceptions.AttributeError object>
    __getattribute__ = <method-wrapper '__getattribute__' of exceptions.AttributeError object>
    __getitem__ = <method-wrapper '__getitem__' of exceptions.AttributeError object>
    __getslice__ = <method-wrapper '__getslice__' of exceptions.AttributeError object>
    __hash__ = <method-wrapper '__hash__' of exceptions.AttributeError object>
    __init__ = <method-wrapper '__init__' of exceptions.AttributeError object>
    __new__ = <built-in method __new__ of type object>
    __reduce__ = <built-in method __reduce__ of exceptions.AttributeError object>
    __reduce_ex__ = <built-in method __reduce_ex__ of exceptions.AttributeError object>
    __repr__ = <method-wrapper '__repr__' of exceptions.AttributeError object>
    __setattr__ = <method-wrapper '__setattr__' of exceptions.AttributeError object>
    __setstate__ = <built-in method __setstate__ of exceptions.AttributeError object>
    __sizeof__ = <built-in method __sizeof__ of exceptions.AttributeError object>
    __str__ = <method-wrapper '__str__' of exceptions.AttributeError object>
    __subclasshook__ = <built-in method __subclasshook__ of type object>
    __unicode__ = <built-in method __unicode__ of exceptions.AttributeError object>
    args = ("'InstanceIp' object has no attribute 'set_subnet_uuid'",)
    message = "'InstanceIp' object has no attribute 'set_subnet_uuid'"

The above is a description of an error in a Python program. Here is
the original traceback:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_interface.py", line 385, in plugin_create_port
    net_info = cfgdb.port_create(context, port['resource'])
  File "/usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_db.py", line 3708, in port_create
    self._port_create_instance_ip(net_obj, port_obj, port_q)
  File "/usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_db.py", line 3682, in _port_create_instance_ip
    ip_id = self._create_instance_ip(net_obj, port_obj, ip_addr, subnet_id)
  File "/usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_db.py", line 3662, in _create_instance_ip
    ip_obj.set_subnet_uuid(subnet_uuid)
AttributeError: 'InstanceIp' object has no attribute 'set_subnet_uuid'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/bottle.py", line 764, in _handle
    return route.call(**args)
  File "/usr/lib/python2.7/dist-packages/bottle.py", line 1575, in wrapper
    rv = callback(*a, **ka)
  File "/usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_interface.py", line 460, in plugin_http_post_port
    return self.plugin_create_port(context, port)
  File "/usr/lib/python2.7/dist-packages/vnc_openstack/neutron_plugin_interface.py", line 389, in plugin_create_port
    raise e
AttributeError: 'InstanceIp' object has no attribute 'set_subnet_uuid'
10.204.217.69 - - [2014-10-15 10:44:07] "POST /neutron/port HTTP/1.1" 500 156 0.047827

tags: added: blocker
Revision history for this message
Sachin Bansal (sbansal) wrote :

Doesn't affect mainline

Revision history for this message
Sachin Bansal (sbansal) wrote :
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.