diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..56747b2 --- /dev/null +++ b/pom.xml @@ -0,0 +1,48 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.openstack.docs</groupId> + <artifactId>parent-pom</artifactId> + <version>1.0.0-SNAPSHOT</version> + <packaging>pom</packaging> + + <modules> + <module>v1</module> + <module>v2</module> + </modules> + <profiles> + <profile> + <id>Rackspace Research Repositories</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <repositories> + <repository> + <id>rackspace-research</id> + <name>Rackspace Research Repository</name> + <url>http://maven.research.rackspacecloud.com/content/groups/public/</url> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <id>rackspace-research</id> + <name>Rackspace Research Repository</name> + <url>http://maven.research.rackspacecloud.com/content/groups/public/</url> + </pluginRepository> + </pluginRepositories> + </profile> + </profiles> + <build> + <plugins> + <plugin> + <groupId>com.rackspace.cloud.api</groupId> + <artifactId>clouddocs-maven-plugin</artifactId> + <version>1.15.0</version> + </plugin> + </plugins> + </build> +</project> + + diff --git a/v1/pom.xml b/v1/pom.xml index 2623794..e0bc4d2 100644 --- a/v1/pom.xml +++ b/v1/pom.xml @@ -1,31 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - + <parent> + <groupId>org.openstack.docs</groupId> + <artifactId>parent-pom</artifactId> + <version>1.0.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> <modelVersion>4.0.0</modelVersion> - - <groupId>org.openstack.docs</groupId> - <artifactId>openstack-block-storage-api-guide</artifactId> - <version>1.0.0-SNAPSHOT</version> + <artifactId>openstack-v1</artifactId> <packaging>jar</packaging> - <name>OpenStack Block Storage Service Developer Guide v1.0</name> + <name>OpenStack Block Storage API v1 Reference</name> + <properties> + <!-- This is set by Jenkins according to the branch. --> + <release.path.name>local</release.path.name> + <comments.enabled>1</comments.enabled> + </properties> <!-- ################################################ --> <!-- USE "mvn clean generate-sources" to run this POM --> <!-- ################################################ --> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - <build> <sourceDirectory>src</sourceDirectory> <plugins> - <plugin> <groupId>com.rackspace.cloud.api</groupId> <artifactId>clouddocs-maven-plugin</artifactId> - <version>1.15.0</version> + <!-- <version>1.15.0</version>--> + <!-- version is in ../pom.xml --> <executions> <execution> <id>generate-webhelp</id> @@ -43,24 +44,23 @@ appendix toc,title article/appendix nop article toc,title - book title,figure,table,example,equation - chapter toc,title + book toc,title,figure,table,example,equation + chapter toc + section toc part toc,title - preface toc,title + preface toc qandadiv toc qandaset toc reference toc,title set toc,title </generateToc> - <!-- The following elements sets the autonumbering of sections in output for chapter numbers but no numbered sections--> - <!--<sectionAutolabel>0</sectionAutolabel> - <sectionLabelIncludesComponentLabel>0</sectionLabelIncludesComponentLabel>--> - + <chapterAutolabel>1</chapterAutolabel> + <sectionAutolabel>0</sectionAutolabel> + <tocSectionDepth>1</tocSectionDepth> <webhelpDirname>1.0</webhelpDirname> <targetDirectory>${basedir}/target/docbkx/webhelp/api/openstack-block-storage</targetDirectory> <includeDateInPdfFilename>0</includeDateInPdfFilename> <pdfFilenameBase>openstack-blockstorage-devguide-1.0</pdfFilenameBase> - </configuration> </execution> <execution> @@ -81,7 +81,6 @@ </postProcess> </configuration> </execution> - </executions> <configuration> <!-- These parameters apply to pdf and webhelp --> @@ -94,29 +93,6 @@ <branding>openstack</branding> </configuration> </plugin> - </plugins> </build> - <profiles> - <profile> - <id>Rackspace Research Repositories</id> - <activation> - <activeByDefault>true</activeByDefault> - </activation> - <repositories> - <repository> - <id>rackspace-research</id> - <name>Rackspace Research Repository</name> - <url>http://maven.research.rackspacecloud.com/content/groups/public/</url> - </repository> - </repositories> - <pluginRepositories> - <pluginRepository> - <id>rackspace-research</id> - <name>Rackspace Research Repository</name> - <url>http://maven.research.rackspacecloud.com/content/groups/public/</url> - </pluginRepository> - </pluginRepositories> - </profile> - </profiles> -</project> +</project> \ No newline at end of file diff --git a/v1/src/openstack-blockstorage-devguide.xml b/v1/src/openstack-blockstorage-devguide.xml index c2f5577..b5e7cbe 100644 --- a/v1/src/openstack-blockstorage-devguide.xml +++ b/v1/src/openstack-blockstorage-devguide.xml @@ -1,31 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book [ -<!-- Some useful entities borrowed from HTML --> <!ENTITY ndash "–"> <!ENTITY mdash "—"> <!ENTITY hellip "…"> - <!-- 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 PRODNAME "OpenStack Block Storage Service"> -<!ENTITY APIv1 'Cinder API v1.0'> +<!ENTITY PRODNAME "OpenStack Block Storage"> +<!ENTITY API 'Block Storage API v1'> +<!ENTITY VERSION 'v2'> <!ENTITY PRODABBV ""> - -<!-- changing authentication endpoints; define entities for US & UK rather than maintaining in text --> -<!ENTITY ENDPOINT-US "https://auth.api.openstackcloud.com/v2.0/"> -<!ENTITY ENDPOINT-UK "https://lon.identity.api.openstackcloud.com/v1.1/"> - <!ENTITY CHECK '<inlinemediaobject xmlns="http://docbook.org/ns/docbook"> <imageobject> <imagedata fileref="img/Check_mark_23x20_02.svg" format="SVG" scale="60"/> </imageobject> </inlinemediaobject>'> - - <!ENTITY ARROW '<inlinemediaobject xmlns="http://docbook.org/ns/docbook"> <imageobject> <imagedata fileref="img/Arrow_east.svg" @@ -33,31 +25,48 @@ format="SVG" scale="60"/> </imageobject> </inlinemediaobject>'> ]> -<book 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" xml:id="openstack-blockstorage-devguide"> - <?rax title.font.size="35px" subtitle.font.size="20px"?> +<book 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" + xml:id="openstack-blockstorage-devguide"> + <title>OpenStack Block Storage API v1 Reference</title> + <?rax title.font.size="28px" subtitle.font.size="28px"?> + <titleabbrev>Block Storage API Reference</titleabbrev> <info> - <title>&PRODNAME; Developer Guide</title> - <titleabbrev>&PRODNAME; Developer Guide</titleabbrev> + <author> + <personname> + <firstname/> + <surname/> + </personname> + <affiliation> + <orgname>OpenStack Foundation</orgname> + </affiliation> + </author> <copyright> - <year>2012</year> + <year>2010-2014</year> + <holder>OpenStack Foundation</holder> </copyright> - <releaseinfo>API v1.0</releaseinfo> - <productname>&PRODNAME;</productname> - <pubdate>2013-02-24</pubdate> + <releaseinfo>API v1 and extensions</releaseinfo> + <productname>OpenStack Block Storage</productname> + <pubdate/> <legalnotice role="apache2"> - <annotation 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"> - <remark>Copyright details are filled in by the template.</remark> + <annotation> + <remark>Copyright details are filled in by the + template.</remark> </annotation> </legalnotice> <abstract> - <para>This document is intended for software developers interested in developing applications - using the &PRODNAME; Application Programming Interface (<abbrev>API</abbrev>).</para> + <para>This document is intended for software developers + interested in developing applications using the &PRODNAME; + Application Programming Interface + (<abbrev>API</abbrev>).</para> </abstract> - <revhistory xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" + <revhistory 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"> <revision> <date>2013-02-18</date> @@ -93,15 +102,18 @@ format="SVG" scale="60"/> </info> <preface xml:id="Preface"> <title>Preface</title> - <para>The Cinder project provides volume management with the OpenStack compute service.</para> - <para>This document describes the features available with the &APIv1;.</para> + <para>OpenStack Block Storage provides volume management with + OpenStack Compute.</para> + <para>This document describes the features available with the + &API;.</para> <para>We welcome feedback, comments and bug reports at <link - xlink:href="http://bugs.launchpad.net/cinder">bugs.launchpad.net/Cinder</link>.</para> + xlink:href="http://bugs.launchpad.net/cinder" + >bugs.launchpad.net/Cinder</link>.</para> <section xml:id="Intended_Audience-d1e122"> - <title>Intended Audience</title> - <para>This Guide is intended to assist software developers who want to develop applications - using the &APIv1;. It assumes the reader has a general understanding of storage and is - familiar with:</para> + <title>Intended audience</title> + <para>This guide is for software developers who develop + applications by using the &API;. It assumes the reader has a + general understanding of storage and is familiar with:</para> <itemizedlist spacing="compact"> <listitem> <para>ReSTful web services</para> @@ -114,32 +126,37 @@ format="SVG" scale="60"/> </listitem> </itemizedlist> </section> - <?hard-pagebreak?> - <section xml:id="Additional_Resources-d1e532"> - <title>Additional Resources</title> - <para>You can download the most current versions of the API-related documents from <link - xlink:href="http://docs.openstack.org/api/">docs.openstack.org/api/</link>.</para> - <para>This API uses standard HTTP 1.1 response codes as documented at: <link + <title>Resources</title> + <para>You can download the most current versions of the + API-related documents from <link + xlink:href="http://docs.openstack.org/api/" + >docs.openstack.org/api/</link>.</para> + <para>This API uses standard HTTP 1.1 response codes as + documented at: <link xlink:href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" >www.w3.org/Protocols/rfc2616/rfc2616-sec10.html</link>.</para> </section> </preface> <preface xml:id="Overview" 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:m="http://www.w3.org/1998/Math/MathML" + xmlns:html="http://www.w3.org/1999/xhtml"> <title>Overview</title> - <para>&PRODNAME; is a block-level storage solution that allows customers to mount drives or - volumes to their OpenStack Compute servers<trademark/>. The two primary use cases are (1) to - allow customers to scale their storage independently from their compute resources, and (2) to - allow customers to utilize high performance storage to serve database or I/O-intensive + <para>&PRODNAME; is a block-level storage solution that allows + customers to mount drives or volumes to their OpenStack Compute + servers<trademark/>. The two primary use cases are (1) to allow + customers to scale their storage independently from their + compute resources, and (2) to allow customers to utilize high + performance storage to serve database or I/O-intensive applications.</para> - <para>Interactions with Block Storage occur programmatically via the Block Storage API as - described in this Developer Guide.</para> + <para>Interactions with Block Storage occur programmatically via + the Block Storage API as described in this Developer + Guide.</para> <para>Highlights of &PRODNAME; include:<itemizedlist> <listitem> - <para>Mount a drive to a Compute server to scale storage without paying for more compute - capability.</para> + <para>Mount a drive to a Compute server to scale storage + without paying for more compute capability.</para> </listitem> </itemizedlist> </para> @@ -147,15 +164,16 @@ format="SVG" scale="60"/> <title>Notes</title> <itemizedlist> <listitem> - <para>&PRODNAME; is an add-on feature to OpenStack Nova Compute in Folsom versions and - earlier.</para> + <para>&PRODNAME; is an add-on feature to OpenStack Nova + Compute in Folsom versions and earlier.</para> </listitem> <listitem> - <para>Block Storage is multi-tenant rather than dedicated.</para> + <para>Block Storage is multi-tenant rather than + dedicated.</para> </listitem> <listitem> - <para>Block Storage allows you to create snapshots that you can save, list, and - restore.</para> + <para>Block Storage allows you to create snapshots that you + can save, list, and restore.</para> </listitem> </itemizedlist> </note> @@ -163,114 +181,123 @@ format="SVG" scale="60"/> <section xml:id="Concepts"> <title>Glossary</title> <?dbhtml stop-chunking?> - <para>To use the Block Storage API effectively, you should understand several key concepts:</para> + <para>To use the &PRODNAME; API effectively, you should + understand several key concepts:</para> <section xml:id="Volume"> <title>Volume</title> - <para>A volume is a detachable block storage device. You can think of it as a USB hard - drive. It can only be attached to one instance at a time.</para> + <para>A volume is a detachable block storage device. You can + think of it as a USB hard drive. It can only be attached to + one instance at a time.</para> </section> <section xml:id="Snapshot"> <title>Snapshot</title> - <para>A snapshot is a point in time copy of the data contained in a volume.</para> + <para>A snapshot is a point in time copy of the data contained + in a volume.</para> </section> <section xml:id="Volumetype"> - <title>Volume Type</title> - <para>The volume type is the type of a block storage volume. You may define whatever types - work best for you, such as SATA, SCSCI, SSD, etc. These can be customized or defined by + <title>Volume type</title> + <para>The volume type is the type of a block storage volume. + You may define whatever types work best for you, such as + SATA, SCSCI, SSD, etc. These can be customized or defined by the OpenStack admin.</para> - <para>You may also define extra_specs associated with your volume types. For instance, you - could have a VolumeType=SATA, with extra_specs (RPM=10000, RAID-Level=5) . Extra_specs are - defined and customized by the admin.</para> + <para>You may also define extra_specs associated with your + volume types. For instance, you could have a + VolumeType=SATA, with extra_specs (RPM=10000, RAID-Level=5) + . Extra_specs are defined and customized by the + admin.</para> </section> <section xml:id="Instance"> <title>Instance</title> - <para>An instance is a virtual machine that runs inside the cloud.</para> + <para>An instance is a virtual machine that runs inside the + cloud.</para> </section> </section> - <?hard-pagebreak?> - <section xml:id="High_Level_Task_Flow"> - <title>High-Level Task Flow</title> + <title>High-level task flow</title> <para>The high-level task flow for Cinder is as follows:</para> <para> <orderedlist> <listitem> <para>The tenant creates a volume.</para> - <para>For example, the tenant creates a 30G volume called vol1.</para> + <para>For example, the tenant creates a 30G volume called + vol1.</para> <programlisting language="bash" role="gutter: false"><prompt>$</prompt>cinder create --display-name vol1 30</programlisting> </listitem> <listitem> - <para>This gives the tenant a volume id 521752a6-acf6-4b2d-bc7a-119f9148cd8c. The tenant + <para>This gives the tenant a volume id + 521752a6-acf6-4b2d-bc7a-119f9148cd8c. The tenant attaches that volume to a virtual machine (VM) 616fb98f-46ca-475e-917e-2563e5a8cd19:</para> - <para>For example - A:<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova volume-attach 616fb98f-46ca-475e-917e-2563e5a8cd19 521752a6-acf6-4b2d-bc7a-119f9148cd8c /dev/vdb</programlisting> - </para> + <para>For example A:</para> + <programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova volume-attach 616fb98f-46ca-475e-917e-2563e5a8cd19 521752a6-acf6-4b2d-bc7a-119f9148cd8c /dev/vdb</programlisting> </listitem> </orderedlist> </para> </section> </preface> - <chapter xml:id="General_API_Information" 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"> - <title>General API Information</title> - <!-- <para>The Block Storage API is implemented using a ReSTful - web service interface. Like other products in the - Cloud suite, Block Storage shares a common token-based - authentication system that allows seamless access between - products and services.</para> - <note> - <para>All requests to authenticate against and operate the - service are performed using SSL over HTTP (HTTPS) on TCP port - 443.</para> - </note> - --> + <chapter xml:id="General_API_Information" + 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"> + <title>General API information</title> <section xml:id="Authentication-d1e647"> <title>Authentication</title> - <para>You can use <link xlink:href="http://curl.haxx.se/">cURL</link> to try the - authentication process in two steps: get a token; send the token to a service. <orderedlist> - <listitem> - <para>Get an authentication token by providing your username and either your API key or - your password. Here are examples of both approaches:</para> - <para><emphasis>You can request a token by providing your username and your - password.</emphasis></para> - <para> - <literallayout class="monospaced">curl -X POST https://auth.api.openstackcloud.com/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "joecool", "password":"coolword"}, "tenantId":"5"}}' -H 'Content-type: application/json'</literallayout> - </para> - <para>Successful authentication returns a token which you can use as evidence that your - identity has already been authenticated. To use the token, pass it to other services - as an <code>X-Auth-Token</code> header.</para> - <para>Authentication also returns a service catalog, listing the endpoints you can use - for Cloud services.</para> - </listitem> - <listitem> - <para>Use the authentication token to send a GET to a service you would like to use. - </para> - </listitem> - </orderedlist> - </para> - <para>Authentication tokens are typically valid for 24 hours. Applications should be designed - to re-authenticate after receiving a 401 (Unauthorized) response from a service endpoint.</para> + <para>You can use <link xlink:href="http://curl.haxx.se/" + >cURL</link> to try the authentication process in two steps: + get a token; send the token to a service.</para> + <orderedlist> + <listitem> + <para>Get an authentication token by providing your username + and either your API key or your password. Here are + examples of both approaches:</para> + <para><emphasis>You can request a token by providing your + username and your password.</emphasis></para> + <para> + <literallayout class="monospaced">curl -X POST https://auth.api.openstackcloud.com/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "joecool", "password":"coolword"}, "tenantId":"5"}}' -H 'Content-type: application/json'</literallayout> + </para> + <para>Successful authentication returns a token which you + can use as evidence that your identity has already been + authenticated. To use the token, pass it to other services + as an <code>X-Auth-Token</code> header.</para> + <para>Authentication also returns a service catalog, listing + the endpoints you can use for Cloud services.</para> + </listitem> + <listitem> + <para>Use the authentication token to send a GET to a + service you would like to use.</para> + </listitem> + </orderedlist> + <para>Authentication tokens are typically valid for 24 hours. + Applications should be designed to re-authenticate after + receiving a 401 (Unauthorized) response from a service + endpoint.</para> <important> - <para>If you are programmatically parsing an authentication response, please be aware that - service names are stable for the life of the particular service and can be used as keys. - You should also be aware that a user's service catalog can include multiple uniquely-named - services which perform similar functions.</para> + <para>If you are programmatically parsing an authentication + response, please be aware that service names are stable for + the life of the particular service and can be used as keys. + You should also be aware that a user's service catalog can + include multiple uniquely-named services which perform + similar functions.</para> </important> </section> <section xml:id="Request_Response_Types-d1e903"> - <title>Request/Response Types</title> - <para>The Block Storage API supports both the JSON and XML data serialization formats. The - request format is specified using the <code>Content-Type</code> header and is required for - calls that have a request body. The response format can be specified in requests either by - using the <code>Accept</code> header or by adding an <code>.xml</code> or <code>.json</code> - extension to the request URI. Note that it is possible for a response to be serialized using - a format different from the request. If no response format is specified, JSON is the - default. If conflicting formats are specified using both an <code>Accept</code> header and a - query extension, the query extension takes precedence.</para> - <para security="writeronly">Some operations support an Atom representation that can be used to - efficiently determine when the state of services has changed.</para> + <title>Request and response types</title> + <para>The Block Storage API supports both the JSON and XML data + serialization formats. The request format is specified using + the <code>Content-Type</code> header and is required for calls + that have a request body. The response format can be specified + in requests either by using the <code>Accept</code> header or + by adding an <code>.xml</code> or <code>.json</code> extension + to the request URI. Note that it is possible for a response to + be serialized using a format different from the request. If no + response format is specified, JSON is the default. If + conflicting formats are specified using both an + <code>Accept</code> header and a query extension, the query + extension takes precedence.</para> + <para security="writeronly">Some operations support an Atom + representation that can be used to efficiently determine when + the state of services has changed.</para> <table rules="all"> <caption>Response Formats</caption> <?dbfo keep-together="always"?> @@ -297,11 +324,13 @@ format="SVG" scale="60"/> </tr> </tbody> </table> - <para>In the request example below, notice that <parameter>Content-Type</parameter> is set to - <parameter>application/json</parameter>, but <parameter>application/xml</parameter> is - requested via the <parameter>Accept</parameter> header:</para> + <para>In the request example below, notice that + <parameter>Content-Type</parameter> is set to + <parameter>application/json</parameter>, but + <parameter>application/xml</parameter> is requested via the + <parameter>Accept</parameter> header:</para> <example> - <title>Request with Headers (Getting Volume Types)</title> + <title>Get volume types: Request with headers</title> <literallayout class="monospaced"> GET /v1/441446/types HTTP/1.1 Host: dfw.blockstorage.api.openstackcloud.com @@ -309,9 +338,10 @@ format="SVG" scale="60"/> Accept: application/xml </literallayout> </example> - <para><?rax-fo keep-with-next?>Therefore an XML response format is returned:</para> + <para><?rax-fo keep-with-next?>Therefore an XML response format + is returned:</para> <example> - <title>Response with Headers</title> + <title>Get volume types: Response with headers</title> <literallayout class="monospaced"> HTTP/1.1 200 OK Date: Fri, 20 Jul 2012 20:32:13 GMT @@ -333,21 +363,26 @@ format="SVG" scale="60"/> </section> <section xml:id="Limits-d1e1208"> <title>Limits</title> - <para>All accounts, by default, have a preconfigured set of thresholds (or limits) to manage - capacity and prevent abuse of the system. The system recognizes two kinds of limits: - <firstterm>rate limits</firstterm> and <firstterm>absolute limits</firstterm>. Rate limits - are thresholds that are reset after a certain amount of time passes. Absolute limits are - fixed.</para> + <para>All accounts, by default, have a preconfigured set of + thresholds (or limits) to manage capacity and prevent abuse of + the system. The system recognizes two kinds of limits: + <firstterm>rate limits</firstterm> and <firstterm>absolute + limits</firstterm>. Rate limits are thresholds that are + reset after a certain amount of time passes. Absolute limits + are fixed.</para> <section xml:id="Rate_Limits-d1e1222" security="writeronly"> - <title>Rate Limits</title> - <para>Rate limits are specified in terms of both a human-readable wild-card URI and a - machine-processable regular expression. The regular expression boundary matcher '^' takes - effect after the root URI path. For example, the regular expression ^/v1.0/instances would - match the bolded portion of the following URI: - https://dfw.blockstorage.api.openstackcloud.com<emphasis role="bold" - >/v1.0/instances</emphasis>.</para> - <para>The following table specifies the default rate limits for all API operations for all - &GET;, &POST;, &PUT;, and &DELETE; calls for volumes:</para> + <title>Rate limits</title> + <para>Rate limits are specified in terms of both a + human-readable wild-card URI and a machine-processable + regular expression. The regular expression boundary matcher + '^' takes effect after the root URI path. For example, the + regular expression ^/v1.0/instances would match the bolded + portion of the following URI: + https://dfw.blockstorage.api.openstackcloud.com<emphasis + role="bold">/v1.0/instances</emphasis>.</para> + <para>The following table specifies the default rate limits + for all API operations for all &GET;, &POST;, &PUT;, and + &DELETE; calls for volumes:</para> <table rules="all"> <caption>Default Rate Limits</caption> <thead> @@ -391,16 +426,21 @@ format="SVG" scale="60"/> </tr> </tbody> </table> - <para>Rate limits are applied in order relative to the verb, going from least to most - specific. For example, although the threshold for &POST; to /v1.0/* is 10 per minute, one - cannot &POST; to /v1.0/* more than 50 times within a single day.</para> - <para>If you exceed the thresholds established for your account, a <errorcode>413 (Rate - Control)</errorcode> HTTP response will be returned with a <code>Retry-After</code> - header to notify the client when it can attempt to try again.</para> + <para>Rate limits are applied in order relative to the verb, + going from least to most specific. For example, although the + threshold for &POST; to /v1.0/* is 10 per minute, one cannot + &POST; to /v1.0/* more than 50 times within a single + day.</para> + <para>If you exceed the thresholds established for your + account, a <errorcode>413 (Rate Control)</errorcode> HTTP + response will be returned with a <code>Retry-After</code> + header to notify the client when it can attempt to try + again.</para> </section> <section xml:id="Absolute_Limits-d1e1397"> - <title>Absolute Limits</title> - <para>Refer to the following table for the absolute limits that are set.</para> + <title>Absolute limits</title> + <para>Refer to the following table for the absolute limits + that are set.</para> <table rules="all"> <caption>Absolute Limits</caption> <col width="120pt"/> @@ -416,7 +456,8 @@ format="SVG" scale="60"/> <tbody> <tr> <td colspan="1">Block Storage</td> - <td colspan="1">Maximum amount of block storage (in gigabytes)</td> + <td colspan="1">Maximum amount of block storage (in + gigabytes)</td> <td colspan="1">1 TB</td> </tr> </tbody> @@ -424,14 +465,17 @@ format="SVG" scale="60"/> </section> </section> <section xml:id="datetimeformat"> - <title>Date/Time Format</title> - <para>The Block Storage Service uses an ISO-8601 compliant date format for the display and - consumption of date/time values.</para> + <title>Date and time format</title> + <para>The Block Storage Service uses an ISO-8601 compliant date + format for the display and consumption of date/time + values.</para> <example> - <title>DB Service Date/Time Format</title> + <title>DB service date and time format</title> <programlisting>yyyy-MM-dd'T'HH:mm:ss.SSSZ</programlisting> - <para>See the table below for a description of the date/time format codes.</para> - <para>May 19th, 2011 at 8:07:08 AM, GMT-5 would have the following format:</para> + <para>See the table below for a description of the date/time + format codes.</para> + <para>May 19th, 2011 at 8:07:08 AM, GMT-5 would have the + following format:</para> <programlisting>2011-05-19T08:07:08-05:00</programlisting> </example> <table rules="all"> @@ -485,11 +529,13 @@ format="SVG" scale="60"/> <section xml:id="DB_faults"> <title>Faults</title> - <para>When an error occurs, the Block Storage Service returns a fault object containing an - HTTP error response code that denotes the type of error. In the body of the response, the - system will return additional information about the fault.</para> - <para>The following table lists possible fault types with their associated error codes and - descriptions.</para> + <para>When an error occurs, the Block Storage Service returns a + fault object containing an HTTP error response code that + denotes the type of error. In the body of the response, the + system will return additional information about the + fault.</para> + <para>The following table lists possible fault types with their + associated error codes and descriptions.</para> <informaltable rules="all"> <thead> <tr align="center"> @@ -502,70 +548,83 @@ format="SVG" scale="60"/> <tr> <td colspan="2"><code>badRequest</code></td> <td colspan="1">400</td> - <td colspan="3">There was one or more errors in the user request.</td> + <td colspan="3">There was one or more errors in the user + request.</td> </tr> <tr> <td colspan="2"><code>unauthorized</code></td> <td colspan="1">401</td> - <td colspan="3">The supplied token is not authorized to access the resources, either - it's expired or invalid.</td> + <td colspan="3">The supplied token is not authorized to + access the resources, either it's expired or + invalid.</td> </tr> <tr> <td colspan="2"><code>forbidden</code></td> <td colspan="1">403</td> - <td colspan="3">Access to the requested resource was denied.</td> + <td colspan="3">Access to the requested resource was + denied.</td> </tr> <tr> <td colspan="2"><code>itemNotFound</code></td> <td colspan="1">404</td> - <td colspan="3">The back-end services did not find anything matching the - Request-URI.</td> + <td colspan="3">The back-end services did not find + anything matching the Request-URI.</td> </tr> <tr> <td colspan="2"><code>badMethod</code></td> <td colspan="1">405</td> - <td colspan="3">The request method is not allowed for this resource.</td> + <td colspan="3">The request method is not allowed for this + resource.</td> </tr> <tr> <td colspan="2"><code>overLimit</code></td> <td colspan="1">413</td> - <td colspan="3">Either the number of entities in the request is larger than allowed - limits, or the user has exceeded allowable request rate limits. See the - <code>details</code> element for more specifics. Contact support if you think you - need higher request rate limits.</td> + <td colspan="3">Either the number of entities in the + request is larger than allowed limits, or the user has + exceeded allowable request rate limits. See the + <code>details</code> element for more specifics. + Contact support if you think you need higher request + rate limits.</td> </tr> <tr> <td colspan="2"><code>badMediaType</code></td> <td colspan="1">415</td> - <td colspan="3">The requested content type is not supported by this service.</td> + <td colspan="3">The requested content type is not + supported by this service.</td> </tr> <tr> <td colspan="2"><code>unprocessableEntity</code></td> <td colspan="1">422</td> - <td colspan="3">The requested resource could not be processed on at the moment.</td> + <td colspan="3">The requested resource could not be + processed on at the moment.</td> </tr> <tr> <td colspan="2"><code>instanceFault</code></td> <td colspan="1">500</td> - <td colspan="3">This is a generic server error and the message contains the reason for - the error. This error could wrap several error messages and is a catch all.</td> + <td colspan="3">This is a generic server error and the + message contains the reason for the error. This error + could wrap several error messages and is a catch + all.</td> </tr> <tr> <td colspan="2"><code>notImplemented</code></td> <td colspan="1">501</td> - <td colspan="3">The requested method or resource is not implemented.</td> + <td colspan="3">The requested method or resource is not + implemented.</td> </tr> <tr> <td colspan="2"><code>serviceUnavailable</code></td> <td colspan="1">503</td> - <td colspan="3">The Block Storage Service is not available.</td> + <td colspan="3">The Block Storage Service is not + available.</td> </tr> </tbody> </informaltable> - <para>The following two <code>instanceFault</code> examples show errors when the server has - erred or cannot perform the requested operation:</para> + <para>The following two <code>instanceFault</code> examples show + errors when the server has erred or cannot perform the + requested operation:</para> <example> - <title>Example instanceFault Response: XML</title> + <title>Example instancefault: XML response</title> <screen><computeroutput>HTTP/1.1 500 Internal Server Error Content-Type: application/xml Content-Length: 121 @@ -575,8 +634,8 @@ Date: Mon, 28 Nov 2011 18:19:37 GMT</computeroutput></screen> </programlisting> </example> <example> - <title>Example Fault Response: JSON</title> -<screen><computeroutput>HTTP/1.1 500 Internal Server Error + <title>Example fault: JSON response</title> + <screen><computeroutput>HTTP/1.1 500 Internal Server Error Content-Length: 120 Content-Type: application/json; charset=UTF-8 Date: Tue, 29 Nov 2011 00:33:48 GMT</computeroutput></screen> @@ -584,678 +643,173 @@ Date: Tue, 29 Nov 2011 00:33:48 GMT</computeroutput></screen> <xi:include href="samples/db-faults-instanceFault.json" parse="text"/> </programlisting> </example> - <para>The error code (<code>code</code>) is returned in the body of the response for - convenience. The <code>message</code> element returns a human-readable message that is - appropriate for display to the end user. The <code>details</code> element is optional and - may contain information that is useful for tracking down an error, such as a stack trace. - The <code>details</code> element may or may not be appropriate for display to an end user, - depending on the role and experience of the end user.</para> - <para>The fault's root element (for example, <code>instanceFault</code>) may change depending - on the type of error.</para> - <para><?rax-fo keep-with-next?>The following two <code>badRequest</code> examples show errors - when the volume size is invalid:</para> + <para>The error code (<code>code</code>) is returned in the body + of the response for convenience. The <code>message</code> + element returns a human-readable message that is appropriate + for display to the end user. The <code>details</code> element + is optional and may contain information that is useful for + tracking down an error, such as a stack trace. The + <code>details</code> element may or may not be appropriate + for display to an end user, depending on the role and + experience of the end user.</para> + <para>The fault's root element (for example, + <code>instanceFault</code>) may change depending on the type + of error.</para> + <para><?rax-fo keep-with-next?>The following + <code>badRequest</code> examples show errors when the volume + size is not valie:</para> <example> - <title>Example badRequest Fault on Volume Size Errors: XML</title> -<screen><computeroutput>HTTP/1.1 400 None + <title>Example badRequest fault and volume size errors: XML + request</title> + <screen><computeroutput>HTTP/1.1 400 None Content-Type: application/xml Content-Length: 121 Date: Mon, 28 Nov 2011 18:19:37 GMT</computeroutput></screen> <programlisting language="xml"><xi:include href="samples/db-faults-badRequest.xml" parse="text"/></programlisting> </example> <example> - <title>Example badRequest Fault on Volume Size Errors: JSON</title> -<screen><computeroutput>HTTP/1.1 400 None + <title>Example badRequest fault and volume size errors: JSON + request</title> + <screen><computeroutput>HTTP/1.1 400 None Content-Length: 120 Content-Type: application/json; charset=UTF-8 Date: Tue, 29 Nov 2011 00:33:48 GMT</computeroutput></screen> - <programlisting language="json"> -<xi:include href="samples/db-faults-badRequest.json" parse="text"/> - </programlisting> + <programlisting language="json"><xi:include href="samples/db-faults-badRequest.json" parse="text"/></programlisting> </example> - <para>The next two examples show <code>itemNotFound</code> errors:</para> + <para>The next two examples show <code>itemNotFound</code> + errors:</para> <example> - <title>Example itemNotFound Fault: XML</title> - <screen><computeroutput>HTTP/1.1 404 Not Found + <title>Example itemNotFound fault: XML response</title> + <screen><computeroutput>HTTP/1.1 404 Not Found Content-Length: 147 Content-Type: application/xml; charset=UTF-8 Date: Mon, 28 Nov 2011 19:50:15 GMT</computeroutput></screen> <programlisting language="xml"><xi:include href="samples/db-faults-itemNotFound.xml" parse="text"/></programlisting> </example> <example> - <title>Example itemNotFound Fault: JSON</title> - <screen><computeroutput>HTTP/1.1 404 Not Found + <title>Example itemNotFound fault: JSON response</title> + <screen><computeroutput>HTTP/1.1 404 Not Found Content-Length: 78 Content-Type: application/json; charset=UTF-8 Date: Tue, 29 Nov 2011 00:35:24 GMT</computeroutput></screen> - <programlisting language="json"> -<xi:include href="samples/db-faults-itemNotFound.json" parse="text"/> - </programlisting> + <programlisting language="json"><xi:include href="samples/db-faults-itemNotFound.json" parse="text"/></programlisting> </example> </section> </chapter> - <chapter xml:id="API_Opertations" 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"> - <title>API Operations</title> + <chapter xml:id="API_Operations" + 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"> + <title>API operations</title> <section xml:id="Volumes"> <title>Volumes</title> - <para>A volume is a detachable block storage device. You can think of it as a USB hard drive. - It can only be attached to one instance at a time.</para> - <para><?rax-fo keep-with-next?>When making an API call to create, list, or delete volume(s), - the following status values are possible:</para> + <para>A volume is a detachable block storage device. You can + think of it as a USB hard drive. It can only be attached to + one instance at a time.</para> + <para><?rax-fo keep-with-next?>When making an API call to + create, list, or delete volume(s), the following status values + are possible:</para> <itemizedlist spacing="compact"> <listitem> <para>CREATING – The volume is being created.</para> </listitem> <listitem> - <para>AVAILABLE – The volume is read to be attached to an instance.</para> + <para>AVAILABLE – The volume is read to be attached to + an instance.</para> </listitem> <listitem> - <para>ATTACHING – The volume is attaching to an instance.</para> + <para>ATTACHING – The volume is attaching to an + instance.</para> </listitem> <listitem> - <para>IN-USE – The volume is attached to an instance.</para> + <para>IN-USE – The volume is attached to an + instance.</para> </listitem> <listitem> <para>DELETING – The volume is being deleted.</para> </listitem> <listitem> - <para>ERROR – An error has occurred with the volume.</para> + <para>ERROR – An error has occurred with the + volume.</para> </listitem> <listitem> - <para>ERROR_DELETING – There was an error deleting the volume.</para> + <para>ERROR_DELETING – There was an error deleting the + volume.</para> </listitem> </itemizedlist> - <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>/volumes</td> - <td>Lists a summary of all volumes defined in Cinder that are accessible to the tenant - who submits the request.</td> - </tr> - <tr> - <td>&GET;</td> - <td>/volumes/<parameter>volume_id</parameter></td> - <td>Lists detailed information for the specified volume.</td> - </tr> - <tr> - <td>&POST;</td> - <td>/volumes</td> - <td>Creates a new Cinder volume.</td> - </tr> - <tr> - <td>&PUT;</td> - <td>/volumes/<parameter>volume_id</parameter></td> - <td>Updates the specified volume.</td> - </tr> - <tr> - <td>&DELETE;</td> - <td>/volumes/<parameter>volume_id</parameter></td> - <td>Destroys the specified volume.</td> - </tr> - </tbody> - </informaltable> - <section xml:id="Create_Volume"> - <title>Create Volume</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>/volumes</td> - <td>Create a new volume.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Create Volumes: JSON Request</title> - <literallayout class="monospaced"> -GET /v1/volumes -Content-Type: application/json -Accept: application/json - </literallayout> - <programlisting language="json"> - <xi:include href="samples/volume_create_request.json" parse="text"/> - </programlisting> - </example> - <example> - <title>Create Volumes: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_create_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="List_Summary_Volumes"> - <title>List Volume Summaries</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>/volumes</td> - <td>Lists a summary of all volumes defined in Cinder that are accessible to the tenant - who submits the request.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>List Volumes: Request</title> - <literallayout class="monospaced"> -GET /v1/volumes -Accept: application/json - </literallayout> - </example> - <example> - <title>List Volumes: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_list_simple_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - <note><para>The response from list volume summary is the same as list volume details in v1. This is - corrected in v2.</para></note> - </section> - <section xml:id="List_Volumes_Details"> - <title>List Volume 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>/volumes/details</td> - <td>List detailed information of all volumes defined in Cinder that are accessible to - the tenant who submits the request.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>List Volumes: Request</title> - <literallayout class="monospaced"> -GET /v1/volumes/details -Accept: application/json - </literallayout> - </example> - <example> - <title>List Volumes: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_list_detail_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Show_Volume"> - <title>Show Volume</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>/volumes/<parameter>volume-id</parameter></td> - <td>Lists detailed information for the specified volume ID.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Show Volume: Request</title> - <literallayout class="monospaced"> -GET /v1/volumes/<parameter>2402b902-0b7a-458c-9c07-7435a826f794</parameter> -Accept: application/json -</literallayout> - </example> - <example> - <title>Show Volume: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_show_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Update_Volume"> - <title>Update Volume</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>/volumes/<parameter>volume-id</parameter></td> - <td>Update the specified volume.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Update Volume: JSON Request</title> - <literallayout class="monospaced"> -PUT /v1/volumes<parameter>2402b902-0b7a-458c-9c07-7435a826f794</parameter> -Content-Type: application/json -Accept: application/json - </literallayout> - <programlisting language="json"> - <xi:include href="samples/volume_update_request.json" parse="text"/> - </programlisting> - </example> - <example> - <title>Update Volume: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_update_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Delete_Volume"> - <title>Delete Volume</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>/volumes/<parameter>volume-id</parameter></td> - <td>Destroys the specified volume.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Delete Volume: Request</title> - <literallayout class="monospaced"> -DELETE /v1/volumes/<parameter>521752a6-acf6-4b2d-bc7a-119f9148cd8c</parameter> - </literallayout> - </example> - <example> - <title>Delete Volume: Response</title> - <literallayout class="monospaced"> -The response body will be empty with status code 202. - </literallayout> - </example> - <caution><para>You cannot delete a volume if it has snapshots associated with it.</para></caution> - </section> + <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/volume-api/src/v1/volume-api-v1.wadl#volumes"> + <wadl:method href="createVolume"/> + <wadl:method href="getVolumesSimple"/> + </wadl:resource> + <wadl:resource + href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/volume-api/src/v1/volume-api-v1.wadl#detail-volume"> + <wadl:method href="getVolumesDetail"/> + </wadl:resource> + <wadl:resource + href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/volume-api/src/v1/volume-api-v1.wadl#volume_id"> + <wadl:method href="getVolume"/> + <wadl:method href="deleteVolume"/> + </wadl:resource> + </wadl:resources> </section> <section xml:id="Snapshots"> <title>Snapshots</title> - <para><?rax-fo keep-with-next?>A snapshot is a point in time copy of the data contained in a - volume.</para> - <para>When making an API call to create, list, or delete snapshot(s), the following status - values are possible:</para> + <para><?rax-fo keep-with-next?>A snapshot is a point in time + copy of the data contained in a volume.</para> + <para>When making an API call to create, list, or delete + snapshot(s), the following status values are possible:</para> <itemizedlist spacing="compact"> <listitem> <para>CREATING – The snapshot is being created.</para> </listitem> <listitem> - <para>AVAILABLE – The snapshot is ready to be used.</para> + <para>AVAILABLE – The snapshot is ready to be + used.</para> </listitem> <listitem> <para>DELETING – The snapshot is being deleted.</para> </listitem> <listitem> - <para>ERROR – An error occurred with the snapshot.</para> + <para>ERROR – An error occurred with the + snapshot.</para> </listitem> <listitem> - <para>ERROR_DELETING – There was an error deleting the snapshot.</para> + <para>ERROR_DELETING – There was an error deleting the + snapshot.</para> </listitem> </itemizedlist> - <section xml:id="Create_Snapshot"> - <title>Create Snapshot</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>/snapshots</td> - <td>Create a snapshot of specified volume.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Create Snapshot: JSON Request</title> - <literallayout class="monospaced"> - POST /v1/snapshots - Content-Type: application/json - Accept: application/json - </literallayout> - <programlisting language="json"> - <xi:include href="samples/snapshot_create_request.json" parse="text"/> - </programlisting> - </example> - <example> - <title>Create Snapshot: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/snapshot_create_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 202 on success</para> - </section> - <section xml:id="List_Snapshots"> - <title>List Snapshot Summaries</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>/snapshots</td> - <td>Lists a summary of all snapshots defined in Cinder that are accessible to the - tenant who submits the request.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>List Snapshots: Request</title> - <literallayout class="monospaced"> -GET /v1/snapshots -Accept: application/json - </literallayout> - </example> - <example> - <title>List Snapshots: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/snapshot_list_simple_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - <note><para>The response from list snapshots summary is the same as list snapshot details in v1.</para></note> - </section> - <section xml:id="List_Snapshot_Details"> - <title>List Snapshot 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>/snapshots/details</td> - <td>List detailed information of all snapshots defined in Cinder that are accessible - to the tenant who submits the request.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>List Snapshots Details: Request</title> - <literallayout class="monospaced"> -GET /v1/snapshots/details -Accept: application/json - </literallayout> - </example> - <example> - <title>List Snapshots Details: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/snapshot_list_detail_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Show_Snapshot"> - <title>Show Snapshot</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>/snapshots/<parameter>snapshot-id</parameter></td> - <td>Lists detailed information for the specified snapshot ID.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Show Snapshot: Request</title> - <literallayout class="monospaced"> -GET /v1/snapshots/<parameter>3fbbcccf-d058-4502-8844-6feeffdf4cb5</parameter> -Accept: application/json -</literallayout> - </example> - <example> - <title>Show Snapshot: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/snapshot_show_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Update_Snapshot"> - <title>Update Snapshot</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>/snapshots/<parameter>snapshot-id</parameter></td> - <td>Update the specified snapshot.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Update Snapshot: JSON Request</title> - <literallayout class="monospaced"> -PUT /v1/snapshots/<parameter>2402b902-0b7a-458c-9c07-7435a826f794</parameter> -Content-Type: application/json -Accept: application/json - </literallayout> - <programlisting language="json"> - <xi:include href="samples/snapshot_update_request.json" parse="text"/> - </programlisting> - </example> - <example> - <title>Update Snapshot: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/snapshot_update_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Delete_Snapshot"> - <title>Delete Snapshot</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>/snapshots/<parameter>snapshot-id</parameter></td> - <td>Destroys the specified snapshot.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Delete Snapshot: Request</title> - <literallayout class="monospaced"> -DELETE /v1/snapshots/<parameter>3fbbcccf-d058-4502-8844-6feeffdf4cb5</parameter> - </literallayout> - </example> - <example> - <title>Delete Snapshot: Response</title> - <literallayout class="monospaced"> -The response body will be empty with status code 202. - </literallayout> - </example> - </section> + <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/volume-api/src/v1/volume-api-v1.wadl#snapshots"/> + <wadl:resource + href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/volume-api/src/v1/volume-api-v1.wadl#detail-snapshots"/> + <wadl:resource + href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/volume-api/src/v1/volume-api-v1.wadl#snapshot_id" + /> + </wadl:resources> </section> <section xml:id="Volume_Types"> - <title>Volume Types</title> - <section xml:id="Volume_List_Types"> - <title>List Volume Types</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>/types</td> - <td>List all volume types and their information.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>List Volume Types: Request</title> - <literallayout class="monospaced"> -GET /v1/types -Accept: application/json - </literallayout> - </example> - <example> - <title>List Volume Types: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_type_list_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> - <section xml:id="Volume_Show_Type"> - <title>Show Volume Type</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>/types/<parameter>type-id</parameter></td> - <td>Show information on a specified volume type.</td> - </tr> - </tbody> - </informaltable> - <example> - <title>Show Volume Type: Request</title> - <literallayout class="monospaced"> -GET /v1/types/6685584b-1eac-4da6-b5c3-555430cf68ff -Accept: application/json - </literallayout> - </example> - <example> - <title>Show Volume Type: JSON Response</title> - <programlisting language="json"> - <xi:include href="samples/volume_type_show_response.json" parse="text"/> - </programlisting> - </example> - <para>Returns status code 200 on success</para> - </section> + <title>Volume types</title> + <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/volume-api/src/v2/volume-api-v2.wadl#types"> + <wadl:method href="getVolumeTypes"/> + </wadl:resource> + <wadl:resource + href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/volume-api/src/v2/volume-api-v2.wadl#volume_type_id"> + <wadl:method href="getVolumeType"/> + </wadl:resource> + </wadl:resources> + </section> + <section xml:id="ext-os-quota-sets-cinder"> + <title>Quota sets extension (os-quota-sets)</title> + <para>Administrators only, depending on policy settings. View, + update, and delete quotas for a tenant.</para> + <wadl:resources + href="http://git.openstack.org/cgit/openstack/api-site/plain/api-ref/src/wadls/volume-api/src/v1/os-quota-sets.wadl" + xmlns:wadl="http://wadl.dev.java.net/2009/02"/> </section> </chapter> </book> diff --git a/v1/src/samples/snapshot_create_request.json b/v1/src/samples/snapshot_create_request.json deleted file mode 100644 index 22fb4e0..0000000 --- a/v1/src/samples/snapshot_create_request.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "snapshot": { - "display_name": "snap-001", - "display_description": "Daily backup", - "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", - "force": true - } -} \ No newline at end of file diff --git a/v1/src/samples/snapshot_create_response.json b/v1/src/samples/snapshot_create_response.json deleted file mode 100644 index f4263b1..0000000 --- a/v1/src/samples/snapshot_create_response.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "snapshot": { - "created_at": "2013-02-19T00:24:54.179025", - "display_description": "Daily backup", - "display_name": "snap-001", - "id": "2d843196-eff1-4a0c-980e-10fee5df2bea", - "size": 10, - "status": "creating", - "volume_id": "da450d0c-0920-4785-80dd-b024515200ce" - } -} diff --git a/v1/src/samples/snapshot_list_detail_response.json b/v1/src/samples/snapshot_list_detail_response.json deleted file mode 100644 index 3210b90..0000000 --- a/v1/src/samples/snapshot_list_detail_response.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "snapshots": [ - { - "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", - "display_name": "snap-001", - "display_description": "Daily backup", - "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", - "status": "available", - "size": 10, - "created_at": "2012-02-29T03:50:07Z" - }, - { - "id": "e479997c-650b-40a4-9dfe-77655818b0d2", - "display_name": "snap-002", - "display_description": "Weekly backup", - "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358", - "status": "available", - "size": 25, - "created_at": "2012-03-19T01:52:47Z" - } - ] -} diff --git a/v1/src/samples/snapshot_list_simple_response.json b/v1/src/samples/snapshot_list_simple_response.json deleted file mode 100644 index 3210b90..0000000 --- a/v1/src/samples/snapshot_list_simple_response.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "snapshots": [ - { - "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", - "display_name": "snap-001", - "display_description": "Daily backup", - "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", - "status": "available", - "size": 10, - "created_at": "2012-02-29T03:50:07Z" - }, - { - "id": "e479997c-650b-40a4-9dfe-77655818b0d2", - "display_name": "snap-002", - "display_description": "Weekly backup", - "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358", - "status": "available", - "size": 25, - "created_at": "2012-03-19T01:52:47Z" - } - ] -} diff --git a/v1/src/samples/snapshot_show_response.json b/v1/src/samples/snapshot_show_response.json deleted file mode 100644 index 5b06b81..0000000 --- a/v1/src/samples/snapshot_show_response.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "snapshot": { - "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", - "display_name": "snap-001", - "display_description": "Daily backup", - "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", - "status": "creating", - "size": 30, - "created_at": "2012-02-29T03:50:07Z" - } -} \ No newline at end of file diff --git a/v1/src/samples/snapshot_update_request.json b/v1/src/samples/snapshot_update_request.json deleted file mode 100644 index 0a98646..0000000 --- a/v1/src/samples/snapshot_update_request.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "snapshot":{ - "display_name":"snap-002", - "display_description":"This is yet, another snapshot." - } -} diff --git a/v1/src/samples/snapshot_update_response.json b/v1/src/samples/snapshot_update_response.json deleted file mode 100644 index 68cb085..0000000 --- a/v1/src/samples/snapshot_update_response.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "snapshot": { - "created_at": "2013-02-20T08:11:34.000000", - "display_description": "This is yet, another snapshot", - "display_name": "vol-002", - "id": "4b502fcb-1f26-45f8-9fe5-3b9a0a52eaf2", - "size": 1, - "status": "available", - "volume_id": "2402b902-0b7a-458c-9c07-7435a826f794" - } -} diff --git a/v1/src/samples/volume_create_request.json b/v1/src/samples/volume_create_request.json deleted file mode 100644 index 66ba872..0000000 --- a/v1/src/samples/volume_create_request.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "volume": { - "display_name": "vol-001", - "display_description": "Another volume.", - "size": 30, - "volume_type": "289da7f8-6440-407c-9fb4-7db01ec49164", - "metadata": {"contents": "junk"}, - "availability_zone": "us-east1" - } -} \ No newline at end of file diff --git a/v1/src/samples/volume_create_response.json b/v1/src/samples/volume_create_response.json deleted file mode 100644 index 3d398b0..0000000 --- a/v1/src/samples/volume_create_response.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "volume": { - "attachments": [], - "availability_zone": "us-east1", - "bootable": "false", - "created_at": "2013-02-20T07:36:44.893964", - "display_description": "Another volume.", - "display_name": "vol-001", - "id": "2402b902-0b7a-458c-9c07-7435a826f794", - "metadata": { - "contents": "junk" - }, - "size": 30, - "snapshot_id": null, - "source_volid": null, - "status": "creating", - "volume_type": "289da7f8-6440-407c-9fb4-7db01ec49164" - } -} diff --git a/v1/src/samples/volume_list_detail_response.json b/v1/src/samples/volume_list_detail_response.json deleted file mode 100644 index ddc5b6e..0000000 --- a/v1/src/samples/volume_list_detail_response.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "volumes": [ - { - "attachments": [], - "availability_zone": "us-east1", - "bootable": "false", - "created_at": "2013-02-18T23:47:37.000000", - "display_description": "yet another volume", - "display_name": "vol-002", - "id": "dfd9dd41-1353-450a-b5ac-a6037ee43cd8", - "metadata": { - "contents": "some more junk" - }, - "size": 30, - "snapshot_id": null, - "source_volid": null, - "status": "available", - "volume_type": "SATA" - }, - { - "attachments": [], - "availability_zone": "us-east1", - "bootable": "false", - "created_at": "2013-02-18T23:44:47.000000", - "display_description": "another volume", - "display_name": "vol-001", - "id": "da450d0c-0920-4785-80dd-b024515200ce", - "metadata": { - "contents": "junk" - }, - "size": 10, - "snapshot_id": null, - "source_volid": null, - "status": "available", - "volume_type": "SATA" - } - ] -} diff --git a/v1/src/samples/volume_list_simple_response.json b/v1/src/samples/volume_list_simple_response.json deleted file mode 100644 index ddc5b6e..0000000 --- a/v1/src/samples/volume_list_simple_response.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "volumes": [ - { - "attachments": [], - "availability_zone": "us-east1", - "bootable": "false", - "created_at": "2013-02-18T23:47:37.000000", - "display_description": "yet another volume", - "display_name": "vol-002", - "id": "dfd9dd41-1353-450a-b5ac-a6037ee43cd8", - "metadata": { - "contents": "some more junk" - }, - "size": 30, - "snapshot_id": null, - "source_volid": null, - "status": "available", - "volume_type": "SATA" - }, - { - "attachments": [], - "availability_zone": "us-east1", - "bootable": "false", - "created_at": "2013-02-18T23:44:47.000000", - "display_description": "another volume", - "display_name": "vol-001", - "id": "da450d0c-0920-4785-80dd-b024515200ce", - "metadata": { - "contents": "junk" - }, - "size": 10, - "snapshot_id": null, - "source_volid": null, - "status": "available", - "volume_type": "SATA" - } - ] -} diff --git a/v1/src/samples/volume_show_response.json b/v1/src/samples/volume_show_response.json deleted file mode 100644 index 5fd13f7..0000000 --- a/v1/src/samples/volume_show_response.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "volume": { - "attachments": [], - "availability_zone": "nova", - "bootable": "false", - "created_at": "2013-02-20T07:36:44.000000", - "display_description": "another volume foo", - "display_name": "vol-002", - "id": "2402b902-0b7a-458c-9c07-7435a826f794", - "metadata": { - "content": "junk" - }, - "os-vol-host-attr:host": "precise64", - "os-vol-tenant-attr:tenant_id": "dee102070e654627a1f96acc5dcad496", - "size": 1, - "snapshot_id": null, - "source_volid": null, - "status": "available", - "volume_type": "None" - } -} diff --git a/v1/src/samples/volume_type_list_response.json b/v1/src/samples/volume_type_list_response.json deleted file mode 100644 index 867fb30..0000000 --- a/v1/src/samples/volume_type_list_response.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "volume_types": [ - { - "extra_specs": {}, - "id": "6685584b-1eac-4da6-b5c3-555430cf68ff", - "name": "SSD" - }, - { - "extra_specs": {}, - "id": "8eb69a46-df97-4e41-9586-9a40a7533803", - "name": "SATA" - } - ] -} diff --git a/v1/src/samples/volume_type_show_response.json b/v1/src/samples/volume_type_show_response.json deleted file mode 100644 index 0c42fd9..0000000 --- a/v1/src/samples/volume_type_show_response.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "volume_type":{ - "id":"6685584b-1eac-4da6-b5c3-555430cf68ff", - "name":"SSD", - "extra_specs":{ - - } - } -} diff --git a/v1/src/samples/volume_update_request.json b/v1/src/samples/volume_update_request.json deleted file mode 100644 index 918fe21..0000000 --- a/v1/src/samples/volume_update_request.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "volume":{ - "display_name":"vol-002", - "display_description":"This is yet, another volume.", - "metadata":{ - "contents":"junk" - } - } -} \ No newline at end of file diff --git a/v1/src/samples/volume_update_response.json b/v1/src/samples/volume_update_response.json deleted file mode 100644 index d6bd97d..0000000 --- a/v1/src/samples/volume_update_response.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "volume": { - "attachments": [], - "availability_zone": "nova", - "bootable": "false", - "created_at": "2013-02-20T07:36:44.000000", - "display_description": "This is yet, another volume.", - "display_name": "vol-002", - "id": "2402b902-0b7a-458c-9c07-7435a826f794", - "metadata": { - "tier": "1" - }, - "size": 1, - "snapshot_id": null, - "source_volid": null, - "status": "available", - "volume_type": "None" - } -} diff --git a/v2/pom.xml b/v2/pom.xml index 8abd6ca..2b56652 100644 --- a/v2/pom.xml +++ b/v2/pom.xml @@ -1,31 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - + <parent> + <groupId>org.openstack.docs</groupId> + <artifactId>parent-pom</artifactId> + <version>1.0.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> <modelVersion>4.0.0</modelVersion> - - <groupId>org.openstack.docs</groupId> - <artifactId>openstack-block-storage-api-guide</artifactId> - <version>2.0.0</version> + <artifactId>openstack-v2</artifactId> <packaging>jar</packaging> - <name>OpenStack Block Storage Service API Guide v2</name> + <name>OpenStack Block Storage API v2 and Extensions Reference</name> + <properties> + <!-- This is set by Jenkins according to the branch. --> + <release.path.name>local</release.path.name> + <comments.enabled>1</comments.enabled> + </properties> <!-- ################################################ --> <!-- USE "mvn clean generate-sources" to run this POM --> <!-- ################################################ --> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - <build> <sourceDirectory>src</sourceDirectory> <plugins> - <plugin> <groupId>com.rackspace.cloud.api</groupId> <artifactId>clouddocs-maven-plugin</artifactId> - <version>1.15.0</version> + <!-- <version>1.15.0</version>--> + <!-- version is in ../pom.xml --> <executions> <execution> <id>generate-webhelp</id> @@ -56,15 +57,10 @@ <chapterAutolabel>1</chapterAutolabel> <sectionAutolabel>0</sectionAutolabel> <tocSectionDepth>1</tocSectionDepth> - <!-- The following elements sets the autonumbering of sections in output for chapter numbers but no numbered sections--> - <!--<sectionAutolabel>0</sectionAutolabel> - <sectionLabelIncludesComponentLabel>0</sectionLabelIncludesComponentLabel>--> - <webhelpDirname>2.0</webhelpDirname> <targetDirectory>${basedir}/target/docbkx/webhelp/api/openstack-block-storage</targetDirectory> <includeDateInPdfFilename>0</includeDateInPdfFilename> <pdfFilenameBase>openstack-blockstorage-devguide-2.0</pdfFilenameBase> - </configuration> </execution> <execution> @@ -85,7 +81,6 @@ </postProcess> </configuration> </execution> - </executions> <configuration> <!-- These parameters apply to pdf and webhelp --> @@ -98,29 +93,6 @@ <branding>openstack</branding> </configuration> </plugin> - </plugins> </build> - <profiles> - <profile> - <id>Rackspace Research Repositories</id> - <activation> - <activeByDefault>true</activeByDefault> - </activation> - <repositories> - <repository> - <id>rackspace-research</id> - <name>Rackspace Research Repository</name> - <url>http://maven.research.rackspacecloud.com/content/groups/public/</url> - </repository> - </repositories> - <pluginRepositories> - <pluginRepository> - <id>rackspace-research</id> - <name>Rackspace Research Repository</name> - <url>http://maven.research.rackspacecloud.com/content/groups/public/</url> - </pluginRepository> - </pluginRepositories> - </profile> - </profiles> -</project> +</project> \ No newline at end of file diff --git a/v2/src/openstack-blockstorage-devguide.xml b/v2/src/openstack-blockstorage-devguide.xml index cf87a4f..cb0e46a 100644 --- a/v2/src/openstack-blockstorage-devguide.xml +++ b/v2/src/openstack-blockstorage-devguide.xml @@ -1,10 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book [ -<!-- Some useful entities borrowed from HTML --> -<!ENTITY ndash "–"> -<!ENTITY mdash "—"> -<!ENTITY hellip "…"> - <!-- 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>'> @@ -14,19 +9,12 @@ <!ENTITY API 'Block Storage API v2.0'> <!ENTITY VERSION 'v2'> <!ENTITY PRODABBV ""> - -<!-- changing authentication endpoints; define entities for US & UK rather than maintaining in text --> -<!ENTITY ENDPOINT-US "https://auth.api.openstackcloud.com/v2.0/"> -<!ENTITY ENDPOINT-UK "https://lon.identity.api.openstackcloud.com/v1.1/"> - <!ENTITY CHECK '<inlinemediaobject xmlns="http://docbook.org/ns/docbook"> <imageobject> <imagedata fileref="img/Check_mark_23x20_02.svg" format="SVG" scale="60"/> </imageobject> </inlinemediaobject>'> - - <!ENTITY ARROW '<inlinemediaobject xmlns="http://docbook.org/ns/docbook"> <imageobject> <imagedata fileref="img/Arrow_east.svg" diff --git a/v2/src/samples/snapshot_create_request.xml b/v2/src/samples/snapshot_create_request.xml deleted file mode 100644 index dd40cdf..0000000 --- a/v2/src/samples/snapshot_create_request.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<snapshot xmlns="http://docs.openstack.org/openstack-block-storage/2.0/content" - name="snap-001" - description="Daily backup" - volume_id="5aa119a8-d25b-45a7-8d1b-88e127885635" - force="true" /> diff --git a/v2/src/samples/snapshot_create_response.xml b/v2/src/samples/snapshot_create_response.xml deleted file mode 100644 index a2f041c..0000000 --- a/v2/src/samples/snapshot_create_response.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<snapshot - status="creating" - description="Daily backup" - created_at="2013-02-25T03:56:53.081642" - volume_id="5aa119a8-d25b-45a7-8d1b-88e127885635" - size="1" - id="ffa9bc5e-1172-4021-acaf-cdcd78a9584d" - name="snap-001"> - <metadata/> -</snapshot> \ No newline at end of file diff --git a/v2/src/samples/snapshot_list_detail_response.xml b/v2/src/samples/snapshot_list_detail_response.xml deleted file mode 100644 index f36674e..0000000 --- a/v2/src/samples/snapshot_list_detail_response.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<snapshots - xmlns:os-extended-snapshot-attributes="http://docs.openstack.org/openstack-block-storage/2.0/content/Extended_Snapshot_Attributes.html"> - <snapshot - status="available" - description="Daily backup" - created_at="2013-02-25 07:30:12" - volume_id="5aa119a8-d25b-45a7-8d1b-88e127885635" - size="30" - id="43f20e0e-2c2c-4770-9d4e-c3d769ae5470" - name="snap-001" - os-extended-snapshot-attributes:project_id="0c2eba2c5af04d3f9e9d0d410b371fde" - os-extended-snapshot-attributes:progress="100%"> - <metadata/> - </snapshot> - <snapshot - status="available" - description="Weekly backup" - created_at="2013-02-25 07:20:38" - volume_id="806092e3-7551-4fff-a005-49016f4943b1" - size="1" - id="e820db06-58b5-439d-bac6-c01faa3f6499" - name="snap-002" - os-extended-snapshot-attributes:project_id="0c2eba2c5af04d3f9e9d0d410b371fde" - os-extended-snapshot-attributes:progress="100%"> - <metadata/> - </snapshot> -</snapshots> diff --git a/v2/src/samples/snapshot_list_simple_response.xml b/v2/src/samples/snapshot_list_simple_response.xml deleted file mode 100644 index 17f4a6c..0000000 --- a/v2/src/samples/snapshot_list_simple_response.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<snapshots> - <snapshot - status="available" - description="Very important" - created_at="2013-02-25 04:13:17" - volume_id="5aa119a8-d25b-45a7-8d1b-88e127885635" - size="1" - id="2bb856e1-b3d8-4432-a858-09e4ce939389" - name="snap-001"> - <metadata/> - </snapshot> - <snapshot - status="available" - description="Weekly backup" - created_at="2013-02-25 07:20:38" - volume_id="806092e3-7551-4fff-a005-49016f4943b1" - size="1" - id="e820db06-58b5-439d-bac6-c01faa3f6499" - name="snap-002"> - <metadata/> - </snapshot> -</snapshots> \ No newline at end of file diff --git a/v2/src/samples/snapshot_update_request.xml b/v2/src/samples/snapshot_update_request.xml deleted file mode 100644 index feeafed..0000000 --- a/v2/src/samples/snapshot_update_request.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<snapshot xmlns="http://docs.openstack.org/openstack-block-storage/2.0/content" - name="snap-002" - description="This is yet, another snapshot."/> diff --git a/v2/src/samples/snapshot_update_response.xml b/v2/src/samples/snapshot_update_response.xml deleted file mode 100644 index 9ce9f8f..0000000 --- a/v2/src/samples/snapshot_update_response.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<snapshot - xmlns:os-extended-snapshot-attributes="http://docs.openstack.org/openstack-block-storage/2.0/content/Extended_Snapshot_Attributes.html" - status="available" - description="This is yet, another snapshot" - created_at="2013-02-20T08:11:34.000000" - volume_id="2402b902-0b7a-458c-9c07-7435a826f794" - size="1" - id="4b502fcb-1f26-45f8-9fe5-3b9a0a52eaf2" - name="vol-002" - os-extended-snapshot-attributes:project_id="0c2eba2c5af04d3f9e9d0d410b371fde" - os-extended-snapshot-attributes:progress="100%"> - <metadata/> -</snapshot> diff --git a/v2/src/samples/volume_create_request.xml b/v2/src/samples/volume_create_request.xml deleted file mode 100644 index 987f816..0000000 --- a/v2/src/samples/volume_create_request.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<volume xmlns="http://docs.openstack.org/openstack-block-storage/2.0/content" - name="vol-001" - description="Another volume." - size="30" - volume_type="289da7f8-6440-407c-9fb4-7db01ec49164" - availability_zone="us-east-1"> - <metadata> - <meta key="contents">junk</meta> - </metadata> -</volume> diff --git a/v2/src/samples/volume_create_response.xml b/v2/src/samples/volume_create_response.xml deleted file mode 100644 index de5614d..0000000 --- a/v2/src/samples/volume_create_response.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<volume - xmlns:atom="http://www.w3.org/2005/Atom" - xmlns="http://docs.openstack.org/api/openstack-block-storage/2.0/content" - name="vol-001" - id="6996b558-d633-4635-8116-adf14009fcc3"> - <attachments/> - <metadata/> -</volume>