Re: [openstack-dev] [neutron] weird behavior of neutron create port with extra dhcp option

2016-07-31 Thread Gary Kotton
Hi,
This also seems related - https://review.openstack.org/345717 and 
https://review.openstack.org/345720
Thanks
Gary

On 7/30/16, 12:49 AM, "Moshe Levi"  wrote:

Hi,
I encounter a weird behavior with neutron create port command.
I am using neutron master.

When I run this neutron create-port command 
stack@r-dcs88:/opt/devstack$ neutron port-create 
--device-id=984b4a6d-a66d-4db7-8acc-1113cd1097ef --device-owner=baremetal:none 
--mac-address 7c:fe:90:29:22:4e --extra-dhcp-opt 
'opt_value'='ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:22:4e','opt_name'='client-id'
 --admin_state_up=True private
port is created as expected see [1]

when I create a port with the following command:
stack@r-dcs88:/opt/devstack$ neutron port-create 
--device-id=984b4a6d-a66d-4db7-8acc-1113cd1097ef --device-owner=baremetal:none 
--mac-address 7c:fe:90:29:22:4e --extra-dhcp-opt 
'opt_value'='ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:22:4e','opt_name'='client-id'
 --vnic_type=baremetal --admin_state_up=True private
port is created but in neutron client  show the extra_dhcp_opts attribute 
without the options. The only difference in the command is that I added 
--vnic_type=baremetal to it.
I looked in the neutron database and I can see the extra_dhcp_opts in the 
table.

I debugged the neutron server and the problem is with 

https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_neutron_blob_master_neutron_plugins_ml2_plugin.py-23L1217=CwICAg=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc=NK7N9hNHtDeWUv7zz2bSdzSl9vcPX6zcxEyxfJ6o4vw=hbtQu6retP3sM2NcUcu-dUT0ysPA6dAQJ_MpYwYkRck=
  that calling the _extend_port_dict_extra_dhcp_opt and clearing the 
extra_dhcp_opts from the result variable. If I comment this 
line(_apply_dict_extend_functions)  I will get the correct result.
Commenting it don't seem to me as the correct fix and I have a hard time 
understating the code.
It seems that the dhcp opt extend the result in 2 places  here [3] and here 
[4].

Does anyone know what is the proper way to fix this issue? Help would be 
much appreciated 


[1] - http://paste.openstack.org/show/544013/
[2] - http://paste.openstack.org/show/544014/ 
[3] - 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_neutron_blob_master_neutron_db_extradhcpopt-5Fdb.py-23L37-2DL53=CwICAg=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc=NK7N9hNHtDeWUv7zz2bSdzSl9vcPX6zcxEyxfJ6o4vw=f3iiNIAfJJDgEuxyDUJ3R4wzduAs4jtIQQN2TBL1aSU=
 
[4] - 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_neutron_blob_1fd1b505ca0a4dcaa7184df02dbd53ba63355083_neutron_db_extradhcpopt-5Fdb.py-23L116-2DL121=CwICAg=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc=NK7N9hNHtDeWUv7zz2bSdzSl9vcPX6zcxEyxfJ6o4vw=TQ3P-nBoomj9g6UoZkRgAqXoBTfYFMGdOnzPCl85Xl0=
 



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [neutron] weird behavior of neutron create port with extra dhcp option

2016-07-29 Thread Moshe Levi
Hi,
I encounter a weird behavior with neutron create port command.
I am using neutron master.

When I run this neutron create-port command 
stack@r-dcs88:/opt/devstack$ neutron port-create 
--device-id=984b4a6d-a66d-4db7-8acc-1113cd1097ef --device-owner=baremetal:none 
--mac-address 7c:fe:90:29:22:4e --extra-dhcp-opt 
'opt_value'='ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:22:4e','opt_name'='client-id'
 --admin_state_up=True private
port is created as expected see [1]

when I create a port with the following command:
stack@r-dcs88:/opt/devstack$ neutron port-create 
--device-id=984b4a6d-a66d-4db7-8acc-1113cd1097ef --device-owner=baremetal:none 
--mac-address 7c:fe:90:29:22:4e --extra-dhcp-opt 
'opt_value'='ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:22:4e','opt_name'='client-id'
 --vnic_type=baremetal --admin_state_up=True private
port is created but in neutron client  show the extra_dhcp_opts attribute 
without the options. The only difference in the command is that I added 
--vnic_type=baremetal to it.
I looked in the neutron database and I can see the extra_dhcp_opts in the table.

I debugged the neutron server and the problem is with 
https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/plugin.py#L1217
 that calling the _extend_port_dict_extra_dhcp_opt and clearing the 
extra_dhcp_opts from the result variable. If I comment this 
line(_apply_dict_extend_functions)  I will get the correct result.
Commenting it don't seem to me as the correct fix and I have a hard time 
understating the code.
It seems that the dhcp opt extend the result in 2 places  here [3] and here [4].

Does anyone know what is the proper way to fix this issue? Help would be much 
appreciated 


[1] - http://paste.openstack.org/show/544013/
[2] - http://paste.openstack.org/show/544014/ 
[3] - 
https://github.com/openstack/neutron/blob/master/neutron/db/extradhcpopt_db.py#L37-L53
[4] - 
https://github.com/openstack/neutron/blob/1fd1b505ca0a4dcaa7184df02dbd53ba63355083/neutron/db/extradhcpopt_db.py#L116-L121



__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev