You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2013/12/31 15:19:13 UTC

svn commit: r1554515 [1/3] - in /libcloud/site/trunk: content/ content/css/ content/docs/ content/images/ content/js/ lib/ templates/ templates/blocks/

Author: tomaz
Date: Tue Dec 31 14:19:12 2013
New Revision: 1554515

URL: http://svn.apache.org/r1554515
Log:
Temporary add old website back so I can update it with information about a new
release.

Added:
    libcloud/site/trunk/content/about.mdtext
    libcloud/site/trunk/content/community-resources.mdtext
    libcloud/site/trunk/content/contributing.mdtext
    libcloud/site/trunk/content/credits.mdtext
    libcloud/site/trunk/content/css/
    libcloud/site/trunk/content/css/code.css
    libcloud/site/trunk/content/css/documentation.css   (with props)
    libcloud/site/trunk/content/css/ie.css   (with props)
    libcloud/site/trunk/content/css/jquery.tweet.css
    libcloud/site/trunk/content/css/libcloud.css   (with props)
    libcloud/site/trunk/content/css/print.css   (with props)
    libcloud/site/trunk/content/css/screen.css   (with props)
    libcloud/site/trunk/content/devinfo.mdtext
    libcloud/site/trunk/content/docs/
    libcloud/site/trunk/content/docs/components.mdtext
    libcloud/site/trunk/content/docs/compute-base-api.mdtext
    libcloud/site/trunk/content/docs/compute-deployment.mdtext
    libcloud/site/trunk/content/docs/compute-examples.mdtext
    libcloud/site/trunk/content/docs/compute-overview.mdtext
    libcloud/site/trunk/content/docs/debugging.mdtext
    libcloud/site/trunk/content/docs/dns-base-api.mdtext
    libcloud/site/trunk/content/docs/dns-examples.mdtext
    libcloud/site/trunk/content/docs/dns-overview.mdtext
    libcloud/site/trunk/content/docs/index.mdtext
    libcloud/site/trunk/content/docs/load-balancer-base-api.mdtext
    libcloud/site/trunk/content/docs/load-balancer-examples.mdtext
    libcloud/site/trunk/content/docs/load-balancer-overview.mdtext
    libcloud/site/trunk/content/docs/ssl-certificate-validation.mdtext
    libcloud/site/trunk/content/docs/storage-base-api.mdtext
    libcloud/site/trunk/content/docs/storage-examples.mdtext
    libcloud/site/trunk/content/docs/storage-overview.mdtext
    libcloud/site/trunk/content/docs/using-libcloud-in-multi-threaded-and-async-environments.mdtext
    libcloud/site/trunk/content/docs/writing-tests-and-using-the-fixture-framework.mdtext
    libcloud/site/trunk/content/docstring-conventions.mdtext
    libcloud/site/trunk/content/downloads.mdtext
    libcloud/site/trunk/content/driver-features.mdtext
    libcloud/site/trunk/content/europython-libcloud-sprint.mdtext
    libcloud/site/trunk/content/getting-started.mdtext
    libcloud/site/trunk/content/gsoc-2012-ideas.mdtext
    libcloud/site/trunk/content/gsoc-2012.mdtext
    libcloud/site/trunk/content/gsoc.mdtext
    libcloud/site/trunk/content/images/
    libcloud/site/trunk/content/images/apache_feather.gif   (with props)
    libcloud/site/trunk/content/images/apache_incubator.png   (with props)
    libcloud/site/trunk/content/images/apache_logo.gif   (with props)
    libcloud/site/trunk/content/images/apacheconna2013.png   (with props)
    libcloud/site/trunk/content/images/europython-logo.png   (with props)
    libcloud/site/trunk/content/images/europython-logo_small.png   (with props)
    libcloud/site/trunk/content/images/favicon.png   (with props)
    libcloud/site/trunk/content/images/libcloud_logo.png   (with props)
    libcloud/site/trunk/content/images/providers.png   (with props)
    libcloud/site/trunk/content/index.mdtext
    libcloud/site/trunk/content/js/
    libcloud/site/trunk/content/js/clearlink.js
    libcloud/site/trunk/content/js/libcloud.js   (with props)
    libcloud/site/trunk/content/news.mdtext
    libcloud/site/trunk/content/releases.xml
    libcloud/site/trunk/content/security.mdtext
    libcloud/site/trunk/content/sitemap.html
    libcloud/site/trunk/content/supported_providers.json
    libcloud/site/trunk/content/testing.mdtext
    libcloud/site/trunk/content/upgrade-notes-0-6.mdtext
    libcloud/site/trunk/content/upgrade-notes-0-7.mdtext
    libcloud/site/trunk/content/upgrade-notes-0-8.mdtext
    libcloud/site/trunk/content/upgrade-notes.mdtext
    libcloud/site/trunk/content/whos-using.mdtext
    libcloud/site/trunk/lib/
    libcloud/site/trunk/lib/path.pm
    libcloud/site/trunk/lib/view.pm
    libcloud/site/trunk/templates/
    libcloud/site/trunk/templates/basic.html
    libcloud/site/trunk/templates/blocks/
    libcloud/site/trunk/templates/blocks/analytics.html
    libcloud/site/trunk/templates/blocks/footer.html
    libcloud/site/trunk/templates/blocks/menu.html
    libcloud/site/trunk/templates/blocks/menu_docs.html
    libcloud/site/trunk/templates/blocks/other.html
    libcloud/site/trunk/templates/blocks/quotes.html
    libcloud/site/trunk/templates/blocks/sidebar.html
    libcloud/site/trunk/templates/blocks/sidebar_docs.html
    libcloud/site/trunk/templates/documentation.html
    libcloud/site/trunk/templates/index.html
    libcloud/site/trunk/templates/providers.html
    libcloud/site/trunk/templates/sitemap.xml

Added: libcloud/site/trunk/content/about.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/about.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/about.mdtext (added)
+++ libcloud/site/trunk/content/about.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,40 @@
+title: About
+
+## About ##
+
+libcloud is a client library for interacting with many of the popular cloud server providers.
+It was created to make it easy for developers to build products that work between any of the services that it supports.
+
+libcloud was originally created by the folks over at [Cloudkick](https://www.cloudkick.com), but has
+since grown into an independent free software project licensed under the Apache License (2.0).
+
+The libcloud team can be contacted at [users@libcloud.apache.org](mailto:users@libcloud.apache.org).
+
+## Supported Versions ##
+
+Libcloud supports the following Python version: 
+
+* Python 2.5,
+* Python 2.6,
+* Python 2.7,
+* PyPy,
+* Python 3 (since 0.7.1)
+
+Support for **Python 2.4** has been dropped in **Libcloud 0.4.0**. If you are still using Python 2.4
+you need to use version prior to **0.4.0**.
+
+## Release Schedule ##
+
+We don't follow a regular releases schedule as you might know it from other
+projects (Ubuntu, etc.).
+
+Here are the guidelines we follow when scheduling and preparing a release:
+
+1. Normal (stable) release  
+We prepare a release as soon as enough changes accumulate in trunk.
+2. Bug fix release  
+It depends on the severity of a bug and how many users it affects. If it
+affects a lot of users or a big chunk of the code we try to prepare and get the
+release out as soon as possible.
+3. Security fix release  
+We prepare and get the release out as soon as possible.
\ No newline at end of file

Added: libcloud/site/trunk/content/community-resources.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/community-resources.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/community-resources.mdtext (added)
+++ libcloud/site/trunk/content/community-resources.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,36 @@
+title: Community resources
+
+## Community Resources ##
+
+Here you can find different articles, presentations and tutorials produced by the libcloud users and developers.
+
+### Articles and Tutorials ###
+
+- [The wonders of libcloud](http://zenofnptech.org/2009/07/wonders-of-libcloud.html), *07-30-2009*
+- [USING LIBCLOUD WITH RIMUHOSTING](http://blog.rimuhosting.com/2009/10/27/using-libcloud-with-rimuhosting/), davidmace, *10-27-2009*
+- [Using vCloud and Amazon CloudWatch with libcloud](http://blog.boxedice.com/2010/03/04/using-vcloud-and-amazon-cloudwatch-with-libcloud/), Ryan Duffield, *03-04-2010*
+- [Announcing lc-tools: command line tools on top of libcloud](http://empt1e.blogspot.com/2010/07/announcing-lc-tools.html), Roman Bogorodskiy, *07-14-2010*
+- [How to leverage cloud computing assets via apache-libcloud](http://www.outsidaz.org/blog/2010/12/13/how-to-leverage-cloud-computing-assets-via-apache-libcloud/), RichJ, *12-13-2010*
+- [Using libcloud to manage instances across multiple cloud providers](http://agiletesting.blogspot.com/2010/12/using-libcloud-to-manage-instances.html), Grig Gheorghiu, *12-21-2010*
+- [Dewpoint: a command-line tool for cloud computing](http://blog.secondstory.com/introducing-dewpoint), David Brewer, *01-30-2011*
+- [Passing user data to EC2 Ubuntu instances with libcloud](http://agiletesting.blogspot.com/2011/01/passing-user-data-to-ec2-ubuntu.html), Grig Gheorghiu, *01-19-2011*
+- [libcloud 0.4.2 and SSL](http://agiletesting.blogspot.com/2011/01/libcloud-042-and-ssl.html), Grig Gheorghiu, *01-19-2011*
+- [Playing with Amazon EC2, libcloud and fabric](http://lars.la/libcloud_and_fabric.html), Lars Larsson, *04-16-2011*
+- [Bookkeeping With Libcloud](http://undertitled.com/2012/04/11/bookkeeping-with-libcloud.html), 04-11-2012
+- [Using Apache Libcloud with IBM SmartCloud Enterprise](http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP102127), 05-14-2012
+- [StratusLab Support for Libcloud](http://stratuslab.eu//news/2013/02/20/news-libcloud.html), *2013-02-20*
+- [Using Abiquo with libcloud](http://blog.abiquolabs.com/using-abiquo-with-libcloud/), *2013-02-25*
+
+### Non-English Publications ###
+
+- [Управление облаками в Python](http://habrahabr.ru/blogs/python/111530/), *01-09-2011*
+- [Apache Libcloud](http://www.tomaz.me/other/slides/2011-10-05_wwwhmb_apache_libcloud.pdf), Tomaz Muraus @ wwwhmb 2011, *05-10-2011*
+
+### Presentations ###
+
+- Apache Libcloud, Paul Querna @ Velocity Ignite 2010, [http://paul.querna.org/slides/libcloud-ignite.pdf](http://paul.querna.org/slides/libcloud-ignite.pdf)
+- Apache Libcloud, Paul Querna @ Open Source Bridge 2010, [http://paul.querna.org/slides/libcloud-2010-06.pdf](http://paul.querna.org/slides/libcloud-2010-06.pdf)
+- Apache Libcloud: API driven operations, Paul Querna @ Surge 2010 - [http://paul.querna.org/slides/libcloud-surge2010.pdf](http://paul.querna.org/slides/libcloud-surge2010.pdf)
+- Keeping your options open, Doug Tidwell, [http://www.slideshare.net/doug_tidwell/keeping-your-options-open](http://www.slideshare.net/doug_tidwell/keeping-your-options-open)
+- Working in the multi-cloud with libcloud, Grig Gheorghiu, [http://www.slideshare.net/ggheorghiu/working-in-the-multicloud-with-libcloud](http://www.slideshare.net/ggheorghiu/working-in-the-multicloud-with-libcloud)
+- Avoiding Vendor Lock-In Using Apache Libcloud, Tomaz Muraus @ CloudOpen 2012, [http://events.linuxfoundation.org/images/stories/pdf/lcna_co2012_muraus.pdf](http://events.linuxfoundation.org/images/stories/pdf/lcna_co2012_muraus.pdf)
\ No newline at end of file

Added: libcloud/site/trunk/content/contributing.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/contributing.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/contributing.mdtext (added)
+++ libcloud/site/trunk/content/contributing.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,113 @@
+Title: Contributing
+
+## Contributing to Libcloud
+
+We welcome contributions of any kind (ideas, code, tests, documentation,
+examples, ...).
+
+This page explains how you can contribute to the Libcloud project. If you get
+stuck at any point during this process, stop by on our IRC channel (#libcloud
+on freenode) and we will do our best to assist you.
+
+<h3 id="process"><a href="#process">General workflow</a></h3>
+
+1. If you are implementing a big feature or a change, start a discussion on
+the [mailing list](devinfo.html) first.
+2. Open a new issue on our
+[issue tracker](https://issues.apache.org/jira/browse/LIBCLOUD) (JIRA)
+3. Fork libcloud [Github git repository](https://github.com/apache/libcloud)*
+and make your changes
+ 1. Create a new branch for your changes:
+  `git checkout -b <jira_issue_id>_<change_name>`
+ 2. Make your changes
+ 3. Make a single commit for your changes and if a corresponding JIRA ticket
+  exists, make sure the commit contains the ticket number. For example:
+  `git commit -a -m "Issue LIBCLOUD-123: Add a new compute driver for CloudStack based providers."`
+4. Write tests for your modifications and make sure that all the tests pass.
+For more information about running the tests refer to the
+[Testing](/testing.html) page.
+5. Open a pull request with your changes. Your pull request will appear at
+https://github.com/apache/libcloud/pulls
+6. Wait for the code to be reviewed and address any outstanding comments.
+7. Once the code has been reviewed, all the outstanding issues have been
+addressed and the pull request has been +1'ed, close the pull request,
+generate a patch and attach it to the JIRA issue you have created earlier:
+ `git format-patch --stdout trunk > patch_name.patch`
+
+#### Contributing Bigger Changes
+
+If you are contributing a bigger change (e.g. large new feature or a new
+provider driver) you need to have have signed Apache Individual Contributor
+License Agreement (ICLA) in order to have your patch accepted.
+
+You can find more information on how to sign and file an ICLA on the
+[Apache website](https://www.apache.org/licenses/#clas).
+
+#### Note about Github
+
+Github repository is a read-only mirror of the official Apache git repository
+(https://git-wip-us.apache.org/repos/asf/libcloud.git). This mirror script runs
+only a couple of times per day which means this mirror can be slightly out of
+date. You are advised to add a separate remote for the official upstream
+repository:
+
+   ::bash
+   git remote add upstream https://git-wip-us.apache.org/repos/asf/libcloud.git
+
+Github read-only mirror is used only for pull requests and code review. Once a
+pull request has been reviewed, all the comments have been addresses and it's
+ready to be merged, user who submitted the pull request must close the pull
+request, create a patch and attach it to the original JIRA ticket.
+
+<h3 id="things_to_keep_in_mind"><a href="#things_to_keep_in_mind">Things To Keep In Mind</a></h3>
+
+* Any non-trivial change must contain tests
+* All the functions and methods must contain
+[pydoc](http://codespeak.net/~mwh/pydoctor/) docstrings which are used to generate
+API documentation. You can find a lot of examples of docstrings in the existing
+code e.g. - `libcloud/compute/base.py`
+
+<h3 id="multiple_python_version"><a href="#multiple_python_version">Supporting Multiple Python Versions</a></h3>
+
+Libcloud supports a variety of Python versions so your code also needs to work
+with all the supported versions. This means that in some cases you will need to
+include extra code to make sure it works in all the supported versions.
+
+Some examples:
+
+#### Context Managers
+
+Context managers aren't available in Python 2.5 by default. If you want to use
+them make sure to put `from __future__ import with_statement` on top of the
+file where you use them.
+
+#### Exception Handling
+
+There is no unified way to handle exceptions and extract the exception object
+in Python 2.5 and Python 3.x. This means you need to use a
+`sys.exc_info()[1]` approach to extract the raised exception object.
+
+For example:
+
+    ::python
+    try:
+        some code
+    except Exception:
+        e = sys.exc_info()[1]
+        print e
+
+#### Python 3
+
+You can find a lot of utility functions which make code easier to work with 2.x
+and 3.x in `libcloud.utils.py3` module.
+
+<h3 id="style_guide"><a href="#style_guide">Style Guide</a></h3>
+
+1. We follow [PEP8 Python Style Guide](http://www.python.org/dev/peps/pep-0008/)
+2. Use 4 spaces for a tab
+3. Make sure edited file doesn't contain any trailing whitespace
+4. Docstrings need to follow the conventions described on the
+[Docstring Convetions](/docstring-conventions.html) page
+
+You can verify that your modifications don't break any rules by running the
+`pep8` script - e.g. `pep8 libcloud/edited_file.py`.

Added: libcloud/site/trunk/content/credits.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/credits.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/credits.mdtext (added)
+++ libcloud/site/trunk/content/credits.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,39 @@
+title: Credits
+
+## PMC Members ##
+
+* Eric Woods (woodser [at] apache [dot] org)
+* Jeremiah Orem (oremj [at] apache [dot] org)
+* Jerry Chen (jerry [at] apache [dot] org)
+* John Carr (johnmdcarr [at] apache [dot] org)
+* Roman Bogorodskiy (rbogorodskiy [at] apache [dot] org)
+* Tom Davis (tom [at] apache [dot] org)
+* Tomaz Muraus (tomaz [at] apache [dot] org)
+* Paul Querna (pquerna [at] apache [dot] org)
+
+## Committers ##
+
+* Brian Curtin (briancurtin [at] apache [dot] org)
+* Eric Woods (woodser [at] apache [dot] org)
+* Hutson Betts (hbetts [at] apache [dot] org)
+* Ilgiz Islamgulov (ilgiz [at] apache [dot] org)
+* Jeremiah Orem (oremj [at] apache [dot] org)
+* Jerry Chen (jerry [at] apache [dot] org)
+* John Carr (johnmdcarr [at] apache [dot] org)
+* Mahendra Maheshwara (mahendra [at] apache [dot] org)
+* Roman Bogorodskiy (rbogorodskiy [at] apache [dot] org)
+* Tom Davis (tom [at] apache [dot] org)
+* Tomaz Muraus (tomaz [at] apache [dot] org)
+* Paul Querna (pquerna [at] apache [dot] org)
+
+## Alumni ##
+
+* Alex Polvi (original Libcloud developer and founder)
+* Dan Di Spaltro (committer)
+* Ivan Meredith (committer)
+* Jed Smith (committer, PMC member)
+
+## Contributors ##
+
+A list of all the contributors can be found on the [Libcloud
+JIRA](https://issues.apache.org/jira/secure/ConfigureReport.jspa?atl_token=888af46eb9686dcb98b6e5c7489395dfb195f02c&versionId=-1&issueStatus=closed&selectedProjectId=12311030&reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport&Next=Next).

Added: libcloud/site/trunk/content/css/code.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/code.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/code.css (added)
+++ libcloud/site/trunk/content/css/code.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,62 @@
+.codehilite .hll { background-color: #ffffcc }
+.codehilite  { background: #f0f0f0; overflow: auto !important; margin-bottom: 18px; }
+.codehilite .c { color: #60a0b0; font-style: italic } /* Comment */
+.codehilite .err { border: 1px solid #FF0000 } /* Error */
+.codehilite .k { color: #007020; font-weight: bold } /* Keyword */
+.codehilite .o { color: #666666 } /* Operator */
+.codehilite .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #007020 } /* Comment.Preproc */
+.codehilite .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.codehilite .gd { color: #A00000 } /* Generic.Deleted */
+.codehilite .ge { font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #FF0000 } /* Generic.Error */
+.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.codehilite .gi { color: #00A000 } /* Generic.Inserted */
+.codehilite .go { color: #808080 } /* Generic.Output */
+.codehilite .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.codehilite .gs { font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.codehilite .gt { color: #0040D0 } /* Generic.Traceback */
+.codehilite .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { color: #007020 } /* Keyword.Pseudo */
+.codehilite .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #902000 } /* Keyword.Type */
+.codehilite .m { color: #40a070 } /* Literal.Number */
+.codehilite .s { color: #4070a0 } /* Literal.String */
+.codehilite .na { color: #4070a0 } /* Name.Attribute */
+.codehilite .nb { color: #007020 } /* Name.Builtin */
+.codehilite .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.codehilite .no { color: #60add5 } /* Name.Constant */
+.codehilite .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.codehilite .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.codehilite .ne { color: #007020 } /* Name.Exception */
+.codehilite .nf { color: #06287e } /* Name.Function */
+.codehilite .nl { color: #002070; font-weight: bold } /* Name.Label */
+.codehilite .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.codehilite .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.codehilite .nv { color: #bb60d5 } /* Name.Variable */
+.codehilite .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
+.codehilite .mf { color: #40a070 } /* Literal.Number.Float */
+.codehilite .mh { color: #40a070 } /* Literal.Number.Hex */
+.codehilite .mi { color: #40a070 } /* Literal.Number.Integer */
+.codehilite .mo { color: #40a070 } /* Literal.Number.Oct */
+.codehilite .sb { color: #4070a0 } /* Literal.String.Backtick */
+.codehilite .sc { color: #4070a0 } /* Literal.String.Char */
+.codehilite .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.codehilite .s2 { color: #4070a0 } /* Literal.String.Double */
+.codehilite .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.codehilite .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.codehilite .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.codehilite .sx { color: #c65d09 } /* Literal.String.Other */
+.codehilite .sr { color: #235388 } /* Literal.String.Regex */
+.codehilite .s1 { color: #4070a0 } /* Literal.String.Single */
+.codehilite .ss { color: #517918 } /* Literal.String.Symbol */
+.codehilite .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.codehilite .vc { color: #bb60d5 } /* Name.Variable.Class */
+.codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */
+.codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */

Added: libcloud/site/trunk/content/css/documentation.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/documentation.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/documentation.css (added)
+++ libcloud/site/trunk/content/css/documentation.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,24 @@
+/*  color 100    80     50     20
+ *  aqua  007bff 3395ff 80bdff cce5ff
+ *  melon ff5050 ff7373 ffa7a7 ffdcdc
+ */
+* { margin:0; }
+html {}
+body { border-top:10px solid #007bff; border-bottom:10px solid #007bff; }
+#wrapper { width:800px; margin:0 auto; }
+
+a {color:inherit;}
+a:hover { color:#ff5050;}
+
+#header { padding:15px 0 0; margin:0 0 5px 0; }
+#banner { padding:5px 0; margin:0 0 5px 0; border-top:1px solid #ddd; border-bottom:1px solid #ddd; }
+#banner h2 { margin:0; color:#ff5050; line-height:30px; }
+#sidebar {}
+#main {}
+#footer { text-align: center; margin:20px 0 10px; border-top:1px solid #ddd; padding:5px 0;}
+
+#sidebar ul, li {font-size: 15px; list-style-type: square; }
+#sidebar ul { margin-bottom: 5px; }
+li.title {font-weight: bold;}
+
+div#main { font-size: 120%; }

Propchange: libcloud/site/trunk/content/css/documentation.css
------------------------------------------------------------------------------
    svn:executable = *

Added: libcloud/site/trunk/content/css/ie.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/ie.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/ie.css (added)
+++ libcloud/site/trunk/content/css/ie.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,35 @@
+/* -----------------------------------------------------------------------
+
+
+ Blueprint CSS Framework 0.9
+ http://blueprintcss.org
+
+   * Copyright (c) 2007-Present. See LICENSE for more info.
+   * See README for instructions on how to use Blueprint.
+   * For credits and origins, see AUTHORS.
+   * This is a compressed file. See the sources in the 'src' directory.
+
+----------------------------------------------------------------------- */
+
+/* ie.css */
+body {text-align:center;}
+.container {text-align:left;}
+* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {overflow-x:hidden;}
+* html legend {margin:0px -8px 16px 0;padding:0;}
+ol {margin-left:2em;}
+sup {vertical-align:text-top;}
+sub {vertical-align:text-bottom;}
+html>body p code {*white-space:normal;}
+hr {margin:-8px auto 11px;}
+img {-ms-interpolation-mode:bicubic;}
+.clearfix, .container {display:inline-block;}
+* html .clearfix, * html .container {height:1%;}
+fieldset {padding-top:0;}
+input.text, input.title {background-color:#fff;border:1px solid #bbb;}
+input.text:focus, input.title:focus {border-color:#666;}
+input.text, input.title, textarea, select {margin:0.5em 0;}
+input.checkbox, input.radio {position:relative;top:.25em;}
+form.inline div, form.inline p {vertical-align:middle;}
+form.inline label {position:relative;top:-0.25em;}
+form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;}
+button, input.button {position:relative;top:0.25em;}
\ No newline at end of file

Propchange: libcloud/site/trunk/content/css/ie.css
------------------------------------------------------------------------------
    svn:executable = *

Added: libcloud/site/trunk/content/css/jquery.tweet.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/jquery.tweet.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/jquery.tweet.css (added)
+++ libcloud/site/trunk/content/css/jquery.tweet.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,41 @@
+.tweet,
+.query {
+  font: 120% Georgia, serif;
+}
+
+.tweet_list {
+-webkit-border-radius: 0.5em;
+-moz-border-radius: 0.5em;
+border-radius: 0.5em;
+list-style: none;
+margin: 0;
+padding: 0;
+overflow-y: hidden;
+}
+
+.tweet_list .awesome,
+.tweet_list .epic {
+text-transform: uppercase;
+}
+
+.tweet_list li {
+overflow-y: auto;
+overflow-x: hidden;
+padding: 0.5em;
+list-style-type: none;
+}
+
+.tweet_list li a {
+color: #0C717A;
+}
+
+.tweet_list .tweet_even {
+}
+
+.tweet_list .tweet_avatar {
+padding-right: .5em; float: left;
+}
+
+.tweet_list .tweet_avatar img {
+vertical-align: middle;
+}

Added: libcloud/site/trunk/content/css/libcloud.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/libcloud.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/libcloud.css (added)
+++ libcloud/site/trunk/content/css/libcloud.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,52 @@
+/*  color 100    80     50     20
+ *  aqua  007bff 3395ff 80bdff cce5ff
+ *  melon ff5050 ff7373 ffa7a7 ffdcdc
+ */
+* { margin:0; }
+html {}
+body { border-top:10px solid #007bff; border-bottom:10px solid #007bff; }
+#wrapper { width:800px; margin:0 auto; }
+
+a {color:inherit;}
+a:hover { color:#ff5050;}
+
+#header { padding:15px 0 0; margin:0 0 5px 0; }
+#banner { padding:5px 0; margin:0 0 5px 0; border-top:1px solid #ddd; border-bottom:1px solid #ddd; }
+#banner h2 { margin:0; color:#ff5050; line-height:30px; }
+#feature { }
+#feature blockquote { margin:0; padding:10px; font-size:11px;}
+#sidebar {}
+#main {}
+#footer { text-align: center; margin:20px 0 10px; border-top:1px solid #ddd; padding:5px 0;}
+
+#sidebar h3 { text-align:center; font-weight: bold; padding-top: 20px; padding-bottom: 10px; }
+
+h1 { color:#80bdff; font-size:50px; padding-left:90px; background:url(../images/libcloud_logo.png) left no-repeat; }
+h1 span { color:#333; font-size:32px; }
+h2 { color:#007bff;}
+#sidebar h2 { padding-left:10px; margin:0; cursor:pointer; background:#cce5ff; border-bottom:1px solid #fff; }
+#sidebar h2:hover { background:#80bdff;}
+#sidebar h2:hover a { color: #fff; }
+#sidebar .accordion { background:#f5f5f5; padding:10px; }
+#sidebar h2:focus, #sidebar h2.ui-state-active { outline:none; background:#80bdff; color:#fff;}
+#sidebar .accordion { }
+#sidebar h3 { color:#ff5050; margin-bottom:5px; }
+#sidebar h3 a:hover { color:#80bdff; }
+#sidebar #apache-logo, #apacheconna2013-logo { padding: 10px 0 0 0;}
+#sidebar #apache-logo, #apacheconna2013-logo, #twitter-logo, #get-it, #help { text-align: center; }
+
+div#main { font-size: 120%; }
+
+pre { font-family:"Consolas", "Courier New", "Courier", "Lucida Console", fixed-width; padding:3px; margin: 3px;white-space:pre;}
+code { font-family:"Consolas", "Courier New", "Courier", "Lucida Console", fixed-width; padding:3px; margin: 3px;border:1px solid #ddd; background:#f5f5f5; white-space:pre; color: #000000}
+
+.support-table td, #support-table th { width:14%; border-right:1px solid #fff; border-bottom:1px solid #ddd;}
+.support-table th { background:#f5f5f5; }
+.support-table td { }
+.support-table td.supported { background:#80bdff;}
+.support-table td.unsupported { background:#ffa7a7;}
+
+.byline { color:#007fbb; font-size:10px;}
+.center { text-align:center;}
+
+pre, code { margin-bottom: 2px; }

Propchange: libcloud/site/trunk/content/css/libcloud.css
------------------------------------------------------------------------------
    svn:executable = *

Added: libcloud/site/trunk/content/css/print.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/print.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/print.css (added)
+++ libcloud/site/trunk/content/css/print.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,30 @@
+/* -----------------------------------------------------------------------
+
+
+ Blueprint CSS Framework 0.9
+ http://blueprintcss.org
+
+   * Copyright (c) 2007-Present. See LICENSE for more info.
+   * See README for instructions on how to use Blueprint.
+   * For credits and origins, see AUTHORS.
+   * This is a compressed file. See the sources in the 'src' directory.
+
+----------------------------------------------------------------------- */
+
+/* print.css */
+body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
+.container {background:none;}
+hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
+hr.space {background:#fff;color:#fff;}
+h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
+code {font:.9em "Courier New", Monaco, Courier, monospace;}
+img {float:left;margin:1.5em 1.5em 1.5em 0;}
+a img {border:none;}
+p img.top {margin-top:0;}
+blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
+.small {font-size:.9em;}
+.large {font-size:1.1em;}
+.quiet {color:#999;}
+.hide {display:none;}
+a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
+a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}
\ No newline at end of file

Propchange: libcloud/site/trunk/content/css/print.css
------------------------------------------------------------------------------
    svn:executable = *

Added: libcloud/site/trunk/content/css/screen.css
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/css/screen.css?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/css/screen.css (added)
+++ libcloud/site/trunk/content/css/screen.css Tue Dec 31 14:19:12 2013
@@ -0,0 +1,242 @@
+/* reset.css */
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
+body {line-height:1.5;}
+table {border-collapse:separate;border-spacing:0;}
+caption, th, td {text-align:left;font-weight:normal;}
+table, td, th {vertical-align:middle;}
+blockquote:before, blockquote:after, q:before, q:after {content:"";}
+blockquote, q {quotes:"" "";}
+a img {border:none;}
+
+/* typography.css */
+body {font-size:75%;color:#222;background:#fff;font-family:"Trebuchet MS", "Helvetica Neue", Arial, Helvetica, sans-serif;}
+h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
+h1 {font-size:3em;line-height:1; }
+h2 {font-size:1.8em;margin-bottom:0.75em;}
+h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
+h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
+h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
+h6 {font-size:1em;font-weight:bold;}
+h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
+p {margin:0 0 1.5em;}
+p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
+p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
+a:focus, a:hover {color:#000;}
+a {color:#009;text-decoration:underline;}
+blockquote {margin:1.5em;color:#666;font-style:italic;}
+strong {font-weight:bold;}
+em, dfn {font-style:italic;}
+dfn {font-weight:bold;}
+sup, sub {line-height:0;}
+abbr, acronym {border-bottom:1px dotted #666;}
+address {margin:0 0 1.5em;font-style:italic;}
+del {color:#666;}
+pre {margin:1.5em 0;white-space:pre;}
+pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
+li ul, li ol {margin:0 1.5em;}
+ul, ol {margin:0 1.5em 1.5em 1.5em;}
+ul {list-style-type:disc;}
+ol {list-style-type:decimal;}
+dl {margin:0 0 1.5em 0;}
+dl dt {font-weight:bold;}
+dd {margin-left:1.5em;}
+table {margin-bottom:1.4em;width:100%;}
+th {font-weight:bold;}
+thead th {background:#c3d9ff;}
+th, td, caption {padding:4px 10px 4px 5px;}
+tr.even td {background:#e5ecf9;}
+tfoot {font-style:italic;}
+caption {background:#eee;}
+.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
+.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
+.hide {display:none;}
+.quiet {color:#666;}
+.loud {color:#000;}
+.highlight {background:#ff0;}
+.added {background:#060;color:#fff;}
+.removed {background:#900;color:#fff;}
+.first {margin-left:0;padding-left:0;}
+.last {margin-right:0;padding-right:0;}
+.top {margin-top:0;padding-top:0;}
+.bottom {margin-bottom:0;padding-bottom:0;}
+
+/* forms.css */
+label {font-weight:bold;}
+fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
+legend {font-weight:bold;font-size:1.2em;}
+input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
+input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
+input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
+input.text, input.title {width:300px;padding:5px;}
+input.title {font-size:1.5em;}
+textarea {width:390px;height:250px;padding:5px;}
+input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
+form.inline {line-height:3;}
+form.inline p {margin-bottom:0;}
+.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
+.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
+.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
+.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
+.error a {color:#8a1f11;}
+.notice a {color:#514721;}
+.success a {color:#264409;}
+
+/* grid.css */
+.container {width:950px;margin:0 auto;}
+.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
+.last, div.last {margin-right:0;}
+.span-1 {width:30px;}
+.span-2 {width:70px;}
+.span-3 {width:110px;}
+.span-4 {width:150px;}
+.span-5 {width:190px;}
+.span-6 {width:230px;}
+.span-7 {width:270px;}
+.span-8 {width:310px;}
+.span-9 {width:350px;}
+.span-10 {width:390px;}
+.span-11 {width:430px;}
+.span-12 {width:470px;}
+.span-13 {width:510px;}
+.span-14 {width:550px;}
+.span-15 {width:590px;}
+.span-16 {width:630px;}
+.span-17 {width:670px;}
+.span-18 {width:710px;}
+.span-19 {width:750px;}
+.span-20 {width:790px;}
+.span-21 {width:830px;}
+.span-22 {width:870px;}
+.span-23 {width:910px;}
+.span-24, div.span-24 {width:950px;margin:0;}
+input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;}
+input.span-1, textarea.span-1 {width:18px!important;}
+input.span-2, textarea.span-2 {width:58px!important;}
+input.span-3, textarea.span-3 {width:98px!important;}
+input.span-4, textarea.span-4 {width:138px!important;}
+input.span-5, textarea.span-5 {width:178px!important;}
+input.span-6, textarea.span-6 {width:218px!important;}
+input.span-7, textarea.span-7 {width:258px!important;}
+input.span-8, textarea.span-8 {width:298px!important;}
+input.span-9, textarea.span-9 {width:338px!important;}
+input.span-10, textarea.span-10 {width:378px!important;}
+input.span-11, textarea.span-11 {width:418px!important;}
+input.span-12, textarea.span-12 {width:458px!important;}
+input.span-13, textarea.span-13 {width:498px!important;}
+input.span-14, textarea.span-14 {width:538px!important;}
+input.span-15, textarea.span-15 {width:578px!important;}
+input.span-16, textarea.span-16 {width:618px!important;}
+input.span-17, textarea.span-17 {width:658px!important;}
+input.span-18, textarea.span-18 {width:698px!important;}
+input.span-19, textarea.span-19 {width:738px!important;}
+input.span-20, textarea.span-20 {width:778px!important;}
+input.span-21, textarea.span-21 {width:818px!important;}
+input.span-22, textarea.span-22 {width:858px!important;}
+input.span-23, textarea.span-23 {width:898px!important;}
+input.span-24, textarea.span-24 {width:938px!important;}
+.append-1 {padding-right:40px;}
+.append-2 {padding-right:80px;}
+.append-3 {padding-right:120px;}
+.append-4 {padding-right:160px;}
+.append-5 {padding-right:200px;}
+.append-6 {padding-right:240px;}
+.append-7 {padding-right:280px;}
+.append-8 {padding-right:320px;}
+.append-9 {padding-right:360px;}
+.append-10 {padding-right:400px;}
+.append-11 {padding-right:440px;}
+.append-12 {padding-right:480px;}
+.append-13 {padding-right:520px;}
+.append-14 {padding-right:560px;}
+.append-15 {padding-right:600px;}
+.append-16 {padding-right:640px;}
+.append-17 {padding-right:680px;}
+.append-18 {padding-right:720px;}
+.append-19 {padding-right:760px;}
+.append-20 {padding-right:800px;}
+.append-21 {padding-right:840px;}
+.append-22 {padding-right:880px;}
+.append-23 {padding-right:920px;}
+.prepend-1 {padding-left:40px;}
+.prepend-2 {padding-left:80px;}
+.prepend-3 {padding-left:120px;}
+.prepend-4 {padding-left:160px;}
+.prepend-5 {padding-left:200px;}
+.prepend-6 {padding-left:240px;}
+.prepend-7 {padding-left:280px;}
+.prepend-8 {padding-left:320px;}
+.prepend-9 {padding-left:360px;}
+.prepend-10 {padding-left:400px;}
+.prepend-11 {padding-left:440px;}
+.prepend-12 {padding-left:480px;}
+.prepend-13 {padding-left:520px;}
+.prepend-14 {padding-left:560px;}
+.prepend-15 {padding-left:600px;}
+.prepend-16 {padding-left:640px;}
+.prepend-17 {padding-left:680px;}
+.prepend-18 {padding-left:720px;}
+.prepend-19 {padding-left:760px;}
+.prepend-20 {padding-left:800px;}
+.prepend-21 {padding-left:840px;}
+.prepend-22 {padding-left:880px;}
+.prepend-23 {padding-left:920px;}
+div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
+div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
+.pull-1 {margin-left:-40px;}
+.pull-2 {margin-left:-80px;}
+.pull-3 {margin-left:-120px;}
+.pull-4 {margin-left:-160px;}
+.pull-5 {margin-left:-200px;}
+.pull-6 {margin-left:-240px;}
+.pull-7 {margin-left:-280px;}
+.pull-8 {margin-left:-320px;}
+.pull-9 {margin-left:-360px;}
+.pull-10 {margin-left:-400px;}
+.pull-11 {margin-left:-440px;}
+.pull-12 {margin-left:-480px;}
+.pull-13 {margin-left:-520px;}
+.pull-14 {margin-left:-560px;}
+.pull-15 {margin-left:-600px;}
+.pull-16 {margin-left:-640px;}
+.pull-17 {margin-left:-680px;}
+.pull-18 {margin-left:-720px;}
+.pull-19 {margin-left:-760px;}
+.pull-20 {margin-left:-800px;}
+.pull-21 {margin-left:-840px;}
+.pull-22 {margin-left:-880px;}
+.pull-23 {margin-left:-920px;}
+.pull-24 {margin-left:-960px;}
+.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
+.push-1 {margin:0 -40px 1.5em 40px;}
+.push-2 {margin:0 -80px 1.5em 80px;}
+.push-3 {margin:0 -120px 1.5em 120px;}
+.push-4 {margin:0 -160px 1.5em 160px;}
+.push-5 {margin:0 -200px 1.5em 200px;}
+.push-6 {margin:0 -240px 1.5em 240px;}
+.push-7 {margin:0 -280px 1.5em 280px;}
+.push-8 {margin:0 -320px 1.5em 320px;}
+.push-9 {margin:0 -360px 1.5em 360px;}
+.push-10 {margin:0 -400px 1.5em 400px;}
+.push-11 {margin:0 -440px 1.5em 440px;}
+.push-12 {margin:0 -480px 1.5em 480px;}
+.push-13 {margin:0 -520px 1.5em 520px;}
+.push-14 {margin:0 -560px 1.5em 560px;}
+.push-15 {margin:0 -600px 1.5em 600px;}
+.push-16 {margin:0 -640px 1.5em 640px;}
+.push-17 {margin:0 -680px 1.5em 680px;}
+.push-18 {margin:0 -720px 1.5em 720px;}
+.push-19 {margin:0 -760px 1.5em 760px;}
+.push-20 {margin:0 -800px 1.5em 800px;}
+.push-21 {margin:0 -840px 1.5em 840px;}
+.push-22 {margin:0 -880px 1.5em 880px;}
+.push-23 {margin:0 -920px 1.5em 920px;}
+.push-24 {margin:0 -960px 1.5em 960px;}
+.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
+.prepend-top {margin-top:1.5em;}
+.append-bottom {margin-bottom:1.5em;}
+.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
+hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
+hr.space {background:#fff;color:#fff;}
+.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
+.clearfix, .container {display:block;}
+.clear {clear:both;}

Propchange: libcloud/site/trunk/content/css/screen.css
------------------------------------------------------------------------------
    svn:executable = *

Added: libcloud/site/trunk/content/devinfo.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/devinfo.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/devinfo.mdtext (added)
+++ libcloud/site/trunk/content/devinfo.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,58 @@
+title: Developer Information
+
+## API Documentation
+
+Generated [API documentation](/apidocs/) is available.
+
+## Testing
+
+For information how to run the tests and how to generate the test coverage
+report, please see the [Testing](/testing.html) page.
+
+## Continuous Integration
+
+For continuous integration we use buildbot. You can find all the build reports
+[here](http://ci.apache.org/waterfall?builder=libcloud-trunk-py25&builder=libcloud-trunk-tox&builder=libcloud-site-staging).
+
+## Test Coverage
+
+Test coverage report is automatically generated after every commit and can be
+found at [http://ci.apache.org/projects/libcloud/coverage](http://ci.apache.org/projects/libcloud/coverage).
+
+## Mailing Lists
+
+* [users@libcloud.apache.org](mailto:users-subscribe@libcloud.apache.org) - Mailing list for general talk about Libcloud and other off-topic things ([archive](http://mail-archives.apache.org/mod_mbox/libcloud-users/))
+* [dev@libcloud.apache.org](mailto:dev-subscribe@libcloud.apache.org) - General mailing list for developers ([archive](http://mail-archives.apache.org/mod_mbox/libcloud-dev/))
+* [commits@libcloud.apache.org](mailto:commits-subscribe@libcloud.apache.org) - Commits messages go to this mailing list ([archive](http://mail-archives.apache.org/mod_mbox/libcloud-commits/))
+
+Old incubator mailing lists archives:
+
+* [incubator-libcloud](http://mail-archives.apache.org/mod_mbox/incubator-libcloud/)
+* [incubator-libcloud-commits](http://mail-archives.apache.org/mod_mbox/incubator-libcloud-commits/)
+
+## Issue Tracker
+
+* Apache JIRA: [https://issues.apache.org/jira/browse/LIBCLOUD](https://issues.apache.org/jira/browse/LIBCLOUD)
+
+## Main source code repository
+
+Project source code is stored in an Apache hosted git repository.
+
+* Repository: [https://git-wip-us.apache.org/repos/asf/libcloud.git](https://git-wip-us.apache.org/repos/asf/libcloud.git)
+* Gitweb: [https://git-wip-us.apache.org/repos/asf?p=libcloud.git](https://git-wip-us.apache.org/repos/asf?p=libcloud.git)
+
+## Website repository
+
+Website source code is stored in an Apache hosted svn repository. Source code
+is stored in an svn and not git repository, because Apache CMS uses svn-based
+[Svnpubsub](https://www.apache.org/dev/cms.html#svnpubsub) mechanism for
+distributing change notification to the web servers.
+
+* Repository: [https://svn.apache.org/repos/asf/libcloud/site/trunk](https://svn.apache.org/repos/asf/libcloud/site/trunk)
+* ViewVc: [https://svn.apache.org/viewvc/libcloud/site/](https://svn.apache.org/viewvc/libcloud/site/)
+
+## IRC, Twitter, Google+
+
+* [#libcloud](http://webchat.freenode.net?channels=libcloud&uio=d4) on Freenode
+* @libcloud: [http://twitter.com/libcloud](http://twitter.com/libcloud)
+* [+Apache Libcloud](https://plus.google.com/u/0/100590055818889164025/posts)

Added: libcloud/site/trunk/content/docs/components.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/components.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/components.mdtext (added)
+++ libcloud/site/trunk/content/docs/components.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,24 @@
+title: Components
+
+## Components ##
+
+Libcloud is composed of multiple components, currently those are:
+
+* [Compute](/docs/compute-overview.html) - libcloud.compute.*
+* [Storage](/docs/storage-overview.html) - libcloud.storage.*
+* [Load balancers](/docs/load-balancer-overview.html) - libcloud.loadbalancer.*
+* [DNS](/docs/dns-overview.html) - libcloud.dns.*
+
+Each component is relatively self-sustainable and exposes a simple and easy
+to use base API which works across all the supported providers.
+
+In places where it makes sense a component is also aware of other components.
+Good example of this is a `balancer_attach_node` method in the load balancer
+API. This method takes `Node` object from the compute API as an argument
+and automatically reads its first public IP address before adding a member
+to the load balancer.
+
+Besides the Base API some drivers also implement driver-specific or so called
+extension methods and arguments. Those methods implement functionality which
+is specific to a provider or a subset of providers. They can be easily recognized
+because they are prefixed with an `ex_`.
\ No newline at end of file

Added: libcloud/site/trunk/content/docs/compute-base-api.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/compute-base-api.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/compute-base-api.mdtext (added)
+++ libcloud/site/trunk/content/docs/compute-base-api.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,69 @@
+title: Compute -> Base API
+
+## Base API ##
+
+* [list_nodes](#list_nodes)
+* [list_images](#list_images)
+* [list_sizes](#list_sizes)
+* [list_locations](#list_locations)
+* [create_node](#create_node)
+* [deploy_node](#deploy_node)
+* [reboot_node](#reboot_node)
+* [destroy_node](#destroy_node)
+
+<h3 id="list_nodes">list_nodes</h3>
+
+**Method signature**:
+[driver.list_nodes()](/apidocs/current/libcloud.compute.base.NodeDriver.html#list_nodes)  
+**Description**: Return a list of all the nodes belonging to your account.  
+
+<h3 id="list_images">list_images</h3>
+
+**Method signature**:
+[driver.list_images()](/apidocs/current/libcloud.compute.base.NodeDriver.html#list_images)  
+**Description**: Return a list of all the available images.
+
+<h3 id="list_sizes">list_sizes</h3>
+
+**Method signature**:
+[driver.list_sizes()](/apidocs/current/libcloud.compute.base.NodeDriver.html#list_sizes)  
+**Description**: Return a list of all the available sizes.
+
+<h3 id="list_locations">list_locations</h3>
+
+**Method signature**:
+[driver.list_locations()](/apidocs/current/libcloud.compute.base.NodeDriver.html#list_locations)  
+**Description**: Return a list of all the available locations.
+
+<h3 id="create_node">create_node</h3>
+
+**Method signature**:
+[driver.create_node(name, size, image)](/apidocs/current/libcloud.compute.base.NodeDriver.html#create_node)  
+**Description**: Create a new node instance.
+
+Keep in mind that a lot drivers also take additional optional keyword arguments
+which are documented in the each driver API docs page.
+
+<h3 id="deploy_node">deploy_node</h3>
+
+**Method signature**: [driver.deploy_node(name, size, image,
+deploy)](/apidocs/current/libcloud.compute.base.NodeDriver.html#deploy_node)  
+**Description**: Create a new node instance and run a deployment script on it.
+More about deployment functionality can be found on the [Deployment
+page](/docs/compute-deployment.html).
+
+<h3 id="reboot_node">reboot_node</h3>
+
+**Method signature**:
+[driver.reboot_node(node)](/apidocs/current/libcloud.compute.base.NodeDriver.html#reboot_node), 
+[node.reboot()](/apidocs/current/libcloud.compute.base.Node.html#reboot)  
+**Description**: Restart a node.
+
+<h3 id="destroy_node">destroy_node</h3>
+
+**Method signature**:
+[driver.destroy_node(node)](/apidocs/current/libcloud.compute.base.NodeDriver.html#destroy_node),
+[node.destroy()](/apidocs/current/libcloud.compute.base.Node.html#destroy)  
+**Description**: Destroy a running or stopped node. This operation will in most cases also
+destroy all the data (disk, snapshots, etc.) associated with this node so
+be careful when you use it.

Added: libcloud/site/trunk/content/docs/compute-deployment.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/compute-deployment.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/compute-deployment.mdtext (added)
+++ libcloud/site/trunk/content/docs/compute-deployment.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,89 @@
+title: Compute -> Deployment
+
+## Deployment ##
+
+*This functionality depends on the `paramiko` library which is not installed by default when installing `apache-libcloud` package. You can be install it manually using pip - `pip install paramiko`.*
+
+Deployment functionality allows you to create a node and after it has been
+started install an SSH key and / or run arbitrary shell commands on it. It
+works by first calling `create_node` and then after the node has been
+fully started SSHing into the node and running a shell script on it.
+
+We assume that a node has been fully started when a returned state is
+`NodeState.RUNNING` and when it has a public IP address assigned.
+
+Keep in mind that Libcloud is not a replacement for a configuration management
+tool so it shouldn't be used as such.
+
+### Provider Images and Default Usernames ###
+
+Libcloud uses `root` username when running a command on the remote server. 
+A lot of images use a different default username (e.g. `ubuntu` for some ubuntu AWS AMI's, `bitnatmi` for some Bitnami AWS AMI's, etc.).
+
+This means deployment will fail if you don't specify a correct username using the `ssh_username` keyword argument like it's shown in the example 2.
+
+### Example 1 - Deploying a Rackspace Node using password authentication and installing your SSH key and Puppet on it ###
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+    from libcloud.compute.deployment import MultiStepDeployment, ScriptDeployment, SSHKeyDeployment
+    import os
+
+    RACKSPACE_USER = 'your username'
+    RACKSPACE_KEY = 'your key'
+
+    Driver = get_driver(Provider.RACKSPACE)
+    conn = Driver(RACKSPACE_USER, RACKSPACE_KEY)
+
+    # read your public key in
+    # Note: This key will be added to the authorized keys for the root user
+    # (/root/.ssh/authorized_keys)
+    sd = SSHKeyDeployment(open(os.path.expanduser("~/.ssh/id_rsa.pub")).read())
+    # a simple script to install puppet post boot, can be much more complicated.
+    script = ScriptDeployment("apt-get -y install puppet")
+    # a task that first installs the ssh key, and then runs the script
+    msd = MultiStepDeployment([sd, script])
+
+    images = conn.list_images()
+    sizes = conn.list_sizes()
+
+    # deploy_node takes the same base keyword arguments as create_node.
+    node = conn.deploy_node(name='test', image=images[0], size=sizes[0], deploy=msd)
+    # <Node: uuid=..., name=test, state=3, public_ip=['1.1.1.1'], provider=Rackspace ...>
+    # the node is now booted, with your ssh key and puppet installed.
+
+
+### Example 2 - Deploying an EC2 Node using SSH key authentication and installing Puppet on it ###
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+    from libcloud.compute.deployment import ScriptDeployment
+
+    EC2_ACCESS_ID = 'your access key'
+    EC2_SECRET = 'your secret'
+
+    Driver = get_driver(Provider.EC2_US_EAST)
+    conn = Driver(EC2_ACCESS_ID, EC2_SECRET)
+
+    # a simple script to install puppet post boot, can be much more complicated.
+    script = ScriptDeployment("apt-get -y install puppet")
+
+    # Ubuntu 10.04
+    image = [i for i in driver.list_images() if i.id =='ami-09965860' ][0]
+    size = [s for s in driver.list_sizes() if s.id == 't1.micro'][0]
+
+    # Name of the SSH key which is automatically installed on the server.
+    # Key needs to be generated and named in the AWS control panel.
+    key_name = 'my_default'
+
+    # Path to the private key created using the AWS control panel.
+    key_path = '/home/user/path/to/key.pem'
+
+    # deploy_node takes the same base keyword arguments as create_node.
+    node = conn.deploy_node(name='test', image=image, size=size, deploy=script,
+                            ssh_username='ubuntu', ssh_key=key_path,
+                            ex_keyname=key_name)
+    # <Node: uuid=..., name=test, state=3, public_ip=['1.1.1.1'], provider=EC2 ...>
+    # the node is now booted, with puppet installed.
\ No newline at end of file

Added: libcloud/site/trunk/content/docs/compute-examples.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/compute-examples.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/compute-examples.mdtext (added)
+++ libcloud/site/trunk/content/docs/compute-examples.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,226 @@
+title: Compute -> Examples
+
+## Examples
+
+* [Create an OpenStack node using a local OpenStack provider](#example-3-openstack-node-using-local-openstack)
+* [Create an OpenStack node using trystack.org provider](#example-1-openstack-node-using-trystack)
+* [Create a VMware vCloud v1.5 node using generic provider](#example-2-vcloud-generic-provider)
+
+<h3 id="example-3-openstack-node-using-local-openstack">Create an OpenStack node using a local OpenStack provider</h3>
+
+<p>This example shows how to create a node using a local OpenStack installation.
+Don't forget to replace your_auth_username, your_auth_password and
+ex_force_auth_url with the correct values specific to your installation.</p>
+
+<p>Note: This example works with Libcloud 0.9.0 and above.</p>
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+
+    import libcloud.security
+
+    # This assumes you don't have SSL set up.
+    # Note: Code like this poses a security risk (MITM attack) and
+    # that's the reason why you should never use it for anything else
+    # besides testing. You have been warned.
+    libcloud.security.VERIFY_SSL_CERT = False
+
+    OpenStack = get_driver(Provider.OPENSTACK)
+    driver = OpenStack('your_auth_username', 'your_auth_password',
+                       ex_force_auth_url='http://192.168.1.101:5000/v2.0',
+                       ex_force_auth_version='2.0_password')
+
+<h3 id="example-1-openstack-node-using-trystack">Create an OpenStack node using trystack.org provider</h3>
+
+<p><a href="https://trystack.org/">trystack.org</a> allows users to try out OpenStack for free.
+This example demonstrates how to launch an OpenStack node on the trystack.org provider using a generic
+OpenStack driver.</p>
+
+<p>Note: This example works with Libcloud 0.9.0 and above.</p>
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+
+    import libcloud.security
+
+    # At the time this example was written, https://nova-api.trystack.org:5443
+    # was using a certificate issued by a Certificate Authority (CA)
+    # which is not included in the default Ubuntu certificates bundle (ca-certificates).
+    # Note: Code like this poses a security risk (MITM attack) and
+    # that's the reason why you should never use it for anything else
+    # besides testing. You have been warned.
+    libcloud.security.VERIFY_SSL_CERT = False
+
+    OpenStack = get_driver(Provider.OPENSTACK)
+
+    driver = OpenStack('your username', 'your password',
+                       ex_force_auth_url='https://nova-api.trystack.org:5443/v2.0',
+                       ex_force_auth_version='2.0_password')
+
+    nodes = driver.list_nodes()
+
+    images = driver.list_images()
+    sizes = driver.list_sizes()
+    size = [s for s in sizes if s.ram == 512][0]
+    image = [i for i in images if i.name == 'natty-server-cloudimg-amd64'][0]
+
+    node = driver.create_node(name='test node', image=image, size=size)
+
+
+<h3 id="example-2-vcloud-generic-provider">Create a VMware vCloud v1.5 node using generic provider</h3>
+
+<p>This example demonstrates how to launch a VMware vCloud v1.5 node on a generic provider such as a test lab.</p>
+
+<p>Note: This example works with Libcloud version 0.10.1 and above.</p>
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+
+    import libcloud.security
+
+	# Skip this step if you are launching nodes on an official vCloud
+	# provider. It is intended only for self signed SSL certs in 
+	# vanilla vCloud Director v1.5 test deployments.
+    # Note: Code like this poses a security risk (MITM attack) and
+    # that's the reason why you should never use it for anything else
+    # besides testing. You have been warned.
+    libcloud.security.VERIFY_SSL_CERT = False
+
+    vcloud = get_driver(Provider.VCLOUD)
+
+    driver = vcloud('you username@organisation', 'your password',
+                    host='vcloud.local', api_version='1.5')
+
+    # List all instantiated vApps
+    nodes = driver.list_nodes()
+    # List all VMs within the first vApp instance
+    print nodes[0].extra['vms']
+
+    # List all available vApp Templates
+    images = driver.list_images()
+    image = [i for i in images if i.name == 'natty-server-cloudimg-amd64'][0]
+
+	# Create node with minimum set of parameters
+    node = driver.create_node(name='test node 1', image=image)
+    # Destroy the node
+    driver.destroy_node(node)
+
+    # Create node without deploying and powering it on
+    node = driver.create_node(name='test node 2', image=image, ex_deploy=False)
+
+    # Create node with custom CPU & Memory values
+    node = driver.create_node(name='test node 3', image=image, ex_vm_cpu=3, ex_vm_memory=1024)
+
+    # Create node with customised networking parameters (eg. for OVF imported images)
+    node = driver.create_node(name='test node 4', image=image,
+                              ex_vm_network='your vm net name', ex_network='your org net name',
+                              ex_vm_fence='bridged', ex_vm_ipmode='DHCP')
+
+    # Create node in a custom virtual data center
+    node = driver.create_node(name='test node 4', image=image, ex_vdc='your vdc name')
+
+    # Create node with guest OS customisation script to be run at first boot
+    node = driver.create_node(name='test node 5', image=image,
+                              ex_vm_script='filesystem path to your script')
+* [Create an OpenStack node using trystack.org provider](#example-1-openstack-node-using-trystack)
+* [Create a VMware vCloud v1.5 node using generic provider](#example-2-vcloud-generic-provider)
+
+<h3 id="example-1-openstack-node-using-local-openstack">Create an OpenStack node using a local OpenStack provider</h3>
+
+<h3 id="example-1-openstack-node-using-trystack">Create an OpenStack node using trystack.org provider</h3>
+
+<p><a href="https://trystack.org/">trystack.org</a> allows users to try out OpenStack for free.
+This example demonstrates how to launch an OpenStack node on the trystack.org provider using a generic
+OpenStack driver.</p>
+
+<p>Note: This example works with Libcloud 0.9.0 and above.</p>
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+
+    import libcloud.security
+
+    # At the time this example was written, https://nova-api.trystack.org:5443
+    # was using a certificate issued by a Certificate Authority (CA)
+    # which is not included in the default Ubuntu certificates bundle (ca-certificates).
+    # Note: Code like this poses a security risk (MITM attack) and
+    # that's the reason why you should never use it for anything else
+    # besides testing. You have been warned.
+    libcloud.security.VERIFY_SSL_CERT = False
+
+    OpenStack = get_driver(Provider.OPENSTACK)
+
+    driver = OpenStack('your username', 'your password',
+                       ex_force_auth_url='https://nova-api.trystack.org:5443/v2.0',
+                       ex_force_auth_version='2.0_password')
+
+    nodes = driver.list_nodes()
+
+    images = driver.list_images()
+    sizes = driver.list_sizes()
+    size = [s for s in sizes if s.ram == 512][0]
+    image = [i for i in images if i.name == 'natty-server-cloudimg-amd64'][0]
+
+    node = driver.create_node(name='test node', image=image, size=size)
+
+
+<h3 id="example-2-vcloud-generic-provider">Create a VMware vCloud v1.5 node using generic provider</h3>
+
+<p>This example demonstrates how to launch a VMware vCloud v1.5 node on a generic provider such as a test lab.</p>
+
+<p>Note: This example works with Libcloud version 0.10.1 and above.</p>
+
+    ::python
+    from libcloud.compute.types import Provider
+    from libcloud.compute.providers import get_driver
+
+    import libcloud.security
+
+	# Skip this step if you are launching nodes on an official vCloud
+	# provider. It is intended only for self signed SSL certs in 
+	# vanilla vCloud Director v1.5 test deployments.
+    # Note: Code like this poses a security risk (MITM attack) and
+    # that's the reason why you should never use it for anything else
+    # besides testing. You have been warned.
+    libcloud.security.VERIFY_SSL_CERT = False
+
+    vcloud = get_driver(Provider.VCLOUD)
+
+    driver = vcloud('you username@organisation', 'your password',
+                    host='vcloud.local', api_version='1.5')
+
+    # List all instantiated vApps
+    nodes = driver.list_nodes()
+    # List all VMs within the first vApp instance
+    print nodes[0].extra['vms']
+
+    # List all available vApp Templates
+    images = driver.list_images()
+    image = [i for i in images if i.name == 'natty-server-cloudimg-amd64'][0]
+
+	# Create node with minimum set of parameters
+    node = driver.create_node(name='test node 1', image=image)
+    # Destroy the node
+    driver.destroy_node(node)
+
+    # Create node without deploying and powering it on
+    node = driver.create_node(name='test node 2', image=image, ex_deploy=False)
+
+    # Create node with custom CPU & Memory values
+    node = driver.create_node(name='test node 3', image=image, ex_vm_cpu=3, ex_vm_memory=1024)
+
+    # Create node with customised networking parameters (eg. for OVF imported images)
+    node = driver.create_node(name='test node 4', image=image,
+                              ex_vm_network='your vm net name', ex_network='your org net name',
+                              ex_vm_fence='bridged', ex_vm_ipmode='DHCP')
+
+    # Create node in a custom virtual data center
+    node = driver.create_node(name='test node 4', image=image, ex_vdc='your vdc name')
+
+    # Create node with guest OS customisation script to be run at first boot
+    node = driver.create_node(name='test node 5', image=image,
+                              ex_vm_script='filesystem path to your script')
\ No newline at end of file

Added: libcloud/site/trunk/content/docs/compute-overview.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/compute-overview.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/compute-overview.mdtext (added)
+++ libcloud/site/trunk/content/docs/compute-overview.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,24 @@
+title: Compute -> Overview
+
+## Overview ##
+
+Compute component is the oldest one and allows you to manage cloud and virtual
+servers offered by different providers such as Amazon, Rackspace, Linode and
+more than [20 others](/supported_providers.html).
+
+Besides managing the servers this component also allows you to run deployment
+scripts on the newly created servers. Deployment or so called "bootstrap"
+scripts allow you to execute arbitrary shell command. This functionality is usually
+used to prepare your freshly created server and install your SSH key and some
+kind of configuration management tool (Puppet / Chef / cfengine) on it.
+
+### Terminology ###
+
+* **Node** - represents a cloud or virtual server.
+* **NodeSize** - represents node hardware configuration. Usually this is amount
+of the available RAM, bandwidth, CPU speed and disk size. Most of the drivers
+also expose hourly price (in dollars) for the Node of this size.
+* **NodeImage** - represents an operating system image.
+* **NodeLocation** - represents a server physical location.
+* **NodeState** - represents a node state. Standard states are: running,
+rebooting, terminated, pending and unknown.

Added: libcloud/site/trunk/content/docs/debugging.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/debugging.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/debugging.mdtext (added)
+++ libcloud/site/trunk/content/docs/debugging.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,37 @@
+title: Debugging
+
+## Debugging ##
+
+Libcloud has a special debug mode which when enabled outputs all the outgoing
+HTTP requests and all the incoming HTTP responses. Output also includes cURL
+commands which can be used to re-produce the requests.
+
+When this mode is enabled and if `paramiko` library is installed (used for
+deployment), paramiko library log level is also set to `DEBUG` which helps with
+debugging the deployment issues.
+
+To enable it, set `LIBCLOUD_DEBUG` environment variable and make it point to a
+file where the output should be saved.
+
+For example if you want the output to be logged to the standard error (on Unix)
+you can set it to `/dev/stderr` - `LIBCLOUD_DEBUG=/dev/stderr python my_script.py`.
+
+Example output:
+
+    # -------- begin 4431824872 request ----------
+    curl -i -X GET -H 'Host: s3.amazonaws.com' -H 'X-LC-Request-ID: 4431824872' -H 'Content-Length: 0' -H 'User-Agent: libcloud/0.6.0-beta1 (Amazon S3 (standard))' 'https://s3.amazonaws.com:443/?AWSAccessKeyId=foo&Signature=bar'
+    # -------- begin 4431824872:4431825232 response ----------
+    HTTP/1.1 200 OK
+    X-Amz-Id-2: 1234
+    Server: AmazonS3
+    Transfer-Encoding: chunked
+    X-Amz-Request-Id: FFFFFFFFFF
+    Date: Tue, 01 Nov 2011 22:29:11 GMT
+    Content-Type: application/xml
+
+    171
+    <?xml version="1.0" encoding="UTF-8"?>
+    <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>sada8932dsa8d30i</ID><DisplayName>kami</DisplayName></Owner><Buckets><Bucket><Name>test34324323</Name><CreationDate>2011-11-01T22:17:23.000Z</CreationDate></Bucket></Buckets></ListAllMyBucketsResult>
+    0
+
+    # -------- end 4431824872:4431825232 response ----------

Added: libcloud/site/trunk/content/docs/dns-base-api.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/dns-base-api.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/dns-base-api.mdtext (added)
+++ libcloud/site/trunk/content/docs/dns-base-api.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,100 @@
+title: DNS -> Base API
+
+## Base API ##
+
+* [list_record_types](#list_record_types)
+* [list_zones](#list_zones)
+* [list_records](#list_records)
+* [get_zone](#get_zone)
+* [get_record](#get_record)
+* [create_zone](#create_zone)
+* [update_zone](#update_zone)
+* [create_record](#create_record)
+* [update_record](#update_record)
+* [delete_zone](#delete_zone)
+* [delete_record](#delete_record)
+
+<h3 id="list_record_types">list_record_types</h3>
+
+**Method signature**:
+[driver.list_record_types()](/apidocs/current/libcloud.dns.base.DNSDriver.html#list_record_types)  
+**Description**: Return a list of record types supported by the provider.
+
+
+<h3 id="list_zones">list_zones</h3>
+
+**Method signature**:
+[driver.list_zones()](/apidocs/current/libcloud.dns.base.DNSDriver.html#list_zones)  
+**Description**: Return a list of the Zone objects belonging to your account.
+
+<h3 id="list_records">list_records</h3>
+
+**Method signature**:
+[driver.list_records(zone)](/apidocs/current/libcloud.dns.base.DNSDriver.html#list_record),
+[zone.list_records()](/apidocs/current/libcloud.dns.base.Zone.html#list_record)  
+**Description**: Return a list of Record objects for the specified zone.
+
+<h3 id="get_zone">get_zone</h3>
+
+**Method signature**:
+[driver.get_zone(zone_id)](/apidocs/current/libcloud.dns.base.DNSDriver.html#get_zone)  
+**Description**: Return a Zone instance. This method is useful if you know the
+zone id and want to perform operations on it.
+
+<h3 id="get_record">get_record</h3>
+
+**Method signature**:
+[driver.get_record(zone_id, record_id)](/apidocs/current/libcloud.dns.base.DNSDriver.html#get_record)  
+**Description**: Return a Record instance. This method is useful if you know the
+zone and record id and want to perform operations on the record.
+
+<h3 id="create_zone">create_zone</h3>
+
+**Method signature**:
+[driver.create_zone(domain, type='master', ttl, extra)](/apidocs/current/libcloud.dns.base.DNSDriver.html#create_zone)  
+**Description**: Create a new zone.
+
+Some of the providers require extra attributes to be provided when creating a
+zone. Good example of this is a Rackspace Cloud DNS API which requires you to
+specify 'email' key in the otherwise optional `extra` dictionary.
+
+<h3 id="update_zone">update_zone</h3>
+
+**Method signature**:
+[driver.update_zone(zone, domain, type='master', ttl=None, extra=None)](/apidocs/current/libcloud.dns.base.DNSDriver.html#update_zone),
+[zone.update(domain, type='master', ttl=None, extra=None)](/apidocs/current/libcloud.dns.base.Zone.html#update)  
+**Description**: Update an existing zone. Which attributes can be updated
+depends on the provider. Most of the providers don't allow you to change the
+actual domain name. If you want to change the domain name, you need to first
+delete a zone, create a new one with the wanted domain name and then re-create
+all the old records.
+
+<h3 id="create_record">create_record</h3>
+
+**Method signature**:
+[driver.create_record(name, zone, type, data, extra=None)](/apidocs/current/libcloud.dns.base.DNSDriver.html#create_record),
+[zone.create_record(name, type, data, extra=None)](/apidocs/current/libcloud.dns.base.Zone.html#create_record)  
+**Description**: Create a new record. To view a list of supported records by the
+provider you can use the list_record_types method.
+
+<h3 id="update_record">update_record</h3>
+
+**Method signature**:
+[driver.update_record(record, name, type, data, extra)](/apidocs/current/libcloud.dns.base.DNSDriver.html#update_record),
+[record.update_record(name, type, data, extra)](/apidocs/current/libcloud.dns.base.Record.html#update)  
+**Description**: Update an existing record. Similar to the update_zone which
+attributes can be updated depends on the provider.
+
+<h3 id="delete_zone">delete_zone</h3>
+
+**Method signature**:
+[driver.delete_zone(zone)](/apidocs/current/libcloud.dns.base.DNSDriver.html#delete_zone),
+[zone.delete()](/apidocs/current/libcloud.dns.base.Zone.html#zone)  
+**Description**: Delete a zone.
+
+<h3 id="delete_record">delete_record</h3>
+
+**Method signature**:
+[driver.delete_rcord(record)](/apidocs/current/libcloud.dns.base.DNSDriver.html#delete_record),
+[record.delete(record)](/apidocs/current/libcloud.dns.base.Record.html#delete)  
+**Description**: Delete a record.

Added: libcloud/site/trunk/content/docs/dns-examples.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/dns-examples.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/dns-examples.mdtext (added)
+++ libcloud/site/trunk/content/docs/dns-examples.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,51 @@
+title: DNS -> Examples
+
+## Examples
+
+* [Create an A record for all your Rackspace nodes](#create-a-record-for-all-rackspace-nodes)
+
+<h3 id="create-a-record-for-all-rackspace-nodes">Create an 'A' record for all your nodes</h3>
+
+This example creates a  new "mydomain2.com" zone at Zerigo and an A record for all your
+Rackspace nodes. Value for the A record is the Node's first public IP address.
+
+    ::python
+    from pprint import pprint
+
+    from libcloud.compute.providers import get_driver as get_compute_driver
+    from libcloud.compute.types import Provider as ComputeProvider
+    from libcloud.dns.providers import get_driver as get_dns_driver
+    from libcloud.dns.types import Provider as DNSProvider, RecordType
+
+    CREDENTIALS_RACKSPACE = ('username', 'api key')
+    CREDENTIALS_ZERIGO = ('email', 'api key')
+
+    Cls = get_compute_driver(ComputeProvider.RACKSPACE)
+    compute_driver = Cls(*CREDENTIALS_RACKSPACE)
+
+    Cls = get_dns_driver(DNSProvider.ZERIGO)
+    dns_driver = Cls(*CREDENTIALS_ZERIGO)
+
+    # Retrieve all the nodes
+    nodes = compute_driver.list_nodes()
+
+    # Create a new zone
+    zone = dns_driver.create_zone(domain='mydomain2.com')
+
+    created = []
+    for node in nodes:
+        name = node.name
+
+        ips = node.public_ip
+
+        if not ips:
+            continue
+
+        ip = ips[0]
+
+        print 'Creating %s record (data=%s) for node %s' % ('A', ip, name)
+        record = zone.create_record(name=name, type=RecordType.A, data=ip)
+        created.append(record)
+
+    print 'Done, created %d records' % (len(created))
+    pprint(created)

Added: libcloud/site/trunk/content/docs/dns-overview.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/dns-overview.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/dns-overview.mdtext (added)
+++ libcloud/site/trunk/content/docs/dns-overview.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,17 @@
+title: DNS -> Overview
+
+## Overview ##
+
+DNS API allows you to manage DNS as A Service and services such as
+[Zerigo DNS][1], [Rackspace Cloud DNS][2] and
+[others](/supported_providers.html).
+
+### Terminology ###
+
+* **Zone** - represents a DNS zone or so called domain.
+* **Record** - represents a DNS record. Each record belongs to a Zone and has a
+record type and data field. Data depends on the record type.
+* **RecordType** - represents a record type (A, AAAA, MX, TXT, etc.).
+
+[1]: http://www.zerigo.com/managed-dns
+[2]: http://www.rackspace.com/cloud/cloud_hosting_products/dns/

Added: libcloud/site/trunk/content/docs/index.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/index.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/index.mdtext (added)
+++ libcloud/site/trunk/content/docs/index.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,15 @@
+title: Home
+
+## Welcome ##
+
+Welcome to the Apache Libcloud documentation.
+
+Documentation is logically organized and grouped by components. To begin
+browsing the documentation, click on the component in the menu on the left.
+
+If you have questions, suggestions or corrections, feel free to
+[contact us](/devinfo.html).
+
+Documentation is also freely available in the Markdown format in our [SVN
+repository](/devinfo.html) which means anyone can clone the repository and help us improve
+it.

Added: libcloud/site/trunk/content/docs/load-balancer-base-api.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/load-balancer-base-api.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/load-balancer-base-api.mdtext (added)
+++ libcloud/site/trunk/content/docs/load-balancer-base-api.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,80 @@
+title: Load Balancer -> Base API
+
+## Base API ##
+
+* [list_protocols](#list_protocols)
+* [list_balancers](#list_balancers)
+* [balancer_list_members](#balancer_list_members)
+* [get_balancer](#get_balancer)
+* [create_balancer](#create_balancer)
+* [destroy_balancer](#destroy_balancer)
+* [balancer_attach_member](#balancer_attach_member)
+* [balancer_attach_compute_node](#balancer_attach_compute_node)
+* [balancer_detach_member](#balancer_detach_member)
+
+<h3 id="list_protocols">list_protocols</h3>
+
+**Method signature**:
+[driver.list_protocols()](/apidocs/current/libcloud.loadbalancer.base.Driver.html#list_protocols)  
+**Description**: Return a list of protocols which can be load balanced 
+and are supported by the provider.  
+
+<h3 id="list_balancers">list_balancers</h3>
+
+**Method signature**:
+[driver.list_balancers()](/apidocs/current/libcloud.loadbalancer.base.Driver.html#list_balancers)  
+**Description**: Return a list of the available LoadBalancer instances.  
+
+
+<h3 id="balancer_list_members">balancer_list_members</h3>
+
+**Method signature**:
+[driver.balancer_list_members(balancer)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#balancer_list_members),
+[balancer.list_members()](/apidocs/current/libcloud.loadbalancer.base.LoadBalancer.html#list_members)  
+**Description**: Return a list of the Member objects which are attached to this
+load balancer.
+
+<h3 id="get_balancer">get_balancer</h3>
+
+**Method signature**:
+[driver.get_balancer(balancer_id)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#get_balancer)  
+**Description**: Return a LoadBalancer instance. This method is useful if you
+know the load balancer id and want to obtain a reference to perform operations with
+it.
+
+<h3 id="create_balancer">create_balancer</h3>
+
+**Method signature**:
+[driver.create_balancer(name, port, protocol, algorithm, members)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#create_balancer)  
+**Description**: Create a new load balancer and optionally attach initial
+members to it.
+
+<h3 id="destroy_balancer">destroy_balancer</h3>
+
+**Method signature**:
+[driver.destroy_balancer(balancer)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#destroy_balancer),
+[balancer.destroy()](/apidocs/current/libcloud.loadbalancer.base.LoadBalancer.html#destroy)  
+**Description**: Destroy a load balancer.
+
+<h3 id="balancer_attach_member">balancer_attach_member</h3>
+
+**Method signature**:
+[driver.balancer_attach_member(balancer, member)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#balancer_attach_member),
+[balancer.attach_member(member)](/apidocs/current/libcloud.loadbalancer.base.LoadBalancer.html#attach_member)  
+**Description**: Add a new member to the load balancer.  
+
+<h3 id="balancer_attach_compute_node">balancer_attach_compute_node</h3>
+
+**Method signature**:
+[driver.balancer_attach_compute_node(balancer, node)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#balancer_attach_compute_node),
+[balancer.attach_compute_node(node)](/apidocs/current/libcloud.loadbalancer.base.LoadBalancer.html#attach_compute_node)  
+**Description**: Add a new member to the load balancer. This method expected a
+Node object from the compute API as an argument. It automatically reads Node's
+first public IP address before adding a new member.
+
+<h3 id="balancer_detach_member">balancer_detach_member</h3>
+
+**Method signature**:
+[driver.balancer_detach_member(balancer, member)](/apidocs/current/libcloud.loadbalancer.base.Driver.html#balancer_detach_member),
+[balancer.detach_member(member)](/apidocs/current/libcloud.loadbalancer.base.LoadBalancer.html#detach_member)  
+**Description**: Remove a member from the load balancer.

Added: libcloud/site/trunk/content/docs/load-balancer-examples.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/load-balancer-examples.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/load-balancer-examples.mdtext (added)
+++ libcloud/site/trunk/content/docs/load-balancer-examples.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,46 @@
+title: Load Balancer -> Examples
+
+## Examples
+
+* [Create a Load Balancer with two members and wait for it to become ready](#example-1-create-lb-and-wait-for-ready)
+
+<h3 id="example-1-create-lb-and-wait-for-ready">Create a Load Balancer with two members and
+wait for it to become ready</h3>
+
+    ::python
+    import time
+    from pprint import pprint
+
+    from libcloud.loadbalancer.base import Member, Algorithm
+    from libcloud.loadbalancer.types import State, Provider
+    from libcloud.loadbalancer.providers import get_driver
+
+
+    driver = get_driver(Provider.RACKSPACE_US)('username', 'api key')
+
+    name = 'test-lb'
+    members = (Member(None, '192.168.86.1', 8080),
+               Member(None, '192.168.86.2', 8080))
+
+    print 'Creating load balancer'
+    new_balancer = driver.create_balancer(name=name,
+                                          algorithm=Algorithm.ROUND_ROBIN,
+                                          port=80, protocol='http',
+                                          members=members)
+
+    print 'Waiting for load balancer to become ready...'
+    while True:
+        balancer = driver.get_balancer(balancer_id=new_balancer.id)
+
+        if balancer.state == State.RUNNING:
+            break
+
+        print 'Load balancer not ready yet, sleeping 20 seconds...'
+        time.sleep(20)
+
+    print 'Load balancer is ready'
+    pprint(balancer)
+
+    # fetch list of members
+    members = balancer.list_members()
+    pprint(members)

Added: libcloud/site/trunk/content/docs/load-balancer-overview.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/load-balancer-overview.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/load-balancer-overview.mdtext (added)
+++ libcloud/site/trunk/content/docs/load-balancer-overview.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,18 @@
+title: Load Balancers -> Overview
+
+## Overview ##
+
+Load Balancer API allows you to manage Load Balancers as a service and services such as
+[Rackspace Cloud Load Balancers][1], [GoGrid Load Balancers][2] and [Ninefold
+Load Balancers][3].
+
+### Terminology ###
+
+* **LoadBalancer** - represents a load balancer instance.
+* **Member** - represents a load balancer member.
+* **Algorithm** - represents a load balancing algorithm (round-robin, random,
+* etc.).
+
+[1]: http://www.rackspace.com/cloud/cloud_hosting_products/loadbalancers/
+[2]: http://www.gogrid.com/cloud-hosting/load-balancers.php
+[3]: https://ninefold.com/support/display/SPT/Load+Balancing

Added: libcloud/site/trunk/content/docs/ssl-certificate-validation.mdtext
URL: http://svn.apache.org/viewvc/libcloud/site/trunk/content/docs/ssl-certificate-validation.mdtext?rev=1554515&view=auto
==============================================================================
--- libcloud/site/trunk/content/docs/ssl-certificate-validation.mdtext (added)
+++ libcloud/site/trunk/content/docs/ssl-certificate-validation.mdtext Tue Dec 31 14:19:12 2013
@@ -0,0 +1,26 @@
+title: SSL Certificate Validation
+
+## SSL Certificate Validation
+
+When establishing a secure connection to a cloud provider endpoint, Libcloud
+verifies server SSL certificate. By default, Libcloud searches paths listed in
+`libcloud.security.CA_CERTS_PATH` for CA certificate files.
+
+`CA_CERTS_PATH` contains common paths to CA bundle installations on the
+following platforms:
+
+* **openssl** on CentOS / Fedora
+* **ca-certificates** on Debian / Ubuntu / Arch / Gentoo
+* **ca_root_nss** on FreeBSD
+* **curl-ca-bundle** on Mac OS X
+
+If no valid CA certificate files are found, you will see an error message
+similar to the one bellow:
+
+`No CA Certificates were found in CA_CERTS_PATH.`
+
+### Acquiring CA Certificates
+
+If the above packages are unavailable to you, and you don't wish to roll your
+own, the makers of cURL provides an excellent resource, generated from Mozilla:
+(http://curl.haxx.se/docs/caextract.html)[http://curl.haxx.se/docs/caextract.html].