Implement resource type OS::Neutron::NetworkGateway

Registered by Takashi Natsume

The NVP specific feature "Network Gateway" was added to Neutron in grizzly release.
https://blueprints.launchpad.net/neutron/+spec/nvp-nwgw-api

This blueprint aims to add support to the following NVP Network Gateway resources:

- Network Gateway as OS::Neutron::NetworkGateway

Blueprint information

Status:
Complete
Approver:
Steve Baker
Priority:
Medium
Drafter:
Mitsuru Kanabuchi
Direction:
Approved
Assignee:
Mitsuru Kanabuchi
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
Steve Baker
Completed by
Mitsuru Kanabuchi

Related branches

Sprints

Whiteboard

(kanabuchi 2013/11/20)
I reported bug that affect this bp's implementation.

  https://bugs.launchpad.net/neutron/+bug/1252921

In present time, I'm going to use list_network_gateway instead of to use show_network_gateway for checking network gateway existence.

(kanabuchi 2013/11/29)
Above bug was fixed.
I'm going to revise the code to use show_network_gateway.

(kanabuchi 2013/12/16)

Gerrit topic: https://review.openstack.org/#q,topic:bp/s,n,z

Addressed by: https://review.openstack.org/62287
    Implements resource types OS::Neutron::NetworkGateway and OS::Neutron::NetworkGatewayConnection

(kanabuchi 2014/2/3)

I discussed about appropriate model of NetworkGateway with Zane on gerrit.
The conclusion is following resource model is appropriate from heat's perspective.

"Type": "OS::Neutron::NetworkGateway",
"Properties": {
    "name": "<physical name of network gateway>",
    "devices": [
        {
            "interface_name": "<interface name>",
            "id": "<id of gateway node>"
        },
        <iterable>
    ],
    "connections": [
        {
            "network_id": "<id of neturon l2 network>",
            "segmentation_type": "<connection method>",
            "segmentation_id": <vlan id>
        },
        <iterable>
    ]
}

I integrated NetworkGateway and NetworkGatewayConnection as 1 resource model.
Functionality has not changed.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.