Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1054117

Summary: different formats are being used in parameters in neutron host groups
Product: Red Hat OpenStack Reporter: Ofer Blaut <oblaut>
Component: openstack-foreman-installerAssignee: Jason Guiditta <jguiditt>
Status: CLOSED CURRENTRELEASE QA Contact: Ofer Blaut <oblaut>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.0CC: aberezin, ajeain, lpeer, morazi, mwagner, nyechiel, oblaut, ohochman, rhos-maint, yeylon
Target Milestone: z5Keywords: Reopened, UserExperience, ZStream
Target Release: 4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-08 16:35:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ofer Blaut 2014-01-16 09:45:41 UTC
Description of problem:

Under neutron networker host groups, the following parameters are being removed 
each time i enter the host group page:
 

ovs_bridge_mappings
ovs_bridge_uplinks


How reproducible:


Steps to Reproduce:
1.override both 
ovs_bridge_mappings & ovs_bridge_uplinks parameters in neutron networker host group and submit
2.exit the host group page and revisit 
3. these parameters will be empty again. ( issue is not seen with other parameters )



Actual results:


Expected results:


Additional info:

Comment 1 Ofer Blaut 2014-01-16 09:56:13 UTC
> Description of problem:
> 
> Under neutron networker host groups, the following parameters are being
> removed 
> each time i enter the host group page:
issue happens in compute neutron as well.
>  
> 
> ovs_bridge_mappings
> ovs_bridge_uplinks
> 
> 
> How reproducible:
> 
> 
> Steps to Reproduce:
> 1.override both 
> ovs_bridge_mappings & ovs_bridge_uplinks parameters in neutron networker
> host group and submit
as well as compute neutron.

> 2.exit the host group page and revisit 
> 3. these parameters will be empty again. ( issue is not seen with other
> parameters )
these parameters are not being used in 
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini 
on both network controller  and compute
> 
> 
> 
> Actual results:
> 
> 
> Expected results:
> 
> 
> Additional info:

Comment 2 Jason Guiditta 2014-01-16 19:34:59 UTC
I just tried this on a fully working setup installed yesterday, and was not able to replicate the error.  I will create a fresh setup here from the latest release and test once more to see if I can replicate.

Comment 3 Jason Guiditta 2014-01-17 15:44:47 UTC
After further discussion, this appears to be an issue of it not being clear to the user how to format the expected value.  Closing as not a bug, though perhaps one should be opened to make sure this is described in the official documentation?  I'll try to add these parameters with description to the upstream wiki [1] for now.

http://openstack.redhat.com/Deploying_RDO_Using_Foreman#Neutron_with_Networker_Node

Comment 4 Ofer Blaut 2014-01-19 15:18:52 UTC
The main issue here is that there are different formats in neutron parameters

User experience is not intuitive at all and will cause lots of problems.
 

for example: 

external_network_bridge:br-ex
ovs_vlan_ranges:inter-vlan:196:203,ext-vlan:195:195
ovs_bridge_mappings: ["inter-vlan:br-eth3","ext-vlan:br-ex"]
ovs_bridge_uplinks:["br-eth3:eth3","br-ex:eth3.195"]

1. There is no input validation, and user can make mistake very easily.

When i have used 
ovs_bridge_uplinks = br-eth3:eth3 - succeeded but disappeared from GUI
ovs_bridge_uplinks = [br-eth3:eth3] - failed
ovs_bridge_uplinks:["br-eth3:eth3"],["br-ex:eth3.195"] - succeeded but bad ports names bridges will be used 

2. other ranges like vlan range doesn't requires any brackets and quotation
 using external_network_bridge with quotation "br-ex" will fail on the L3 agent operation .

Comment 5 Mike Orazi 2014-01-20 21:49:57 UTC
This should really be handled as a follow-on effort when the foreman plugins/dynamic hostgroup solutions are planned.

Comment 6 Omri Hochman 2014-01-22 09:50:34 UTC
I struggled to make it work for automation : some of this neutron parameters have 'type = array' which requires "[]" and a certain format in the API as well.

The problem is that the format of parameters is inconsistent. I would suggest to add tool-tip + a link to parameters-documentation under 'help', 
 

Example: API for editing parameter with type=array : 
--------------------------------------------------- 
ovs_bridge_uplinks : br-eth3:eth3

curl -s -H "Accept:application/json,version=2" -k -u admin:changeme https://${FOREMAN_IP}/api/puppetclasses/quickstack::neutron::compute/smart_class_parameters/ovs_bridge_uplinks -X PUT
 -H "Content-Type: application/json" -d {\"default_value\":[\"br-eth3:eth3\"]} -o -

Comment 7 Jason Guiditta 2014-01-22 16:42:53 UTC
I understand your frustration, and we can see if there are things we can do to make this more obvious over time, but really, I think the only thing we can do right now is to document expected usage in our official documentation.  Also, part of the issue is that what you are looking at in foreman is much different than what you may be used to from packstack.  Foreman is a very thin wrapper on puppet, so you are seeing exactly the parameters puppet uses, whereas packstack is more of a wrapper that sort of abstracts away this fact, so you are in less direct contact with the configuration.  The parameters we expose in our hostgroups are just a layer to collect everything the underlying openstack puppet modules need to do their configuration (with a few exceptions, but none apply here).  So for this example, the puppet code we rely on specifies ovs_bridge_mappings and ovs_bridge_uplinks as arrays, whereas the vlan_ranges parameter has a default of 'undef'.  The code (again, code we are consuming, not code we own/have written) then just stuffs whatever value you specified into the config file.  To this point, we have generally just taken the type expected in the underlying puppet code, and set our parameters on the hostgroups to match that expectation.

Comment 8 Ofer Blaut 2014-02-19 10:30:51 UTC
Hi  Jason

Another item i encountered as well is ovs_tunnel_types =[]

i have used ovs_tunnel_types = vxlan , it passed the GUI , but cause the L2 agent to fail

"2014-02-19 12:00:51.460 12223 ERROR neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] (u'Invalid tunnel type specificed: %s', '') Agent terminated!
2014-02-19 12:07:45.561 13031 ERROR neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] (u'Invalid tunnel type specificed: %s', '') Agent terminated!
"

ovs_tunnel_types =[vxlan] worked

Comment 9 Arthur Berezin 2014-08-21 12:28:32 UTC
is this still relevant?

Comment 10 Mike Orazi 2014-09-08 16:35:55 UTC
This should be addressed and hidden behind rhel-osp-installer.