Horizon support for IPv6 subnet modes

Registered by Sean M. Collins

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

https://blueprints.launchpad.net/neutron/+spec/dnsmasq-mode-keyword

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Abishek Subramanian
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
David Lyle
Completed by
Akihiro Motoki

Related branches

Sprints

Whiteboard

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)
https://www.dropbox.com/s/2fizlp50k5jpx9j/IPv6%20subnet%20options.png
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.