Comment 2 for bug 1836011

Revision history for this message
Saravanan KR (skramaja) wrote :

The problem is with this condition in service - neutron-api-container-puppet.yaml

  is_ovn_in_neutron_mechanism_driver: {contains: ['ovn', {get_param: NeutronMechanismDrivers}]}

Providing the parameter NeutronMechanismDrivers with value as "mlnx_sdn_assist,sriovnicswitch,openvswitch", which is a valid input as the type of the variable is comma_delimited_list. But for some reason, the conditions evaluation is no done after converting to the list. So instead of matching to the whole word, it matches to the sub-string "ovn" in "sriovnicswitch", causing it to choose ovn by default always.

The patch https://review.opendev.org/#/c/670011/ attempts to change all the instances of NeutronMechanismDrivers to be a list, so that heat will do a whole word match on list. Though this will solve the issue for all existing environments, it will still have the issue if the parameter is provided in user environments in the problematic format.

The appropriate fix should be to update the condition to ensure that it is matches with whole word. May be yaql based condition could help?