Removes WADL references and replaces with links to API Ref

Change-Id: Ie28876acb2c8e0837a87dd475ef235f54dcf4c03
This commit is contained in:
Anne Gentle 2014-08-08 10:34:18 -05:00
parent 3302e05316
commit 3825fdc375
21 changed files with 29 additions and 5915 deletions

View File

@ -1,76 +0,0 @@
<?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;">
<!-- 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>'>
<!ENTITY CHECK '<inlinemediaobject xmlns="http://docbook.org/ns/docbook">
<imageobject>
<imagedata fileref="figures/Check_mark_23x20_02.svg"
format="SVG" scale="60"/>
</imageobject>
</inlinemediaobject>'>
<!ENTITY ARROW '<inlinemediaobject xmlns="http://docbook.org/ns/docbook">
<imageobject>
<imagedata fileref="figures/Arrow_east.svg"
format="SVG" scale="60"/>
</imageobject>
</inlinemediaobject>'>
<!ENTITY APIv2 'Networking API v2.0'>
]>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="API_extensions">
<title>API extensions</title>
<para>An API extension extends one or more of the following
components of the core API:</para>
<itemizedlist>
<listitem>
<para>Resources. An extension creates object
classes.</para>
</listitem>
<listitem>
<para>Attributes. An extended attribute creates an
attribute on existing resources. Prefixed by the
extension name.</para>
</listitem>
<listitem>
<para>Actions. An extended action creates an operation on
an existing resource.</para>
</listitem>
</itemizedlist>
<para>Generic API extensions are not plug-in-specific. For
information about plug-in-specific extensions that ship with
OpenStack Networking, see the extension documentation in the
source code tree.</para>
<xi:include href="section_neutron-ext-show-info.xml"/>
<xi:include href="section_neutron-ext-agent-management.xml"/>
<xi:include href="section_neutron-ext-agent-schedulers.xml"/>
<xi:include href="section_neutron-ext-allowed-address-pairs.xml"/>
<xi:include href="section_neutron-ext-binding-ports.xml"/>
<xi:include href="section_neutron-ext-external-gateways-modes.xml"/>
<xi:include href="section_neutron-ext-external-networks.xml"/>
<xi:include href="section_neutron-ext-extra-routes.xml"/>
<xi:include href="section_neutron-ext-fwaas.xml"/>
<xi:include href="section_neutron-ext-layer3.xml"/>
<xi:include href="section_neutron-ext-lbaas.xml"/>
<xi:include href="section_neutron-ext-metering.xml"/>
<xi:include href="section_neutron-ext-provider-networks.xml"/>
<xi:include href="section_neutron-ext-provider-networks-multi.xml"/>
<xi:include href="section_neutron-ext-quotas.xml"/>
<xi:include href="section_neutron-ext-security-groups-rules.xml"/>
<xi:include href="section_neutron-ext-vpnaas.xml"/>
<xi:include href="section_neutron-ext-extra-dhcp-options.xml"/>
</chapter>

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="API_Operations" role="api-reference">
<title>API operations</title>
<para>Provides virtual networking services among devices that are
managed by the OpenStack Compute service. The Networking API
v2.0 combines the API v1.1 functionality with some essential
Internet Protocol Address Management (IPAM)
functionality.</para>
<para>Enables users to associate IP address blocks and other
network configuration settings with a neutron network. You can
choose a specific IP address from the block or let neutron
choose the first available IP address.</para>
<section xml:id="networks">
<title>Networks</title>
<para>List, show information for, create, update, and delete
networks.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02"
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks.wadl"
/>
</section>
<section xml:id="subnets">
<title>Subnets</title>
<para>List, show information for, create, update, and delete
subnet resources.</para>
<!-- updated os-subnets.wadl to correct errors reported in bug #1292359 -->
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-subnets.wadl#Subnets">
<wadl:method href="#listSubnets"/>
<wadl:method href="#createSubnet"/>
<wadl:method href="#bulkCreateSubnet"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-subnets.wadl#subnet_id">
<wadl:method href="#showSubnet"/>
<wadl:method href="#updateSubnet"/>
<wadl:method href="#removeSubnet"/>
</wadl:resource>
</wadl:resources>
</section>
<section xml:id="ports">
<title>Ports</title>
<para>List, show information for, create, update, and delete
ports.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02"
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-ports.wadl"
/>
</section>
</chapter>

View File

@ -44,6 +44,20 @@
</abstract> </abstract>
<revhistory> <revhistory>
<!-- ... continue adding more revisions here as you change this document using the markup shown below... --> <!-- ... continue adding more revisions here as you change this document using the markup shown below... -->
<revision>
<date>2014-08-08</date>
<revdescription>
<itemizedlist spacing="compact">
<listitem>
<para>Removed and replaced WADL references
with links to <link
xlink:href="http://developer.openstack.org/api-ref-networking-v2.0.html"
><citetitle>Networking API v2.0
(CURRENT)</citetitle></link>.</para>
</listitem>
</itemizedlist>
</revdescription>
</revision>
<revision> <revision>
<date>2014-06-29</date> <date>2014-06-29</date>
<revdescription> <revdescription>
@ -136,6 +150,19 @@
<xi:include href="ch_neutron_preface.xml"/> <xi:include href="ch_neutron_preface.xml"/>
<xi:include href="ch_neutron_overview.xml"/> <xi:include href="ch_neutron_overview.xml"/>
<xi:include href="ch_neutron_general_info.xml"/> <xi:include href="ch_neutron_general_info.xml"/>
<xi:include href="ch_neutron_api_operations.xml"/> <chapter xml:id="API_Operations">
<xi:include href="ch_neutron_api_extensions.xml"/> <title>API operations and extensions</title>
<para>Provides virtual networking services among devices that are
managed by the OpenStack Compute service. The Networking API
v2.0 combines the API v1.1 functionality with some essential
Internet Protocol Address Management (IPAM)
functionality.</para>
<para>Enables users to associate IP address blocks and other
network configuration settings with a neutron network. You
can choose a specific IP address from the block or let the
service choose the first available IP address.</para>
<para>For information about Networking API operations, see <link
xlink:href="http://developer.openstack.org/api-ref-networking-v2.0.html"
><citetitle>Networking API v2.0 (CURRENT)</citetitle></link>.</para>
</chapter>
</book> </book>

View File

@ -1,249 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- 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>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="agent_ext">
<title>Agent management</title>
<para>In a typical OpenStack Networking deployment, some agents
run on network or compute nodes, such as
<literal>neutron-dhcp-agent</literal>,
<literal>neutron-ovs-agent</literal>, and
<literal>neutron-l3-agent</literal>. This extension
enables administrators (enforced by the policy engine) to view
status and update attributes for agents. Updating agent
management API attributes affects operations of other
components, such as OpenStack Networking schedulers. For
example, administrators can disable a specified agent so that
OpenStack Networking schedulers do not schedule resources to
it.</para>
<para>For how to use agent management extension and OpenStack
Networking schedulers feature, see the <citetitle>OpenStack
Cloud Administrator Guide</citetitle>.</para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr align="center">
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents</td>
<td>Lists agents that report their status to OpenStack
Networking server.</td>
</tr>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter></td>
<td>Shows details for a specified agent.</td>
</tr>
<tr>
<td>&PUT;</td>
<td>/agents/<parameter>agent_id</parameter></td>
<td>Updates the admin status and description for a
specified agent.</td>
</tr>
<tr>
<td>&DELETE;</td>
<td>/agents/<parameter>agent_id</parameter></td>
<td>Deletes a specified agent.</td>
</tr>
</tbody>
</informaltable>
<section xml:id="List_Agents">
<title>List agents</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents</td>
<td>Lists agents that report their status to
OpenStack Networking server.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal Response Code: <returnvalue>200</returnvalue>
</simpara>
<para>This operation does not require a request body.</para>
<para>This operation returns a response body. The default
policy behavior is that non-admin user won't be able to
see any agent in the response when this call is
invoked</para>
<example>
<title>List agents: JSON request</title>
<programlisting>GET /v2.0/agents HTTP/1.1
Host: controlnode:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: c52a1b304fec4ca0ac85dc1741eec6e2</programlisting>
</example>
<example>
<title>List agents: JSON response</title>
<programlisting language="json"><xi:include href="samples/agents/agents-list-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Show_Agent">
<title>Show agent details</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter></td>
<td>Shows details for a specified agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal Response Code: <returnvalue>200</returnvalue>
</simpara>
<simpara>Error Response Codes:NotFound
(<errorcode>404</errorcode>) if not authorized or the
agent does not exist</simpara>
<para>This operation returns information for the given
agent.</para>
<para>This operation does not require a request body.</para>
<para>This operation returns a response body. The body
contents depend on the agent's type.</para>
<example>
<title>Show agent details: JSON request</title>
<programlisting>GET /v2.0/agents/af4567ad-c2e6-4311-944d-22efc12f89af HTTP/1.1
Host: controlnode:9696
User-agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: a54d6fdda41341f892150e2aaf648f0d</programlisting>
</example>
<example>
<title>Show agent details: JSON response</title>
<programlisting language="json"><xi:include href="samples/agents/agents-show-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Update_Agent">
<title>Update agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&PUT;</td>
<td>/agents/<parameter>agent_id</parameter></td>
<td>Updates the admin status and description for a
specified agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal Response Code: <returnvalue>200</returnvalue>
</simpara>
<simpara>Error Response Codes: BadRequest
(<errorcode>400</errorcode>) if something other than
description or admin status is changed, NotFound
(<errorcode>404</errorcode>) if not authorized or the
agent does not exist</simpara>
<para>This operation updates the agent's admin status and
description.</para>
<para>This operation requires a request body.</para>
<para>This operation returns a response body.</para>
<example>
<title>Update agent: JSON request</title>
<programlisting>PUT /v2.0/agents/af4567ad-c2e6-4311-944d-22efc12f89af HTTP/1.1
Host: controlnode:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 4cbb09e780434b249ff596d6979fd8fc
Content-Length: 38<xi:include href="samples/agents/agents-put-req.json" parse="text"/></programlisting>
</example>
<example>
<title>Update agents: JSON response</title>
<programlisting language="json"><xi:include href="samples/agents/agents-put-res.json" parse="text"/></programlisting>
</example>
</section>
<?hard-pagebreak?>
<section xml:id="Delete_Agent">
<title>Delete agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&DELETE;</td>
<td>/agents/<parameter>agent_id</parameter></td>
<td>Deletes a specified agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal Response Code: <returnvalue>204</returnvalue>
</simpara>
<simpara>Error Response Codes: NotFound
(<errorcode>404</errorcode>) if not authorized or the
agent does not exist</simpara>
<para>This operation deletes the agent.</para>
<para>This operation does not require a request body.</para>
<para>This operation does not return a response body.</para>
<example>
<title>Delete agent: JSON request</title>
<programlisting>DELETE /v2.0/agents/44002aeb-2817-4cb8-9306-34308b4b40d9 HTTP/1.1
Host: controlnode:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 4cbb09e780434b249ff596d6979fd8fc</programlisting>
</example>
<example>
<title>Delete agent: JSON response</title>
<programlisting language="json"><xi:include href="samples/agents/agents-delete-res-json-http.txt" parse="text"/></programlisting>
</example>
</section>
</section>

View File

@ -1,662 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- 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>'>
]>
<?hard-pagebreak?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="agent_sche_ext">
<title>Agent schedulers</title>
<para>The agent scheduler extensions schedule resources among
agents on top of the <xref linkend="agent_ext"/>.</para>
<para>The agent scheduler feature consist of several agent
scheduler extensions. In Havana, the following extensions are
available.</para>
<itemizedlist>
<listitem>
<para>DHCP agent scheduler
(<literal>dhcp_agent_scheduler</literal>)</para>
</listitem>
<listitem>
<para>L3 agent scheduler
(<literal>l3_agent_scheduler</literal>)</para>
</listitem>
<listitem>
<para>load balancer agent scheduler
(<literal>lbaas_agent_scheduler</literal>)</para>
</listitem>
</itemizedlist>
<para>In Grizzly, the DHCP agent scheduler and the L3 agent
scheduler features are provided by a single extension named
the agent scheduler (<literal>agent_scheduler</literal>). In
Havana, this extension is split into the DHCP agent scheduler
and the L3 agent scheduler extensions. The load balancer agent
scheduler extension was introduced in Havana.</para>
<section xml:id="Scheduler_DHCP_Agent">
<title>DHCP agent scheduler
(<literal>dhcp_agent_scheduler</literal>)</title>
<para>The DHCP agent scheduler extension enables
administrators to assign DHCP servers for Neutron networks
to given Neutron DHCP agents, and retrieve mappings
between Neutron networks and DHCP agents. This feature is
implemented on top of Agent Management extension.</para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr align="center">
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter>/dhcp-networks</td>
<td>Lists networks that the specified DHCP agent
hosts.</td>
</tr>
<tr>
<td>&GET;</td>
<td>/networks/<parameter>network_id</parameter>/dhcp-agents</td>
<td>Lists DHCP agents that host a specified
network.</td>
</tr>
<tr>
<td>&POST;</td>
<td>/agents/<parameter>agent_id</parameter>/dhcp-networks</td>
<td>Schedules the network to that the specified
DHCP agent.</td>
</tr>
<tr>
<td>&DELETE;</td>
<td>/agents/<parameter>agent_id</parameter>/dhcp-networks/<parameter>network_id</parameter></td>
<td>Removes the network from that the specified
DHCP agent.</td>
</tr>
</tbody>
</informaltable>
<section xml:id="Sche_List_Networks_on_Dhcp_Agent">
<title>List networks hosted by a DHCP agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter>/dhcp-networks</td>
<td>Lists networks that the specified DHCP
agenthosts.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>200</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>)</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation returns a response body.</para>
<example>
<title>List networks hosted by on DHCP agent: JSON
request</title>
<programlisting>GET /v2.0/agents/d5724d7e-389d-4ba0-8d00-fc673a147bfa/dhcp-networks HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 797f94caf0a8481c893a232cc0c1dfca</programlisting>
</example>
<example>
<title>List networks hosted by DHCP agent: JSON
response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-network-list-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_List_DHCP_agents_Hosting_Network">
<title>List DHCP agents hosted by network</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/networks/<parameter>network_id</parameter>/dhcp-agents</td>
<td>Lists DHCP agents that hosts a specified
network.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>200</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>)</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation returns a response body.</para>
<example>
<title>List DHCP agents hosted by network: JSON
request</title>
<para>
<programlisting>GET /v2.0/networks/2d627131-c841-4e3a-ace6-f2dd75773b6d/dhcp-agents HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: cc0f378bdf1545fb8dea2120c89eb532
</programlisting>
</para>
</example>
<example>
<title>List DHCP agents hosted by network: JSON
response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-dhcp-list-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_Network_DHCP">
<title>Schedule network to DHCP agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&POST;</td>
<td>/agents/<parameter>agent_id</parameter>/dhcp-networks</td>
<td>Schedules the network to that the
specified DHCP agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>201</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>), Conflict
(<errorcode>409</errorcode>) if the network is
already hosted by that the specified DHCP agent,
NotFound(<errorcode>404</errorcode>) when the
specified agent is not a valid DHCP agent.</simpara>
<para>This operation requires a request body.</para>
<para>This operation returns a <literal>null</literal>
body.</para>
<example>
<title>Schedule network: JSON request</title>
<programlisting>POST /v2.0/agents/d5724d7e-389d-4ba0-8d00-fc673a147bfa/dhcp-networks.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: d88f7af21ee34f6c87e23e46cf3f986d
Content-Length: 54
<xi:include href="samples/scheduler/sche-network-dhcp-req.json" parse="text"/></programlisting>
</example>
<example>
<title>Schedule network: JSON response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-network-dhcp-res-json-http.txt" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_Remove_Network_DHCP">
<title>Remove network from DHCP agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&DELETE;</td>
<td>/agents/<parameter>agent_id</parameter>/dhcp-networks/<parameter>network_id</parameter></td>
<td>Removes the network from that the
specified DHCP agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>204</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>), NotFound
(<errorcode>404</errorcode>), Conflict
(<errorcode>409</errorcode>) if the network is not
hosted by that the specified DHCP agent.</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation does not return a response
body.</para>
<example>
<title>Remove network from DHCP agent: JSON
request</title>
<programlisting>DELETE /v2.0/agents/d5724d7e-389d-4ba0-8d00-fc673a147bfa/dhcp-networks/1ae075ca-708b-4e66-b4a7-b7698632f05f.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 7ae91cde8f504031be5a2cd5b99d4fe9</programlisting>
</example>
</section>
</section>
<section xml:id="Scheduler_L3_Agent">
<title>L3 agent scheduler
(<literal>l3_agent_scheduler</literal>)</title>
<para>The L3 agent scheduler extension allows administrators
to assign Neutron routers to Neutron L3 agents, and
retrieve mappings between Neutron routers and L3 agents.
This feature is implemented on top of Agent Management
extension.</para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr align="center">
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter>/l3-routers</td>
<td>Lists routers that the specified L3 agent
hosts.</td>
</tr>
<tr>
<td>&GET;</td>
<td>/routers/<parameter>router_id</parameter>/l3-agents</td>
<td>Lists L3 agents that hosts a specified
router.</td>
</tr>
<tr>
<td>&POST;</td>
<td>/agents/<parameter>agent_id</parameter>/l3-routers</td>
<td>Schedules the router to that the specified L3
agent.</td>
</tr>
<tr>
<td>&DELETE;</td>
<td>/agents/<parameter>agent_id</parameter>/l3-routers/<parameter>router_id</parameter></td>
<td>Removes the router from that the specified L3
agent.</td>
</tr>
</tbody>
</informaltable>
<section xml:id="Sche_List_Routers_on_L3_Agent">
<title>List routers hosted by an L3 agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter>/l3-routers</td>
<td>Lists routers that the specified L3 agent
hosts.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>200</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>)</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation returns a response body.</para>
<example>
<title>List routers hosted by L3 agent: JSON
request</title>
<programlisting>GET /v2.0/agents/fa24e88e-3d2f-4fc2-b038-5fb5be294c03/l3-routers.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 6eeea6e73b68415f85d8368902a32c11
</programlisting>
</example>
<example>
<title>List routers hosted by L3 agent: JSON
response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-router-list-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_List_L3_agents_Hosting_Router">
<title>List L3 agents hosted by router</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/routers/<parameter>router_id</parameter>/l3-agents</td>
<td>Lists L3 agents that hosts a specified
router.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>200</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>)</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation returns a response body.</para>
<example>
<title>List L3 agents hosted by router: JSON
request</title>
<programlisting>GET /v2.0/routers/8eef2388-f27d-4a17-986e-9319a77ccd9d/l3-agents.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: bce63afb1e794c70972a19a7c2d6dcab</programlisting>
</example>
<example>
<title>List L3 agents hosted by router: JSON
response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-l3-list-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_Router_L3">
<title>Schedule router to L3 agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&POST;</td>
<td>/agents/<parameter>agent_id</parameter>/l3-routers</td>
<td>Schedules one router to that the specified
L3 agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>201</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>), Conflict
(<errorcode>409</errorcode>) if the router is
already hosted, NotFound (<errorcode>404</errorcode>)
if the specified agent is not a valid L3
agent.</simpara>
<para>This operation requires a request body.</para>
<para>This operation returns a <literal>null</literal>
body.</para>
<example>
<title>Schedule router: JSON request</title>
<programlisting>POST /v2.0/agents/fa24e88e-3d2f-4fc2-b038-5fb5be294c03/l3-routers.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: d88f7af21ee34f6c87e23e46cf3f986d
Content-Length: 54
<xi:include href="samples/scheduler/sche-router-l3-req.json" parse="text"/></programlisting>
</example>
<example>
<title>Schedule router: JSON response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-router-l3-res-json-http.txt" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_Remove_Router_L3">
<title>Remove router from L3 agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&DELETE;</td>
<td>/agents/<parameter>agent_id</parameter>/l3-routers/<parameter>router_id</parameter></td>
<td>Removes the router from that the specified
L3 agent.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>204</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>), Conflict
(<errorcode>409</errorcode>) if the router is not
hosted by that the specified L3 agent.</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation does not return a response
body.</para>
<example>
<title>Remove router from L3 agent: JSON
request</title>
<programlisting>DELETE /v2.0/agents/b7d7ba43-1a05-4b09-ba07-67242d4a98f4/l3-routers/8eef2388-f27d-4a17-986e-9319a77ccd9d.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 2147ef6fe4444f0299b1c0b6b529ff47</programlisting>
</example>
</section>
</section>
<section xml:id="Scheduler_LBaaS_Agent">
<title>Load balancer agent scheduler
(<literal>lbaas_agent_scheduler</literal>)</title>
<para>The LBaaS agent scheduler extension allows
administrators to retrieve mappings between load balancer
pools to LBaaS agents. In Havana, this extension does not
provide an ability to assign load balancer pool to
specific LBaaS agent. Pools are scheduled automatically
when created. This feature is implemented on top of Agent
Management extension. The load balancer agent scheduler
extension was introduced in Havana.</para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr align="center">
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter>/loadbalancer-pools</td>
<td>Lists pools that the specified LBaaS agent
hosts.</td>
</tr>
<tr>
<td>&GET;</td>
<td>/lb/pools/<parameter>pool_id</parameter>/loadbalancer-agent</td>
<td>Shows an LBaaS agent that hosts a specified
pool.</td>
</tr>
</tbody>
</informaltable>
<section xml:id="Sche_List_Pools_on_LBaaS_Agent">
<title>List pools hosted by an LBaaS agent</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/agents/<parameter>agent_id</parameter>/loadbalancer-pools</td>
<td>Lists pools that the specified LBaaS agent
hosts.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>200</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>)</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation returns a response body.</para>
<example>
<title>List pools hosted by LBaaS agent: JSON
request</title>
<programlisting>GET /v2.0/agents/6ee1df7f-bae4-4ee9-910a-d33b000773b0/loadbalancer-pools.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 6eeea6e73b68415f85d8368902a32c11</programlisting>
</example>
<example>
<title>List pools hosted by LBaaS agent: JSON
response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-pool-list-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="Sche_List_LBaaS_agents_Hosting_Pool">
<title>Show LBaaS agent that hosts pool</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/lb/pools/<parameter>pool_id</parameter>/loadbalancer-agent</td>
<td>Shows an LBaaS agent that hosts a
specified pool.</td>
</tr>
</tbody>
</informaltable>
<simpara>Normal response Code:
<returnvalue>200</returnvalue>
</simpara>
<simpara>Error response Codes: Unauthorized
(<errorcode>401</errorcode>), Forbidden
(<errorcode>403</errorcode>)</simpara>
<para>This operation does not require a request
body.</para>
<para>This operation returns a response body.</para>
<example>
<title>Show LBaaS agent that hosts pool: JSON
request</title>
<programlisting>GET /v2.0/lb/pools/28296abb-e675-4288-9cd0-6c112c720db0/loadbalancer-agent.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: bce63afb1e794c70972a19a7c2d6dcab</programlisting>
</example>
<example>
<title>Show LBaaS agent that hosts pool: JSON
response</title>
<programlisting language="json"><xi:include href="samples/scheduler/sche-lbaas-agent-list-res.json" parse="text"/></programlisting>
</example>
</section>
</section>
</section>

View File

@ -1,169 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book[
<!-- 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>'>
]>
<section xml:id="allowed_address_pair_ext"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Allowed address pairs</title>
<para>The allowed address pair extension extends the port
attribute to enable you to specify arbitrary
mac_address/ip_address(cidr) pairs that are allowed to pass
through a port regardless of the subnet associated with the
network.</para>
<section xml:id="allowed_address_pair_ext_port_list">
<title>List ports</title>
<para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/ports</td>
<td>Lists ports with their allowed address
pair attributes.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Normal Response Code: 200 OK</para>
<para>Error Response Codes: 401 Unauthorized</para>
<para>This operation returns, for each port, its allowed
address pair attributes as well as all the attributes
normally returned by the list port operation.</para>
<example>
<title>List ports with allowed address pair attributes:
JSON response</title>
<programlisting language="json"><xi:include href="samples/address-pairs/ports-get-res-addr-pairs.json" parse="text"/></programlisting>
</example>
<example>
<title>List ports with allowed address pair attributes:
XML response</title>
<programlisting language="json"><xi:include href="samples/address-pairs/ports-get-res-addr-pairs.xml" parse="text"/></programlisting>
</example>
</section>
<section xml:id="allowed_address_pair_port_show">
<title>Show port details</title>
<para>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/ports/<parameter>port_id</parameter></td>
<td>Shows details about a specified port,
including allowed address pair
attributes.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Normal Response Code: 200 OK</para>
<para>Error Response Code: 401 Unauthorized, 404 Not
Found</para>
<example>
<title>Show port with allowed address pair attributes:
JSON response</title>
<programlisting language="json"><xi:include href="samples/address-pairs/ports-show-addr-pair.json" parse="text"/></programlisting>
</example>
<example>
<title>Show port with allowed address pair attributes: XML
response</title>
<programlisting language="json"><xi:include href="samples/address-pairs/ports-show-addr-pair.xml" parse="text"/></programlisting>
</example>
</section>
<section xml:id="allowed_address_pair_port_create">
<title>Create port</title>
<para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&POST;</td>
<td>/ports</td>
<td>Creates a port and explicitly specifies
the allowed address pair attributes.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Normal Response Code: 201</para>
<para>Error Response Code: 400 Bad Request, 401 Unauthorized,
403 Forbidden</para>
<para>Bad request is returned if an allowed address pair
matches the mac_address and ip_address on port.</para>
<para>Note: If the mac_address field is left out of the body
of the request the mac_address assigned to the port will
be used.</para>
<example>
<title>Create port with allowed address pair attributes:
JSON request</title>
<programlisting language="json"><xi:include href="samples/address-pairs/ports-post-req-addr-pairs.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="allowed_address_pair_port_update">
<title>Update port</title>
<para>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&PUT;</td>
<td>/ports/<parameter>port_id</parameter></td>
<td>Updates a port, with new allowed address
pair values.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Normal Response Code: 200 OK</para>
<para>Error Response Code: 400 Bad Request, 401 Unauthorized,
404 Not Found, 403 Forbidden</para>
<example>
<title>Update allowed address pair attributes for a port:
JSON request</title>
<programlisting language="json"><xi:include href="samples/address-pairs/ports-put-req-addr-pair.json" parse="text"/></programlisting>
</example>
</section>
</section>

View File

@ -1,161 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book[
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!ENTITY plusmn "&#xB1;">
<!-- 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>'>
<!ENTITY APIv2 'Networking API v2.0'>
]>
<section xml:id="binding_ext_ports"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Ports binding extended attributes (ports)</title>
<para>Use the &APIv2; with the <parameter>binding</parameter>
extended attributes to get information about, create, and
update port objects.</para>
<para>The <parameter>binding</parameter>-prefixed extended
attributes for ports are:</para>
<table rules="all" width="95%">
<caption>Ports binding extended attributes</caption>
<col width="30%"/>
<col width="10%"/>
<col width="10%"/>
<col width="10%"/>
<col width="10%"/>
<col width="10%"/>
<col width="20%"/>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Required</th>
<th>CRUD<footnote xml:id="crud_network">
<itemizedlist>
<listitem>
<para><emphasis role="bold"
>C</emphasis>. Use the attribute in
create operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>R</emphasis>. This attribute is
returned in response to show and
list operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>U</emphasis>. You can update the
value of this attribute.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>D</emphasis>. You can delete the
value of this attribute.</para>
</listitem>
</itemizedlist>
</footnote></th>
<th>Default value</th>
<th>Validation constraints</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><para><parameter>binding:vnic_type</parameter></para></td>
<td><para>String</para></td>
<td><para>N/A</para></td>
<td><para>CRU</para></td>
<td><para>normal</para></td>
<td><para>(normal, direct, macvtap)</para></td>
<td><para>The vnic type to be bound on the neutron
port.</para>
<para>In &POST; and &PUT; operations, specify a
value of <literal>normal</literal> (virtual
nic), <literal>direct</literal> (pci
passthrough), or <literal>macvtap</literal>
(virtual interface with a tap-like software
interface). These values support SR-IOV PCI
passthrough networking. The ML2 plug-in
supports the
<parameter>vnic_type</parameter>.</para>
<para>In &GET; operations, the
<parameter>binding:vnic_type</parameter>
extended attribute is visible to only port
owners and administrative users.</para>
</td>
</tr>
<tr>
<td><para><parameter>binding:vif_type</parameter></para></td>
<td><para>String</para></td>
<td><para>N/A</para></td>
<td><para>R</para></td>
<td><para>None</para></td>
<td><para>N/A</para></td>
<td><para>Read-only. The vif type for the specified
port.</para>
<para>Visible to only administrative users.</para>
</td>
</tr>
<tr>
<td>
<para><parameter>binding:vif_details</parameter></para></td>
<td><para>list(dict)</para></td>
<td><para>N/A</para></td>
<td><para>R</para></td>
<td><para>None</para></td>
<td><para>N/A</para></td>
<td><para>Read-only. A dictionary that enables the
application to pass information about
functions that &APIv2; provides. Specify the
following value: <code>port_filter :
Boolean</code> to define whether &APIv2;
provides port filtering features such as
security group and anti-MAC/IP
spoofing.</para>
<para>Visible to only administrative
users.</para></td>
</tr>
<tr>
<td><para><parameter>binding:host_id</parameter></para></td>
<td><para>uuid-str</para></td>
<td><para>N/A</para></td>
<td><para>CRU</para></td>
<td><para>None</para></td>
<td><para>N/A</para></td>
<td><para>The ID of the host where the port is
allocated. In some cases, different
implementations can run on different
hosts.</para>
<para>Visible to only administrative users.</para>
</td>
</tr>
<tr>
<td><para><parameter>binding:profile</parameter></para></td>
<td><para>list(dict)</para></td>
<td><para>N/A</para></td>
<td><para>CRU</para></td>
<td><para>None</para></td>
<td><para>N/A</para></td>
<td><para>A dictionary that enables the application to
pass information about functions that the
Networking API provides. To enable or disable
port filtering features such as security group
and anti-MAC/IP spoofing, specify
<code>port_filter: True</code> or
<code>port_filter: False</code>.</para>
<para>Visible to only administrative users.</para>
</td>
</tr>
</tbody>
</table>
<wadl:resources
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-ports-binding-ext.wadl"
xmlns:wadl="http://wadl.dev.java.net/2009/02"/>
</section>

View File

@ -1,222 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section[
<!-- 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>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="extgwmodes-ext">
<title>Configurable external gateway modes</title>
<para>By default, when a gateway is attached to a router using the
Neutron L3 extension, Network Address Translation (NAT) is
enabled for traffic generated by subnets attached to the
router. With this extension, the user will have the option of
choosing whether SNAT should be enabled or not on a router
basis.</para>
<para>This is achieved simply by specifying a boolean attribute,
<literal>enable_snat</literal>, in the
<literal>external_gateway_info</literal> attribute of the
<literal>router</literal> resource.</para>
<para>This extension redefines the external_gateway_info
attribute:</para>
<table rules="all">
<caption>external_gateway_info attributes</caption>
<col width="20%"/>
<col width="8%"/>
<col width="10%"/>
<col width="15%"/>
<col width="15%"/>
<col width="32%"/>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Required</th>
<th>Default Value</th>
<th>Validation Constraints</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>network_id</td>
<td>UUID</td>
<td>Yes</td>
<td>N/A</td>
<td>Must be a valid uuid representative of an external
network.</td>
<td/>
</tr>
<tr>
<td>enable_snat</td>
<td>Boolean</td>
<td>No</td>
<td>True</td>
<td>{True|False}</td>
<td>The default setting is <literal>True</literal> to
ensure backward compatibility for plugins
supporting this extension.</td>
</tr>
</tbody>
</table>
<para>SNAT can be enabled or disabled at any time on a Neutron
router regardless of the current status of floating IPs.
Floating IPs will continue working even when SNAT is
disabled.</para>
<section xml:id="list_routers_extgwmodes">
<title>List routers</title>
<para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/routers</td>
<td>Lists neutron routers.</td>
</tr>
</tbody>
</informaltable>
</para>
<simpara>Success and error response codes are not changed with
regards to the operation as introduced by the L3 API
extension.</simpara>
<simpara>When this extension is enabled, this operation also
returns the current Source NAT status for configured
routers, as follows.</simpara>
<simpara>The response for the <emphasis>show router</emphasis>
operation is the same, with the obvious exception that a
single router is returned.</simpara>
<example>
<title>Router list with configurable external gateway
modes enabled</title>
<programlisting language="json"><xi:include href="samples/external-gateway/routers-get-enablesnat-res.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="create_router_extgwmodes">
<title>Create router with external gateway</title>
<para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&POST;</td>
<td>/routers</td>
<td>Create a new Neutron router</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Success and error response codes are not changed with
regards to the operation as introduced by the L3 API
extension.</para>
<para>Neutron API users can specify whether SNAT should be
performed on the network specified as the router's
external gateway by setting <literal>enable_snat</literal>
in <literal>external_gateway_info</literal> to either
<literal>True</literal> or <literal>False</literal>;
the default value is <literal>True</literal>.</para>
<example>
<title>Create router with SNAT disabled</title>
<programlisting language="bash"><xi:include href="samples/external-gateway/router-create-enablesnat-json-http.txt" parse="text"/></programlisting>
</example>
</section>
<section xml:id="update_router_extgwmodes">
<title>Update external gateway information for router</title>
<para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&PUT;</td>
<td>/routers/<literal>router_id</literal></td>
<td>Creates a neutron router.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Success and error response codes are not changed with
regards to the operation as introduced by the L3 API
extension.</para>
<para>Neutron API users can enable or disable SNAT on a router
specifying the <literal>enable_snat</literal> attribute in
the <literal>external_gateway_info</literal> attribute for
the router resource. This operation can be either used for
updating the SNAT status only, the external network, or
both attributes at the same time. In any case, if the
<literal>enable_snat</literal> attribute is not
specified, it will default to <literal>True</literal>. For
instance, if the current SNAT status is disabled, and the
router's gateway is updated to a different external
network without specifying <literal>enable_snat</literal>,
SNAT will be enabled for the new network.</para>
<para>It is important to note that whenever updating a
router's external gateway information, the
<literal>network_id</literal>parameter must be
specified always, even if the final goal is just to enable
or disable SNAT for the router on the same external
network.</para>
<para>The rest of this section provides some samples for
updating a router's external gateway info with SNAT
mode.</para>
<para>
<example>
<title>Disable SNAT for the current external
network</title>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-1.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-1b.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-1c.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-1d.json" parse="text"/></programlisting>
</example>
<example>
<title>Change external network and enable SNAT</title>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-2.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-2b.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-2c.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-2d.json" parse="text"/></programlisting>
</example>
<example>
<title>Change external network and external-gateway SNAT
disabled</title>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-3.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-3b.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-3c.json" parse="text"/></programlisting>
<programlisting language="json"><xi:include href="samples/external-gateway/router-update-enablesnat-3d.json" parse="text"/></programlisting>
</example>
</para>
</section>
</section>

View File

@ -1,217 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book[
<!-- 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>'>
<!ENTITY APIv2 'Networking API v2.0'>
]>
<section xml:id="external_net" xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>External networks (<literal>external-net</literal>)</title>
<para>The external network extension is used to specify whether
the network is external or not. This information is used by
Layer-3 network (<literal>router</literal>) extension.
External networks are connected to a router's external gateway
and host floating IPs.</para>
<para>The external network extension adds the <emphasis
role="italic">router:external</emphasis> attribute to the
network resource.</para>
<table rules="all">
<caption>Network Attributes</caption>
<col width="20%"/>
<col width="8%"/>
<col width="10%"/>
<col width="7%"/>
<col width="15%"/>
<col width="15%"/>
<col width="25%"/>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Required</th>
<th>CRUD<footnote xml:id="crud_ext_net">
<itemizedlist>
<listitem>
<para><emphasis role="bold"
>C</emphasis>. Use the attribute in
create operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>R</emphasis>. This attribute is
returned in response to show and
list operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>U</emphasis>. You can update the
value of this attribute.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>D</emphasis>. You can delete the
value of this attribute.</para>
</listitem>
</itemizedlist>
</footnote></th>
<th>Default Value</th>
<th>Validation Constraints</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>router:external</td>
<td>Bool</td>
<td>No</td>
<td>CRU</td>
<td>False</td>
<td>{ True | False }</td>
<td>Specifies whether the network is an external
network or not.</td>
</tr>
</tbody>
</table>
<section xml:id="external_network_list">
<title>List networks</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/networks</td>
<td>Returns a list of networks with their
router:external attributes.</td>
</tr>
</tbody>
</informaltable>
<para>Response codes are same as the normal operation of
listing networks. <emphasis role="italic"
>router:external</emphasis> attribute is visible to
all users by default policy setting.</para>
<para>Regular users are not authorized to create ports on
external networks, however they will be able to see this
attribute in their network list. This is because external
networks can be used by any tenant to set an external
gateway for Neutron routers or create floating IPs and
associate them with ports on internal tenant
networks.</para>
<example>
<title>List networks with router:external attribute: JSON
response</title>
<programlisting language="json"><xi:include href="samples/extnet/networks-get-res-extnet.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="external_network_show">
<title>Show network details</title>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/networks/<parameter>network_id</parameter></td>
<td>Returns details about a specific network,
including external networks attributes.</td>
</tr>
</tbody>
</informaltable>
<para>Response codes are same as the normal operation of
listing networks. <emphasis role="italic"
>router:external</emphasis> attribute is visible to
all users including non-admin by default policy
setting.</para>
<example>
<title>Show network with external attributes: JSON
response</title>
<programlisting language="json"><xi:include href="samples/extnet/networks-show-res-extnet.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="external_network_create">
<title>Create network</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&POST;</td>
<td>/networks</td>
<td>Creates a new network using the external
network extension attribute.</td>
</tr>
</tbody>
</informaltable>
<para>If the user submitting the request is not allowed to set
this attribute, a 403 Forbidden response will be returned.
Usage of this attribute might be restricted through
authorization policies. By the default policy only admin
users can set this attribute.</para>
<example>
<title>Create network with external attributes: JSON
request</title>
<programlisting language="json"><xi:include href="samples/extnet/networks-post-req-extnet.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="external_network_update">
<title>Update network</title>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&PUT;</td>
<td>/networks/<parameter>network_id</parameter></td>
<td>Updates a network, including the external
network extension attribute.</td>
</tr>
</tbody>
</informaltable>
<para>If the user submitting the request is not allowed to set
this attribute, a 403 Forbidden response will be returned.
Usage of this attribute might be restricted through
authorization policies. By the default policy only admin
users can set this attribute.</para>
<example>
<title>Update external attributes for a network: JSON
request</title>
<programlisting language="json"><xi:include href="samples/extnet/networks-put-req-extnet.json" parse="text"/></programlisting>
</example>
</section>
</section>

View File

@ -1,215 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- 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>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="extra-dhcp-opt-ext">
<title>Extra DHCP options
(<literal>extra-dhcp-opt</literal>)</title>
<para>The DHCP options extension allows adding DHCP options that
are associated to a Neutron port. They are tagged such that
they can be associated from the hosts file to designate a
specific network interface and port. The DHCP tag scheme used
to associate options to the host files is the port_id (UUID -
in the form of <literal>8-4-4-4-12</literal> for a total of 36
characters), these associate options to a Neutron port and its
network. The Dynamic Host Configuration Protocol (DHCP)
provides a framework for passing configuration information to
hosts on a TCP/IP network. Configuration parameters and other
information are carried in tagged data items that are stored
in the 'options' field of the DHCP message.</para>
<para>You can specify a DHCP options when defining or updating a
port by specifying the extra_dhcp_opts tag and providing its
options as name value pairs, such as,
opt_name='bootfile-name', opt_value='pxelinux.0'.</para>
<section xml:id="extra_dhcp_opt-concepts">
<title>Concepts</title>
<para>The <literal>extra-dhcp-opt</literal> extension is an
attribute extension which adds the following set of
attributes to the <emphasis role="bold">port</emphasis>
resource:</para>
<itemizedlist>
<listitem>
<para><emphasis role="italic">
extra-dhcp-opt:opt_name</emphasis> - Specified
the DHCP option that this is defined as mapped to
this port resource. Examples are
<literal>bootfile-name</literal>,
<literal>server-ip-address</literal>,
<literal>tftp-server</literal>, etc..</para>
</listitem>
<listitem>
<para><emphasis role="italic">
extra-dhcp-opt:opt_value</emphasis> -
Identifies the value associated with the opt_name.
These are handled in opt_name, opt_value pairs
only. value_opt can be any text string depending
upon the name.</para>
</listitem>
</itemizedlist>
<para>The actual semantics of
<literal>extra-dhcp-opt</literal> attributes depend on
the name of the dhcp option being used that defines the
vendor extension to DHCP. For example reference RFC:
http://tools.ietf.org/html/rfc2132, contains specific
detail on BOOTP Vendor Extensions.</para>
</section>
<section xml:id="extra-dhcp-opts-ext-list">
<title>List ports</title>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/ports</td>
<td>Lists ports with attributes.</td>
</tr>
</tbody>
</informaltable>
<para>Normal response Code: 200 OK</para>
<para>Error response Codes: 401 Unauthorized</para>
<para>This operation returns all the ports defined in Neutron
that to which this user has access.</para>
<example>
<title>List ports with extra_dhcp_opts: JSON
response</title>
<programlisting language="json"><?db-font-size 75%?><xi:include href="samples/dhcp/port-get-res-edo.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="extra-dhcp-opts-ext-show">
<title>Show port details</title>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&GET;</td>
<td>/ports/<parameter>port_id</parameter></td>
<td>Shows details about a specified port,
including <literal>extra-dhcp-opt</literal>
attributes.</td>
</tr>
</tbody>
</informaltable>
<para>Normal response Code: 200 OK</para>
<para>Error response Code: 401 Unauthorized, 404 Not
Found</para>
<para>This operation returns, for the port specified in the
request URI, its port attributes, including the
extra_dhcp_opts attributes.</para>
<example>
<title>Show port details with extra-dhcp-opt attributes:
JSON response</title>
<programlisting language="json"><?db-font-size 75%?><xi:include href="samples/dhcp/port-show-res-edo.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="extra-dhcp-opt-ext-create">
<title>Create port</title>
<para>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&POST;</td>
<td>/ports</td>
<td>Creates a port and explicitly specifies
attributes with the
<literal>extra-dhcp-opt</literal>
extension attributes.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Normal response Code: 200 OK</para>
<para>Error response Code: 401 Unauthorized.</para>
<para>This operation returns, for the port specified in the
request URI, its port attributes, including the
extra_dhcp_opts attributes.</para>
<example>
<title>Create port with extra-dhcp-opt attributes: JSON
request</title>
<programlisting language="json"><?db-font-size 75%?><xi:include href="samples/dhcp/port-create-req-edo.json" parse="text"/></programlisting>
</example>
<example>
<title>Create port with extra-dhcp-opt attributes: JSON
response</title>
<programlisting language="json"><?db-font-size 75%?><xi:include href="samples/dhcp/port-create-res-edo.json" parse="text"/></programlisting>
</example>
</section>
<section xml:id="extra-dhc-opt-ext-update">
<title>Update port</title>
<informaltable rules="all" width="100%">
<col width="10%"/>
<col width="30%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&PUT;</td>
<td>/ports/<parameter>port_id</parameter></td>
<td>Updates attributes for a port, including
extra_dhcp_opts extension attributes.</td>
</tr>
</tbody>
</informaltable>
<para/>
<para>Normal response Code: 200 OK</para>
<para>Error response Code: 401 Unauthorized.</para>
<para>This operation allow for the updating of attributes for
the port specified in the request URI, its port
attributes, including the extra_dhcp_opts
attributes.</para>
<example>
<title>Update port with extra-dhcp-opt attributes: JSON
request</title>
<programlisting language="json"><?db-font-size 75%?><xi:include href="samples/dhcp/port-update-req-edo.json" parse="text"/></programlisting>
</example>
<example>
<title>Update port with extra-dhcp-opt attributes: JSON
response</title>
<programlisting language="json"><?db-font-size 75%?><xi:include href="samples/dhcp/port-update-res-edo.json" parse="text"/></programlisting>
</example>
</section>
</section>

View File

@ -1,137 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- 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>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="extraroute-ext">
<title>Extra routes</title>
<para>This extension adds extra routes to the
<literal>router</literal> resource.</para>
<para>You can specify a set of nexthop IPs and destination
CIDRs.</para>
<note>
<para>The nexthop IP must be a part of one of the subnets to
which the router interfaces are connected. You can
configure the <literal>routes</literal> attribute on only
update operations.</para>
</note>
<table rules="all">
<caption>Router attributes</caption>
<col width="20%"/>
<col width="8%"/>
<col width="10%"/>
<col width="7%"/>
<col width="15%"/>
<col width="15%"/>
<col width="25%"/>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Required</th>
<th>CRUD<footnote xml:id="crud_extraroute">
<itemizedlist>
<listitem>
<para><emphasis role="bold"
>C</emphasis>. Use the attribute in
create operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>R</emphasis>. This attribute is
returned in response to show and
list operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>U</emphasis>. You can update the
value of this attribute.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>D</emphasis>. You can delete the
value of this attribute.</para>
</listitem>
</itemizedlist>
</footnote></th>
<th>Default Value</th>
<th>Validation Constraints</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>routes</td>
<td>list of dict</td>
<td>No</td>
<td>U</td>
<td>None</td>
<td>List should be in this form.
[{'nexthop':IPAddress, 'destination':CIDR}]</td>
<td>Extra route configuration</td>
</tr>
</tbody>
</table>
<section xml:id="update_extra_route">
<title>Update extra route</title>
<para>
<informaltable rules="all" width="100%">
<col width="20%"/>
<col width="20%"/>
<col width="60%"/>
<thead>
<tr>
<td>Verb</td>
<td>URI</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>&PUT;</td>
<td>/routers/<parameter>router_id</parameter></td>
<td>Updates logical router with
<literal>routes</literal>
attribute.</td>
</tr>
</tbody>
</informaltable>
</para>
<para>Normal Response Code: <returnvalue>200</returnvalue>
</para>
<simpara>Error Response Codes: Unauthorized
(<errorcode>401</errorcode>), Bad Request
(<errorcode>400</errorcode>), Not Found
(<errorcode>404</errorcode>), Conflict
(<errorcode>409</errorcode>)</simpara>
<para>This operation configures extra routes on the router.
The nexthop IP must be a part of one of the subnets to
which the router interfaces are connected. Otherwise, the
server responds with <literal>400 Bad Request</literal>
error code. When a validation error is detected, such as a
format error of IP address or CIDR, the server responds
with <literal>400 Bad Request</literal>. When Networking
receives a request to delete the router interface for
subnets that are used by one or more routes, it responds
with <literal>409 Conflict</literal>.</para>
<example>
<title>Update routes: JSON request</title>
<programlisting language="json"><xi:include href="samples/extraroute/extraroute-put-req.json" parse="text"/></programlisting>
</example>
<example>
<title>Update routes: JSON response</title>
<programlisting language="json"><xi:include href="samples/extraroute/extraroute-put-res.json" parse="text"/></programlisting>
</example>
</section>
<?hard-pagebreak?>
</section>

File diff suppressed because it is too large Load Diff

View File

@ -1,262 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="router_ext" xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Layer-3 networking (<literal>router</literal>)</title>
<para>The Layer-3 networking extension enables OpenStack
Networking API users to route packets between subnets, forward
packets from internal networks to external ones, and access
instances from external networks through <emphasis
role="italic">floating IPs</emphasis>.</para>
<para>The OpenStack Networking layer-3 extension defines these
resources:</para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">router</emphasis>. A logical
entity that forwards packets across internal subnets
and NATs them on external networks through an
appropriate external gateway.</para>
<para>A router has an interface for each subnet with which
it is associated. By default, the IP address of such
interface is the subnet's gateway IP. Also, whenever a
router is associated with a subnet, a port for that
router interface is added to the subnet's
network.</para>
</listitem>
<listitem>
<para><emphasis role="bold">floatingip</emphasis>.
Represents an external IP address that is mapped to an
OpenStack Networking port and, optionally, a specific
IP address on a private OpenStack Networking network.
A floating IP enables access to an instance on a
private network from an external network. Floating IPs
can only be defined on networks where the <emphasis
role="italic">router:external</emphasis> attribute
(by the external network extension) is set to
<literal>True</literal>.</para>
</listitem>
</itemizedlist>
<table rules="all">
<caption>Router attributes</caption>
<col width="20%"/>
<col width="8%"/>
<col width="10%"/>
<col width="7%"/>
<col width="15%"/>
<col width="15%"/>
<col width="25%"/>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Required</th>
<th>CRUD<footnote xml:id="crud1">
<para>
<itemizedlist>
<listitem>
<para><emphasis role="bold"
>C</emphasis>. Use the attribute in
create operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>R</emphasis>. This attribute is
returned in response to show and
list operations.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>U</emphasis>. You can update the
value of this attribute.</para>
</listitem>
<listitem>
<para><emphasis role="bold"
>D</emphasis>. You can delete the
value of this attribute.</para>
</listitem>
</itemizedlist>
</para>
</footnote></th>
<th>Default value</th>
<th>Validation constraints</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>uuid-str</td>
<td>N/A</td>
<td>R</td>
<td>generated</td>
<td>N/A</td>
<td>Unique identifier for the router.</td>
</tr>
<tr>
<td>name</td>
<td>String</td>
<td>No</td>
<td>CRU</td>
<td>None</td>
<td>N/A</td>
<td>Human readable name for the router. Does not have
to be unique.</td>
</tr>
<tr>
<td>admin_state_up</td>
<td>Bool</td>
<td>No</td>
<td>CRU</td>
<td>true</td>
<td>{true | false }</td>
<td>Administrative state of the router.</td>
</tr>
<tr>
<td>status</td>
<td>String</td>
<td>N/A</td>
<td>R</td>
<td>N/A</td>
<td>N/A</td>
<td>Indicates whether or not a router is currently
operational.</td>
</tr>
<tr>
<td>tenant_id</td>
<td>uuid-str</td>
<td>No</td>
<td>CR</td>
<td>Derived from Authentication token</td>
<td>N/A</td>
<td>Owner of the router. Only admin users can specify
a tenant identifier other than its own.</td>
</tr>
<tr>
<td>external_gateway_info</td>
<td>dict</td>
<td>No</td>
<td>CRU</td>
<td>None</td>
<td>No constraint</td>
<td>Information on external gateway for the
router.</td>
</tr>
</tbody>
</table>
<table rules="all">
<caption>Floating IP attributes</caption>
<col width="20%"/>
<col width="8%"/>
<col width="10%"/>
<col width="7%"/>
<col width="15%"/>
<col width="15%"/>
<col width="25%"/>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Required</th>
<th>CRUD</th>
<th>Default value</th>
<th>Validation constraints</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>uuid-str</td>
<td>N/A</td>
<td>R</td>
<td>generated</td>
<td>N/A</td>
<td>Unique identifier for the floating IP
instance.</td>
</tr>
<tr>
<td>floating_network_id</td>
<td>uuid-str</td>
<td>Yes</td>
<td>CR</td>
<td>N/A</td>
<td>UUID Pattern</td>
<td>UUID of the external network where the floating IP
is to be created.</td>
</tr>
<tr>
<td>port_id</td>
<td>uuid-str</td>
<td>Yes</td>
<td>CRU</td>
<td>N/A</td>
<td>UUID Pattern</td>
<td>UUID of the port on an internal OpenStack
Networking network that is associated with the
floating IP.</td>
</tr>
<tr>
<td>fixed_ip_address</td>
<td>IP Address</td>
<td>No</td>
<td>CRU</td>
<td>None</td>
<td>IP address or null</td>
<td>Specific IP address on <literal>port_id</literal>
which should be associated with the floating
IP.</td>
</tr>
<tr>
<td>floating_ip_address</td>
<td>IP Address</td>
<td>N/A</td>
<td>R</td>
<td>Automatically allocated from pool</td>
<td>N/A</td>
<td>Address of the floating IP on the external
network.</td>
</tr>
<tr>
<td>tenant_id</td>
<td>uuid-str</td>
<td>No</td>
<td>CR</td>
<td>Derived from Authentication token</td>
<td>N/A</td>
<td>Owner of the floating IP. Only admin users can
specify a tenant identifier other than its
own.</td>
</tr>
</tbody>
</table>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-layer3-ext.wadl#Routers">
<wadl:method href="#createRouter"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-layer3-ext.wadl#router_id">
<wadl:method href="#showRouter"/>
<wadl:method href="#updateRouter"/>
<wadl:method href="#deleteRouter"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-layer3-ext.wadl#add_router_interface">
<wadl:method href="#addRouterInterface"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-layer3-ext.wadl#remove_router_interface">
<wadl:method href="#removeRouterInterface"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-layer3-ext.wadl#FloatingIps">
<wadl:method href="#createFloatingIp"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-layer3-ext.wadl#floatingip_id">
<wadl:method href="#showFloatingIp"/>
<wadl:method href="#updateFloatingIp"/>
<wadl:method href="#deleteFloatingIp"/>
</wadl:resource>
</wadl:resources>
</section>

View File

@ -1,275 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!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>'>
]>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0" status="final" xml:id="lbaas_ext">
<title>Load-Balancer-as-a-Service (LBaaS)</title>
<para>The LBaaS extension enables OpenStack tenants to load-balance their VM traffic.</para>
<para>The extension enables you to:</para>
<itemizedlist>
<listitem>
<para>Load-balance client traffic from one network to application services, such as VMs,
on the same or a different network.</para>
</listitem>
<listitem>
<para>Load-balance several protocols, such as TCP and HTTP.</para>
</listitem>
<listitem>
<para>Monitor the health of application services.</para>
</listitem>
<listitem>
<para>Support session persistence.</para>
</listitem>
</itemizedlist>
<section xml:id="lbaas_ext_concepts">
<title>Concepts</title>
<para>This extension introduces these concepts:</para>
<variablelist>
<varlistentry>
<term>Load balancers</term>
<listitem>
<para>The primary load-balancing configuration object. Specifies the virtual IP
address where client traffic is received.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Pools</term>
<listitem>
<para>A logical set of devices, such as web servers, that you group together to
receive and process traffic.</para>
<para>The load-balancing algorithm chooses which member of the pool handles new
requests or connections that are received on a listener. Each listener has
one default pool.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Listener</term>
<listitem>
<para>Represents a single listening port. Defines the protocol and can
optionally provide TLS termination.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Members</term>
<listitem>
<para>The application that runs on the back-end server.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Health monitors</term>
<listitem>
<para>Determines whether or not back-end members of the pool can process a
request. A pool can have one health monitor associated with it.</para>
<para>The LBaaS extension supports these types of health monitors:</para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">PING</emphasis>. Uses ICMP to ping the
members.</para>
</listitem>
<listitem>
<para><emphasis role="bold">TCP</emphasis>. Uses TCP to connect to the
members.</para>
</listitem>
<listitem>
<para><emphasis role="bold">HTTP</emphasis>. Sends an HTTP request to
the member.</para>
</listitem>
<listitem>
<para><emphasis role="bold">HTTPS</emphasis>. Sends a secure HTTP
request to the member.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Session persistence</term>
<listitem>
<para>Forces connections or requests in the same session to be processed by the
same member as long as it is active.</para>
<para>The LBaaS extension supports these types of persistence:</para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">SOURCE_IP</emphasis>. All connections that
originate from the same source IP address are handled by the same
member of the pool.</para>
</listitem>
<listitem>
<para><emphasis role="bold">HTTP_COOKIE</emphasis>. The load-balancing
function creates a cookie on the first request from a client.
Subsequent requests that contain the same cookie value are handled
by the same member of the pool.</para>
</listitem>
<listitem>
<para><emphasis role="bold">APP_COOKIE</emphasis>. The load-balancing
function relies on a cookie established by the back-end application.
All requests with the same cookie value are handled by the same
member of the pool.</para>
</listitem>
</itemizedlist>
<para>Absence of <code>session_persistence</code> attribute means no session
persistence mechanism is used.</para>
<para>When no session persistence is used, the <code>session_persistence</code>
attribute does not appear in the API response and instead returns
null.</para>
<para>You can clear session persistence by sending <code>null</code> in
<code>session_persistence</code> attribute in a listener update
request.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="lbaas_ext_flow">
<title>Use the LBaaS extension to configure load balancing</title>
<para>You must complete these high-level tasks:</para>
<procedure>
<title>To use the LBaaS extension to configure load balancing</title>
<step>
<para>Create a pool, which is initially empty.</para>
</step>
<step>
<para>Create one or more members in the pool.</para>
</step>
<step>
<para>Create a health monitor.</para>
</step>
<step>
<para>Associate the health monitor with the pool.</para>
</step>
<step>
<para>Create a load balancer object.</para>
</step>
<step>
<para>Create a listener.</para>
</step>
<step>
<para>Associate the listener with the load balancer.</para>
</step>
<step>
<para>Associate the pool with the listener.</para>
</step>
<step>
<para>Optional. If you use HTTPS termination, complete these tasks:</para>
<substeps>
<step>
<para>Add the TLS certificate, key, and optional chain to Barbican.</para>
</step>
<step>
<para>Associate the Barbican container with the listener.</para>
</step>
</substeps>
</step>
<step>
<para>Optional. If you use layer-7 HTTP switching, complete these tasks:</para>
<substeps>
<step>
<para>Create any additional pools, members, and health monitors that are
used as non-default pools.</para>
</step>
<step>
<para>Create a layer-7 policy that associates the listener with the
non-default pool.</para>
</step>
<step>
<para>Create rules for the layer-7 policy that describe the logic that
selects the non-default pool for servicing some requests.</para>
</step>
</substeps>
</step>
</procedure>
</section>
<section xml:id="lbaas_ext_ops_loadbalancer">
<title>Load balancers</title>
<para>Use the LBaas extension to create and manage load balancers.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#loadbalancers">
<wadl:method href="#createLoadBalancer"/>
<wadl:method href="#listLoadBalancers"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#lb_id">
<wadl:method href="#showLoadBalancer"/>
<wadl:method href="#updateLoadBalancer"/>
<wadl:method href="#deleteLoadBalancer"/>
</wadl:resource>
</wadl:resources>
</section>
<!-- end of loadbalancer section-->
<section xml:id="lbaas_ext_ops_listener">
<title>Listeners</title>
<para>Use the LBaas extension to create and manage load-balancer listeners.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#Listeners">
<wadl:method href="#createListener"/>
<wadl:method href="#listListeners"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#listener_id">
<wadl:method href="#showListener"/>
<wadl:method href="#updateListener"/>
<wadl:method href="#deleteListener"/>
</wadl:resource>
</wadl:resources>
</section>
<!-- end of listner section-->
<section xml:id="lbaas_ext_ops_pool">
<title>Pools</title>
<para>Use the LBaas extension to create and manage load-balancer pools.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#lb-pools">
<wadl:method href="#createPool"/>
<wadl:method href="#listPools"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#pool_id">
<wadl:method href="#showPool"/>
<wadl:method href="#updatePool"/>
<wadl:method href="#deletePool"/>
</wadl:resource>
</wadl:resources>
</section>
<!-- end of pools section-->
<section xml:id="lbaas_ext_ops_member">
<title>Members</title>
<para>Use the LBaas extension to create and manage load-balancer pool members.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#lb-members">
<wadl:method href="#createMember"/>
<wadl:method href="#listMembers"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#member_id">
<wadl:method href="#showMember"/>
<wadl:method href="#updateMember"/>
<wadl:method href="#deleteMember"/>
</wadl:resource>
</wadl:resources>
</section>
<!-- end of members section-->
<section xml:id="lbaas_ext_ops_health_monitor">
<title>Health monitors</title>
<para>Use the LBaas extension to create and manage load-balancer health monitors.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#lb-healthmonitors">
<wadl:method href="#createHealthMonitor"/>
<wadl:method href="#listHealthMonitors"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-lbaas-ext.wadl#health_monitor_id_hm">
<wadl:method href="#showHealthMonitor"/>
<wadl:method href="#updateHealthMonitor"/>
<wadl:method href="#deleteHealthMonitor"/>
</wadl:resource>
</wadl:resources>
</section>
</section>

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="metering-ext"
xmlns:wadl="http://wadl.dev.java.net/2009/02">
<title>Metering labels and rules</title>
<para>Create, modify, and delete OpenStack Layer3 metering
labels and rules.</para>
<wadl:resources>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/metering-labels.wadl#metering_labels">
<wadl:method href="#listMeteringLabels"/>
<wadl:method href="#createMeteringLabel"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/metering-labels.wadl#get_metering_label">
<wadl:method href="#getMeteringLabel"/>
<wadl:method href="#deleteMeteringLabel"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/metering-labels.wadl#metering_label_rules">
<wadl:method href="#listMeteringLabelRules"/>
<wadl:method href="#createMeteringLabelRule"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/metering-labels.wadl#metering-label-rule-id">
<wadl:method href="#getMeteringLabelRule"/>
<wadl:method href="#deleteMeteringLabelRule"/>
</wadl:resource>
</wadl:resources>
</section>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:id="provider_multi_ext_ops">
<title>Multiple provider networks</title>
<para>Set and retrieve the multiple provider networks extension
attributes for network objects.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks-multi-provider-ext.wadl#Networks">
<wadl:method href="#listMultiNetworks"/>
<wadl:method href="#createMultiNetwork"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks-multi-provider-ext.wadl#network_id">
<wadl:method href="#showMultiNetwork"/>
</wadl:resource>
</wadl:resources>
</section>

View File

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter[
<!-- Some useful entities borrowed from HTML -->
<!-- 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>'>
<!ENTITY APIv2 'Networking API v2.0'>
]>
<section xml:id="provider_ext" xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Provider networks (<literal>provider</literal>)</title>
<para>The <parameter>provider</parameter> extended attributes for
networks enable administrative users to specify how network
objects map to the underlying networking infrastructure. These
extended attributes also appear when administrative users
query networks.</para>
<para>To this aim, it extends the <emphasis role="bold"
>network</emphasis> resource by defining a set of
attributes prefixed with <emphasis role="italic"
>provider</emphasis>.</para>
<para>These attributes are added to the <emphasis role="bold"
>network</emphasis> resource:</para>
<itemizedlist>
<listitem>
<para><emphasis role="italic">
provider:network_type</emphasis> - Specifies the
nature of the physical network mapped to this network
resource. Examples are <literal>flat</literal>,
<literal>vlan</literal>, or
<literal>gre</literal>.</para>
</listitem>
<listitem>
<para><emphasis role="italic">
provider:physical_network</emphasis> - Identifies
the physical network on top of which this network
object is being implemented. The OpenStack Networking
API does not expose any facility for retrieving the
list of available physical networks. As an example, in
the Open vSwitch plug-in this is a symbolic name which
is then mapped to specific bridges on each compute
host through the Open vSwitch plug-in configuration
file.</para>
</listitem>
<listitem>
<para><emphasis role="italic">
provider:segmentation_id</emphasis> - Identifies
an isolated segment on the physical network; the
nature of the segment depends on the segmentation
model defined by <literal>network_type</literal>. For
instance, if <literal>network_type</literal> is
<literal>vlan</literal>, then this is a
<literal>vlan</literal> identifier; otherwise, if
<literal>network_type</literal> is
<literal>gre</literal>, then this will be a
<literal>gre</literal> key.</para>
</listitem>
</itemizedlist>
<para>The actual semantics of these attributes depend on the
technology back end of the particular plug-in. See the plug-in
documentation and the <citetitle>OpenStack Cloud Administrator
Guide</citetitle> to understand which values should be
specific for each of these attributes when OpenStack
Networking is deployed with a particular plug-in. The examples
shown in this chapter refer to the Open vSwitch
plug-in.</para>
<para>The default policy settings enable only users with
administrative rights to specify these parameters in requests
and to see their values in responses. By default, the provider
network extension attributes are completely hidden from
regular tenants. As a rule of thumb, if these attributes are
not visible in a <emphasis role="italic">GET
/networks/&lt;network-id></emphasis> operation, this
implies the user submitting the request is not authorized to
view or manipulate provider network attributes.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks-provider-ext.wadl#Networks">
<wadl:method href="#listNetworks"/>
<wadl:method href="#createNetwork"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks-provider-ext.wadl#network_id">
<wadl:method href="#showNetwork"/>
<wadl:method href="#updateNetwork"/>
<wadl:method href="#deleteNetwork"/>
</wadl:resource>
</wadl:resources>
</section>

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xml:id="quotas_ext">
<title>Quotas</title>
<para>Use the <filename>neutron.conf</filename> configuration file
to define and apply default quota values to all tenants. This
extension enables an administrative user to define quotas
values on a per-tenant basis. For example, an administrative
user can permit tenant A to create at most
<replaceable>n</replaceable> networks and tenant B to
create at most <replaceable>n</replaceable> networks.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-quotas.wadl#Quotas">
<wadl:method href="#listQuotas"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-quotas.wadl#Quotas">
<wadl:method href="#showQuota"/>
<wadl:method href="#updateQuota"/>
<wadl:method href="#resetQuota"/>
</wadl:resource>
</wadl:resources>
</section>

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
status="final" xmlns:wadl="http://wadl.dev.java.net/2009/02"
xml:id="security_groups">
<title>Security groups and rules (security-groups)</title>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="https://raw.github.com/openstack/api-site/master/api-ref/src/wadls/netconn-api/src/security-groups.wadl#security_groups">
<wadl:method href="#listSecGroups"/>
<wadl:method href="#createSecGroup"/>
</wadl:resource>
<wadl:resource
href="https://raw.github.com/openstack/api-site/master/api-ref/src/wadls/netconn-api/src/security-groups.wadl#security_group_id">
<wadl:method href="#getSecGroup"/>
<wadl:method href="#deleteSecGroup"/>
</wadl:resource>
<wadl:resource
href="https://raw.github.com/openstack/api-site/master/api-ref/src/wadls/netconn-api/src/security-groups.wadl#security_groups_rules">
<wadl:method href="#listSecGroupRules"/>
<wadl:method href="#createSecGroupRule"/>
</wadl:resource>
<wadl:resource
href="https://raw.github.com/openstack/api-site/master/api-ref/src/wadls/netconn-api/src/security-groups.wadl#rules-security-groups-id">
<wadl:method href="#getSecGroupRule"/>
<wadl:method href="#deleteSecGroupRule"/>
</wadl:resource>
</wadl:resources>
</section>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="retrieve_extensions">
<title>Get extension information</title>
<para>List available extensions and show details for a specified
extension.</para>
<wadl:resources xmlns:wadl="http://wadl.dev.java.net/2009/02">
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks.wadl#extensions">
<wadl:method href="#listExtensions"/>
</wadl:resource>
<wadl:resource
href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/netconn-api/src/os-networks.wadl#extension">
<wadl:method href="#getExtension"/>
</wadl:resource>
</wadl:resources>
</section>

File diff suppressed because it is too large Load Diff