Horizon support for IPv6 subnet modes

Registered by Sean M. Collins

Add support to Horizon, to create subnets with IPv6 features.


Blueprint information

David Lyle
Abishek Subramanian
Series goal:
Accepted for juno
Milestone target:
milestone icon 2014.2
Started by
David Lyle
Completed by
Akihiro Motoki

Related branches



The blueprint needs to address the neutron changes going on through https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes

This requires the following work items in Horizon (Openstack dashboards) -
1. Update to project/networks and admin/networks workflows.py to add two new inputs when creating a subnet. (ipv6_ra_mode and ipv6_address_mode for when the version selected is ipv6)
2. Test functionality (once neutron code is available) that the two new arguments are used correctly in neutron.
3. Further testing to ensure nova-net is not affected by these additions since these two fields are neutron only additions.

Gerrit topic: https://review.openstack.org/#q,topic:bp/neutron-subnet-mode-support,n,z

Addressed by: https://review.openstack.org/74453
    New IPv6 subnet modes

[david-lyle | 2014-03-04] Neutron bits aren't ready, will need an FFE.

[amotoki | 2014-03-07] The progress in neutron side does not look good so far and it seems we require several rounds of reviews to land it. I am actively reviewing neutron patches and will update the status soon. As horizon patch, it is small enough (same level as bug fixes) and row risk, but I also think it may be better to defer it to Juno from the view of the project management.

[absubram | 2014-03-13] Since the neutron side has still not been merged, I agree with amotoki. Let's move this to J so that we have more time to fix the update side as well and UT. Additionally, it'll be better to test functionality properly with the neutron code once it is finalized.

[david-lyle | 2014-03-14] Moving to Juno as dependencies not ready

[amotoki 2014-07-30] IPv6 Neutron implementation have a good progress in Juno and it is expected to complete, so I would like to target this blueprint to Juno-3 with Medium priority (because it is considered as one of important community features in Neutron).

amotoki 2014-07-30
There is a constraint for combinations of ipv6-address-mode and ipv6-ra-mode.
It is described in the neutron spec document: http://docs-draft.openstack.org/11/102411/5/gate/gate-neutron-specs-docs/7419e32/doc/build/html/specs/juno/ipv6-radvd-ra.html
Considering this constraint, it seems better to have pull-down menu to select a combo of ipv6-address-mode and ipv6-ra-mode rather than having pull-down menus for two IPv6 mode separately.

[sc68cal 2014-07-30] Having a pulldown menu to select a combo sounds reasonable to me,
since the more advanced cases will most likely be done via the API rather than the dashboard.

[absubram | 2014-08-14] I have updated the review with the work items completed. I have maintained two separate drop downs - one for each field but have set the options to reflect the working combinations. The way I see it, if the RA field is none, the address field can be any value; if RA is one of slaac, or stageful or stateless, then the address field can be either none or that same value as RA.
So this is how I have reflected it in the drop down. Hopefully this will make it easier for the user to know what correct combinations to choose from. Additionally, like Akihiro suggests, I agree in moving this out to the subnet detail tab instead of the subnet action.
Please give the diffs a shot and let me know if this is suitable.

[jpichon 2014.08.20] Any trick or tips to be aware of, if one wanted to test the patch using DevStack? e.g. changes required in the Neutron configuration?

[absubram 2014-08-21] jpich - No specific tricks. If you are using devstack, ensure you have neutron enabled. Then simply try to create a V6 network. These two new field options should show up. There is still a debate ongoing. Feel free to try out both versions in the two reviews listed and any feedback you might have. Thanks!


Work Items

Work items:
Add ipv6_ra_mode and ipv6_address_mode to project/networks workflows.py: DONE
Add ipv6_ra_mode and ipv6_address_mode to admin/networks/subnets workflows.py: DONE
Add to subnet details: DONE
Fix Update Subnet with new fields: DONE
Add UT code: TODO
Test functionality: TODO
Find out if needs to be tested with nova-net: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.