Add the networks multi provider extension

Partial-Bug: #1226279

Change-Id: I09c4ca34aba14c263900c6ba820c4f36d0735824
author: diane fleming
This commit is contained in:
Diane Fleming 2014-04-15 22:21:32 -04:00
parent a5457cc785
commit f74a6dea96
9 changed files with 401 additions and 26 deletions

View File

@ -1,4 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!ENTITY plusmn "&#xB1;">
<!ENTITY nbsp "&#160;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
@ -9,18 +22,54 @@
<title>Networking API v2.0 extensions</title>
<section xml:id="quotas-ext">
<title>Quotas extension (quotas)</title>
<para>Lists, shows information for, updates, and resets
quotas.</para>
<para>List, show details for, update, and reset quotas.</para>
<wadl:resources href="../wadls/netconn-api/src/os-quotas.wadl"
xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
</section>
<section xml:id="network_provider-ext">
<title>Networks provider extended attributes
(networks)</title>
<title>Networks provider extension (networks)</title>
<para>Enables administrative users to specify how an OpenStack
Networking network object is mapped to the underlying
networking infrastructure. Also, enables administrative
users to view such attributes when they query networks. To
this aim, this extension defines a set of
<literal>provider</literal>-prefixed
attributes.</para>
<wadl:resources
href="../wadls/netconn-api/src/os-networks-provider-ext.wadl"
xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
</section>
<section xml:id="network_multi_provider-ext">
<title>Networks multiple provider extension (networks)</title>
<para>Enables administrative users to define multiple physical
bindings for an OpenStack Networking network and list or
show details for networks with multiple physical
bindings.</para>
<para>You cannot update any <literal>provider</literal>
attributes. If you try to do so, an error occurs.</para>
<para>To delete a network with multiple physical bindings,
issue a normal delete network request, as follows:</para>
<screen><uri>DELETE v2.0/networks/{network_id}</uri></screen>
<para>To define multiple physical bindings for a network,
include a <literal>segments</literal> list in the request
body of a <code>POST /v2.0/networks</code> request. Each
element in the <literal>segments</literal> list has the
same structure as the provider network attributes. These
attributes are <literal>provider:network_type</literal>,
<literal>provider:physical_network</literal>, and
<literal>provider:segmentation_id</literal>. The
validation rules for these attributes are the same as for
the <link
xlink:href="http://api.openstack.org/api-ref-networking.html#network_provider-ext"
>Networks provider extended attributes</link>. You
cannot use both extensions at the same time.</para>
<para>The NSX and ML2 plug-ins support this extension. With
the ML2 plug-in, you can specify multiple VLANs for a
specified network, a VXLAN tunnel ID, and a VLAN.</para>
<wadl:resources
href="../wadls/netconn-api/src/os-networks-multi-provider-ext.wadl"
xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
</section>
<section xml:id="port_binding-ext">
<title>Ports binding extended attributes (ports)</title>
<wadl:resources
@ -35,10 +84,9 @@
</section>
<section xml:id="layer3">
<title>Layer-3 networking</title>
<para>The Layer-3 networking extension enables you to route
packets between subnets, forward packets from internal
networks to external ones, and access instances from
external networks through floating IPs.</para>
<para>Route packets between subnets, forward packets from
internal networks to external ones, and access instances
from external networks through floating IPs.</para>
<para>This extension introduces these resources:</para>
<itemizedlist>
<listitem>
@ -97,9 +145,10 @@
<section status="final" xml:id="metering-ext"
xmlns:wadl="http://wadl.dev.java.net/2009/02">
<title>Metering labels and rules</title>
<para>Creates, modifies, and deletes OpenStack Layer3 Metering labels
and rules.</para>
<wadl:resources href="../wadls/netconn-api/src/metering-labels.wadl"/>
<para>Create, modify, and delete OpenStack Layer-3
metering labels and rules.</para>
<wadl:resources
href="../wadls/netconn-api/src/metering-labels.wadl"/>
</section>
</section>
</chapter>

View File

@ -0,0 +1,17 @@
{
"network":{
"segments":[
{
"provider:segmentation_id":"2",
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"vlan"
},
{
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"stt"
}
],
"name":"net1",
"admin_state_up":true
}
}

View File

@ -0,0 +1,26 @@
{
"network":{
"status":"ACTIVE",
"subnets":[
],
"name":"net1",
"admin_state_up":true,
"tenant_id":"9bacb3c5d39d41a79512987f338cf177",
"segments":[
{
"provider:segmentation_id":2,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"vlan"
},
{
"provider:segmentation_id":null,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"stt"
}
],
"shared":false,
"port_security_enabled":true,
"id":"4e8e5957-649f-477b-9e5b-f1f75b21c03c"
}
}

View File

@ -4,13 +4,23 @@
"subnets":[
],
"name":"sample_network",
"provider:physical_network":null,
"name":"net1",
"admin_state_up":true,
"tenant_id":"4fd44f30292945e481c7b8a0c8908869",
"provider:network_type":"local",
"tenant_id":"9bacb3c5d39d41a79512987f338cf177",
"segments":[
{
"provider:segmentation_id":2,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"vlan"
},
{
"provider:segmentation_id":null,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"stt"
}
],
"shared":false,
"id":"baed79dd-9136-4260-b9a9-d9dfa2bf6547",
"provider:segmentation_id":null
"port_security_enabled":true,
"id":"4e8e5957-649f-477b-9e5b-f1f75b21c03c"
}
}
}

View File

@ -0,0 +1,27 @@
{
"network":{
"status":"ACTIVE",
"subnets":[
],
"name":"net1",
"admin_state_up":true,
"tenant_id":"9bacb3c5d39d41a79512987f338cf177",
"segments":[
{
"provider:segmentation_id":2,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"vlan"
},
{
"provider:segmentation_id":0,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"stt"
}
],
"router:external":false,
"shared":false,
"port_security_enabled":true,
"id":"4e8e5957-649f-477b-9e5b-f1f75b21c03c"
}
}

View File

@ -0,0 +1,44 @@
{
"networks":[
{
"status":"ACTIVE",
"subnets":[
],
"name":"net1",
"admin_state_up":true,
"tenant_id":"9bacb3c5d39d41a79512987f338cf177",
"segments":[
{
"provider:segmentation_id":2,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"vlan"
},
{
"provider:segmentation_id":0,
"provider:physical_network":"8bab8453-1bc9-45af-8c70-f83aa9b50453",
"provider:network_type":"stt"
}
],
"router:external":false,
"shared":false,
"port_security_enabled":true,
"id":"4e8e5957-649f-477b-9e5b-f1f75b21c03c"
},
{
"status":"ACTIVE",
"subnets":[
"08eae331-0402-425a-923c-34f7cfe39c1b"
],
"name":"private",
"provider:physical_network":null,
"admin_state_up":true,
"tenant_id":"26a7980765d0414dbc1fc1f88cdb7e6e",
"provider:network_type":"local",
"router:external":true,
"shared":true,
"id":"db193ab3-96e3-4cb3-8fc5-05f4296d0324",
"provider:segmentation_id":null
}
]
}

View File

@ -175,6 +175,11 @@
<wadl:doc xmlns:wadl="http://wadl.dev.java.net/2009/02" xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>An isolated segment on the physical network. The network_type attribute defines the segmentation model. For example, if network_type is vlan, this ID is a vlan identifier. If network_type is gre, this ID is a gre key.</para></wadl:doc>
</param>'>
<!ENTITY networkSegmentParameter '
<param xmlns="http://wadl.dev.java.net/2009/02" required="true"
name="segments" style="plain" type="xsd:string">
<wadl:doc xmlns:wadl="http://wadl.dev.java.net/2009/02" xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A <code>segments</code> object that defines one or more provider segments.</para></wadl:doc></param>'>
<!ENTITY portListParameters
'<param xmlns="http://wadl.dev.java.net/2009/02" required="true"
name="status" style="plain" type="xsd:string">

View File

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- (C) 2013-2014 OpenStack Foundation, All Rights Reserved -->
<!--*******************************************************-->
<!-- Import Common XML Entities -->
<!-- -->
<!-- You can resolve the entites with xmllint -->
<!-- -->
<!-- xmllint -noent os-networks-multi-provider-ext.wadl -->
<!--*******************************************************-->
<!DOCTYPE application [<!ENTITY % common SYSTEM "common.ent">
%common;]>
<application xmlns="http://wadl.dev.java.net/2009/02"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:linkend="http://www.w3.org/1999/linkend"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wadl="http://wadl.dev.java.net/2009/02"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1">
<!--*******************************************************-->
<!-- All Resources -->
<!--*******************************************************-->
<resources base="https://neutron.example.com/"
xml:id="os-networks-multi-provider-ext-v2.0">
<resource id="version" path="v2.0/">
<resource id="Networks" path="networks">
<method href="#listNetworks"/>
<method href="#createNetwork"/>
<resource path="{network_id}" id="network_id">
<param name="network_id" style="template"
type="csapi:UUID">
<wadl:doc
xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"><para>The UUID for the
network of interest to
you.</para></wadl:doc>
</param>
<method href="#showNetwork"/>
<!-- <method href="#updateNetwork"/>-->
<!--<method href="#deleteNetwork"/>-->
</resource>
</resource>
</resource>
</resources>
<!--*******************************************************-->
<!-- All Methods -->
<!--*******************************************************-->
<method name="GET" id="listNetworks">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN"
title="List networks">
<para role="shortdesc">Lists networks that are accessible
to the tenant who submits the request. Networks with
multiple segments include the <code>segments</code>
list in the response.</para>
</wadl:doc>
<response status="200"> &networkListParameters;
&networkSegmentParameter; &networkProviderParameters;
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/networks-multi-list-resp.json"
/>
</wadl:doc>
</representation>
<!--<representation mediaType="application/xml">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/networks-multi-get-detail-resp.xml"
/>
</wadl:doc>
</representation>-->
</response>
</method>
<method name="POST" id="createNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Create network with multiple segment mappings"
xml:lang="EN">
<para role="shortdesc">Creates a network with multiple
segment mappings.</para>
</wadl:doc>
<request> &networkCreateParameters; &networkSegmentParameter;
&networkProviderParameters; <representation
mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-post-req.json"
/>
</wadl:doc>
</representation>
<!-- <representation mediaType="application/xml">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-post-req.xml"
/>
</wadl:doc>
</representation>-->
</request>
<response status="201"> &networkListParameters;
&networkProviderParameters; <representation
mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-post-resp.json"
/>
</wadl:doc>
</representation>
<!--<representation mediaType="application/xml">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-post-resp.xml"
/>
</wadl:doc>
</representation>-->
</response>
</method>
<method name="GET" id="showNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Show details for a network with multiple segments">
<para role="shortdesc">Shows details for a specified
network with multiple segments.</para>
</wadl:doc>
<response status="200"> &networkListParameters;
&networkSegmentParameter; &networkProviderParameters;
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/networks-multi-get-detail-resp.json"
/>
</wadl:doc>
</representation>
<!--<representation mediaType="application/xml">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/networks-multi-get-detail-resp.xml"
/>
</wadl:doc>
</representation>-->
</response>
</method>
<!--<method name="PUT" id="updateNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Update network with multiple segments">
<para role="shortdesc">Updates a specified network with
multiple segments.</para>
</wadl:doc>
<request> &networkCreateParameters; &networkSegmentParameter;
&networkProviderParameters; <representation
mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-put-update.req.json"
/>
</wadl:doc>
</representation>
<!-\- <representation mediaType="application/xml">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-put-update.req.xml"
/>
</wadl:doc>
</representation>-\->
</request>
<response status="201"> &networkListParameters;
&networkSegmentParameter; &networkProviderParameters;
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-put-update-resp.json"
/>
</wadl:doc>
</representation>
<!-\- <representation mediaType="application/xml">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<xsdxt:code
href="api_samples/network-multi-put-update-resp.xml"
/>
</wadl:doc>
</representation>-\->
</response>
</method>-->
<!--<method name="DELETE" id="deleteNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Delete network">
<para role="shortdesc">Deletes a specified network.</para>
</wadl:doc>
</method>-->
</application>

View File

@ -19,7 +19,8 @@
<!--*******************************************************-->
<!-- All Resources -->
<!--*******************************************************-->
<resources base="https://neutron.example.com/" xml:id="os-networks-provider-ext-v2.0">
<resources base="https://neutron.example.com/"
xml:id="os-networks-provider-ext-v2.0">
<resource id="version" path="v2.0/">
<resource id="Networks" path="networks">
<method href="#listNetworks"/>
@ -74,7 +75,7 @@
title="Create network" xml:lang="EN">
<para role="shortdesc">Creates a network.</para>
</wadl:doc>
<request> &networkCreateParameters; <representation
<request> &networkCreateParameters; &networkProviderParameters; <representation
mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
@ -110,8 +111,8 @@
</method>
<method name="GET" id="showNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Show networks">
<para role="shortdesc">Shows information for the specified
title="Show network details">
<para role="shortdesc">Shows details for a specified
network.</para>
</wadl:doc>
<response status="200"> &networkListParameters;
@ -137,8 +138,7 @@
<method name="PUT" id="updateNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Update network">
<para role="shortdesc">Updates the specified
network.</para>
<para role="shortdesc">Updates a specified network.</para>
</wadl:doc>
<request> &networkCreateParameters;
&networkProviderParameters; <representation
@ -182,8 +182,7 @@
<method name="DELETE" id="deleteNetwork">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="Delete network">
<para role="shortdesc">Deletes the specified
network.</para>
<para role="shortdesc">Deletes a specified network.</para>
</wadl:doc>
</method>
</application>