Need proper error handling for incorrect port channel name

Bug #1424002 reported by Danny Choi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-cisco
New
Undecided
Unassigned

Bug Description

When the port channel name is incorrectly specified (portchannel:# instead of port-channel:#), traceback is continuously logged in screen-q-svc.log until the VM is deleted.

Reason: Syntax error while parsing 'show running-config interface portchannel 1'

###########################################

Snippet of local.conf:

[ml2_mech_cisco_nexus:172.20.231.5]
qa4 = portchannel:1 <<<<<INCORRECT
qa5 = portchannel:2 <<<<<INCORRECT
physnet = physnet1
ssh_port = 22
username = admin
password = CTO1234!
nve_src_intf = 2

2015-02-20 09:41:31.820 DEBUG neutron.plugins.ml2.drivers.cisco.nexus.nexus_network_driver [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] NexusDriver config:
      <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
        <configure>
          <__XML__MODE__exec_configure>
            <vlan>
              <vlan-id-create-delete>
                <__XML__PARAM_value>300</__XML__PARAM_value>
                <__XML__MODE_vlan>
                  <no>
                    <shutdown/>
                  </no>
                </__XML__MODE_vlan>
              </vlan-id-create-delete>
            </vlan>

          </__XML__MODE__exec_configure>
        </configure>
      </config>
 from (pid=24174) _edit_config /opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py:97
2015-02-20 09:41:31.935 DEBUG neutron.plugins.ml2.drivers.cisco.nexus.nexus_network_driver [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] NexusDriver created VLAN: 300 from (pid=24174) create_and_trunk_vlan /opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py:323
2015-02-20 09:41:32.164 DEBUG neutron.openstack.common.lockutils [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] Releasing semaphore "cisco-nexus-portlock" from (pid=24174) lock /opt/stack/neutron/neutron/openstack/common/lockutils.py:238
2015-02-20 09:41:32.165 DEBUG neutron.openstack.common.lockutils [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] Semaphore / lock released "update_port_postcommit" from (pid=24174) inner /opt/stack/neutron/neutron/openstack/common/lockutils.py:275
2015-02-20 09:41:32.166 ERROR neutron.plugins.ml2.managers [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] Mechanism driver 'cisco_nexus' failed in update_port_postcommit
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers Traceback (most recent call last):
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 299, in _call_on_drivers
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers getattr(driver.obj, method_name)(context)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/openstack/common/lockutils.py", line 272, in inner
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers return f(*args, **kwargs)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 622, in update_port_postcommit
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers self._configure_host_entries, vni)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 531, in _port_action_vlan
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers func(vlan_id, device_id, host_id, vni, is_provider)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 385, in _configure_host_entries
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers vni)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 336, in _configure_port_binding
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers vni)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 326, in create_and_trunk_vlan
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers nexus_port)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 287, in enable_vlan_on_trunk_int
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers intf_type, interface)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 179, in get_interface_switch_trunk_allowed
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers response = self._get_config(nexus_host, confstr)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 72, in _get_config
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers exc=e)
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers NexusConfigFailed: Failed to configure Nexus switch: 172.20.231.5 XML:
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers <cmd>show running-config interface portchannel 1</cmd>
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers . Reason: Syntax error while parsing 'show running-config interface portchannel 1'
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers .
2015-02-20 09:41:32.166 TRACE neutron.plugins.ml2.managers
2015-02-20 09:41:32.171 ERROR oslo.messaging.rpc.dispatcher [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] Exception during message handling: update_port_postcommit failed.
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last):
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher incoming.message))
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher return self._do_dispatch(endpoint, method, ctxt, args)
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher result = getattr(endpoint, method)(ctxt, **new_args)
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/rpc.py", line 161, in update_device_up
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher host)
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 1196, in update_port_status
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher self.mechanism_manager.update_port_postcommit(mech_context)
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 535, in update_port_postcommit
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher continue_on_failure=True)
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 310, in _call_on_drivers
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher method=method_name
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher MechanismDriverError: update_port_postcommit failed.
2015-02-20 09:41:32.171 TRACE oslo.messaging.rpc.dispatcher
2015-02-20 09:41:32.173 ERROR oslo.messaging._drivers.common [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] Returning exception update_port_postcommit failed. to caller
2015-02-20 09:41:32.173 ERROR oslo.messaging._drivers.common [req-427a8130-7d79-4a1e-a7b5-cdf41f6a8652 None None] ['Traceback (most recent call last):\n', ' File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply\n incoming.message))\n', ' File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch\n return self._do_dispatch(endpoint, method, ctxt, args)\n', ' File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch\n result = getattr(endpoint, method)(ctxt, **new_args)\n', ' File "/opt/stack/neutron/neutron/plugins/ml2/rpc.py", line 161, in update_device_up\n host)\n', ' File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 1196, in update_port_status\n self.mechanism_manager.update_port_postcommit(mech_context)\n', ' File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 535, in update_port_postcommit\n continue_on_failure=True)\n', ' File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 310, in _call_on_drivers\n method=method_name\n', 'MechanismDriverError: update_port_postcommit failed.\n']

Tags: nexus
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.