deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mar...@redhat.com
Subject [PATCH 2/3] Updates Site docs - easy Download/Get started instructions, with examples using the ruby client, deltacloudc, and curl. Also updated contact information page for project.
Date Wed, 31 Aug 2011 09:07:00 GMT
From: marios <marios@redhat.com>


Signed-off-by: marios <marios@redhat.com>
---
 site/content/_drivers.mdown                |    3 +-
 site/content/_navigation.haml              |    5 +-
 site/content/_providers.haml               |    4 +-
 site/content/contact.mdown                 |   30 ++++
 site/content/documentation.haml            |    2 +-
 site/content/download.mdown                |  257 ++++++++++++++++++++++++++--
 site/content/index.haml                    |   19 ++-
 site/content/styles/deltacloud_concept.gif |  Bin 0 -> 19082 bytes
 8 files changed, 288 insertions(+), 32 deletions(-)
 create mode 100644 site/content/contact.mdown
 create mode 100644 site/content/styles/deltacloud_concept.gif

diff --git a/site/content/_drivers.mdown b/site/content/_drivers.mdown
index 56254fe..811cbbc 100644
--- a/site/content/_drivers.mdown
+++ b/site/content/_drivers.mdown
@@ -53,9 +53,8 @@ The driver and provider can be selected in one of two ways:
    effect as using the two request headers mentioned above.
 
 ## Notes on specific drivers
-
 <table providers></table>
-
+<a name=providers>.
 ### EC2 Driver
 
 For the Amazon EC2 you need to install the
diff --git a/site/content/_navigation.haml b/site/content/_navigation.haml
index 8a2e002..6586267 100644
--- a/site/content/_navigation.haml
+++ b/site/content/_navigation.haml
@@ -3,8 +3,9 @@ filter: haml
 ---
 - menu = [ { :href => "index.html", :title => "Deltacloud Home", :text => "Home"
}, |
   { :href => "download.html", :title => "Get the latest releases", :text => "Download"
}, |
-  { :href => "contribute.html", :title => "Information about design/development process",
:text => "Contribute" }, |
-  { :href => "documentation.html", :title => "Project documentation", :text => "Documentation"
} ] |
+  { :href => "contribute.html", :title => "Information about design/development process",
:text => "Developers" }, |
+  { :href => "documentation.html", :title => "Project documentation", :text => "Documentation"
}, |
+  { :href => "contact.html", :title => "Contact us!", :text => "Contact"} ] |
 
 #navigation
   #menu.container
diff --git a/site/content/_providers.haml b/site/content/_providers.haml
index d713858..bae2432 100644
--- a/site/content/_providers.haml
+++ b/site/content/_providers.haml
@@ -55,10 +55,10 @@ filter:
     %th.emptycell &nbsp;
     %th
       %strong Create
-      new containers
+      new buckets
     %th
       %strong Update/delete
-      containers
+      buckets
     %th
       %strong Create
       new blobs
diff --git a/site/content/contact.mdown b/site/content/contact.mdown
new file mode 100644
index 0000000..17a97ec
--- /dev/null
+++ b/site/content/contact.mdown
@@ -0,0 +1,30 @@
+---
+title: Deltacloud - Contact
+extension: html
+filter: markdown
+---
+
+Contact us!
+========
+
+We'd love to hear about your experiences with Deltacloud:
+
+* [deltacloud-dev@incubator.apache.org](http://mail-archives.apache.org/mod_mbox/incubator-deltacloud-dev/)
+  is our mailing list where you can ask questions or see all the latest patches and development
activity
+  at the bleeding edge of the project,
+* The [#deltacloud](http://webchat.freenode.net/) irc channel on Freenode is where
+  the developers hang out and where you can usually get the fastest answers to your questions,
+* Our [Teambox](http://teambox.com/projects/deltacloud) page is where we keep the latest
+  task lists and where you can comment on or suggest new features for the project,
+* We have a [github](https://github.com/apache/deltacloud) page which is a mirror of the
+  apache git repo, if you prefer to get the code or contribute that way.
+* We track bugs in [Apache JIRA](https://issues.apache.org/jira/browse/DTACLOUD). If you
are
+  have found a problem with Deltacloud you can check if it is already known to the Deltacloud
+  developers or [report it here](https://issues.apache.org/jira/secure/CreateIssue!default.jspa).
+
+Please don't hesitate to get in touch if you have any questions about the project,
+if you've had any issues with installing or using Deltacloud or even just to tell us
+how great you think Deltacloud is! You might want to contribute a translation of
+the Deltacloud documentation (or even this webpage), you may want to contribute
+to the code and need some help getting started.
+
diff --git a/site/content/documentation.haml b/site/content/documentation.haml
index 8019d08..d5d8c32 100644
--- a/site/content/documentation.haml
+++ b/site/content/documentation.haml
@@ -46,7 +46,7 @@ filter:
   stored on the server.  The exact credentials for logging into the server,
   and where you find them, depends on the backend cloud that the server is
   talking to.
-
+%a(name="credentials")
 %p
   The following table gives details about how to set up the server and what
   credentials to provide for each of the supported clouds. The entry from
diff --git a/site/content/download.mdown b/site/content/download.mdown
index dee8181..b531579 100644
--- a/site/content/download.mdown
+++ b/site/content/download.mdown
@@ -4,25 +4,200 @@ extension: html
 filter: markdown
 ---
 
-Download
+Download Deltacloud
 ========
 
-Official releases can be downloaded from the
-[Apache website](http://www.apache.org/dist/incubator/deltacloud/)
+<img src="styles/deltacloud_concept.gif" alt="Deltacloud conceptual overview" width=850
/>
 
-### Deltacloud Core ###
+Deltacloud provides the API server and drivers necessary for connecting
+to the [cloud providers](./drivers.html#providers "Deltacloud drivers").
+Install Deltacloud and start the ***deltacloudd*** daemon server. You can use your
+favourite HTTP client to talk to the server using the
+[Deltacloud REST API](api.html "Deltacloud REST API"). Deltacloud even comes with a
+HTML interface so you can simply use your web browser to control your cloud
+infrastructure straight out of the box. As of Deltacloud 0.4.0, the HTML interface
+is written with the [jQuery mobile](http://jquerymobile.com "jquery mobile")
+framework so it plays especially well with your mobile or tablet devices.
 
-Deltacloud Core provides the API server and drivers necessary for connecting
-to the cloud providers.
+### "Hello Deltacloud!" - Quick start ###
 
-We also make Ruby gems of each release available. You can install it by
-typing the following command:
+This guide assumes a linux environment. Some of the Deltacloud developers
+are running recent versions of [Fedora](http://fedoraproject.org "Fedora Project").
+However, as Deltacloud is written in Ruby you should be able to install it on
+any OS that supports Ruby. If you have succesfully installed Deltacloud or are
+having any problems doing so, please [let us know](contact.html) -
+we'd love to hear from you.
+
+The two main pre-requisites to a fast Deltacloud installation are **Ruby**
+and **RubyGems**. Deltacloud will run trouble-free on Ruby versions
+1.8.6 and 1.8.7 though you should also be fine with version 1.9. You can contribute
+to this project by [letting us know](contact.html) of any issues you may come across
+with particular Ruby or RubyGem versions; your input is highly appreciated!
+
+#### Get Deltacloud ####
+
+First you need to [install ruby](http://www.ruby-lang.org/en/downloads/ "Install Ruby").
+You can check to see if you already have a ruby installation by typing:
+
+    $ ruby -v
+
+If you see something that looks like the following:
+
+    $ ruby 1.8.6 (2010-09-02 patchlevel 420) [i386-linux]
+
+then you can skip the ruby installation (you need ruby that is at *least* version 1.8.6).
+
+Deltacloud relies on a number of ruby gems so you also need to
+[install RubyGems](http://docs.rubygems.org/read/chapter/3 "Install RubyGems"). As above,
you can
+check if you already have the ***gem*** executable installed by typing:
+
+    $ gem -v
+
+Once you have Ruby and RubyGems, installing Deltacloud is as easy as typing:
 
     $ sudo gem install deltacloud-core
 
+**And thats it!** Yes, really. The **gem install** command will automatically fetch and install
+all other gems that the Deltacloud server needs if you don't already have these. As an alternative
+you can get the latest releases of Deltacloud from the
+[Apache website](http://www.apache.org/dist/incubator/deltacloud/).
+
+
+
+#### Run Deltacloud ####
+
+After you succesfully install Deltacloud, you can start the server by typing
+***deltacloudd -i \<provider_id\>***. The ***\<provider_id\>*** is the name of
the cloud
+provider that you have an account with, for example 'ec2'. If you don't yet have an account
+with a cloud provider, you can still try the Deltacloud mock driver:
+
+    $ deltacloudd -i mock
+
+This will start the Deltacloud server on your local machine with the mock driver, accepting
+connections on port 3001 (the default). From version 0.4.0 of Deltacloud, you can use the
'-l'
+ flag to see [all available](./drivers.html#providers "Deltacloud drivers")
+ ***\<provider_id\>***s that can be used with the **deltacloudd** executable.
+
+    $ deltacloudd -l
+    Available drivers:
+
+    * condor
+    * vsphere
+    * opennebula
+    * eucalyptus
+    * rhevm
+    * sbc
+    * azure
+    * gogrid
+    * mock
+    * rackspace
+    * rimuhosting
+    * terremark
+    * ec2
+
+**After you start the server, the Deltacloud HTML interface is available at** *http://localhost:3001/api*
** open this address in your web browser**.
+
+Your browser will prompt you for [credentials](documentation.html#credentials)
+when you invoke an operation that requires [authentication](api.html#authentication).
+The '-h' flag will list all available options for **deltacloudd**. For example,
+ to start the Deltacloud server with the Rackspace driver on port 10000 you can use:
+
+    $ deltacloudd -i rackspace -P 10000
+
+You may want to install the server on another machine and make Deltacloud available on
+your local network. To do this you need to bind the Deltacloud server to an address other
+than 'localhost' (default). For instance, if you install and start Deltacloud on a machine
+with the IP address 192.168.10.200 you should start the server with:
+
+    $ deltacloudd -i ec2 -P 5000 -r 192.168.10.200
+
+This will make the Deltacloud server available at the address **http://192.168.10.200:5000/api**.
+
+
 Additional Tools
 ----------------
-These are complementary to the essential Core components.
+The following are complementary to the Deltacloud server.
+
+### Deltacloud Client ###
+
+The Deltacloud project also maintains a ruby client, which you need to install
+separately to the Deltacloud API server. The Deltacloud client consists of a
+ ruby library (packaged as a ruby gem) which you can use to programmatically
+interact with the Deltacloud server and control your cloud infrastructure
+across cloud providers. For example, assuming the Deltacloud server is
+running at **192.168.10.244:5000**
+
+    require 'deltacloud'
+
+    api_url      = 'http://192.168.10.244:5000/api'
+    api_name     = 'TK2PJCAN9R1HKG2FK24Z'
+    api_password = 'aLe27rZlRhlBcVoQbL4JsVtaNga12vEL9d9kS5CA'
+
+    client = DeltaCloud.new( api_name, api_password, api_url )
+
+    # get a list of currently running instances (virtual machines)
+    client.instances.each do |instance|
+      puts instance.name
+    end
+
+    #do other work with client here
+
+More comprehensive information on using the Deltacloud ruby client in this way
+can be found in [the documentation](client-ruby.html).
+
+Assuming you already have Ruby and RubyGems setup, you can install the Deltacloud
+client by simply typing:
+
+    $ sudo gem install deltacloud-client
+
+Installing the Deltacloud client also gives you the **deltacloudc** command line
+tool. This executable makes use of the Deltacloud client library to speak to the
+Deltacloud server using the [REST API](api.html). This allows you to to control
+your IAAS cloud infrastructure form the command line; even better if you are
+familiar with linux scripting, you can knock up a bash script in no time
+to automate your cloud infrastructure tasks.
+
+The general usage pattern for deltacloudc is:
+
+    $ deltacloudc collection operation [options]
+
+ * <em><b>collection</b></em> refers to the Deltacloud object collections,
such as Instances,
+   Images, Buckets, Realms etc, as described in greater detail in the
+   [REST API](api.html#h1)
+ * <em><b>operation</b></em> is collection dependant. All collections
respond to 'index'
+   and 'show' operations (retrieve details on all objects in a given collection
+   or on a specific object, respectively); some collections respond to 'create' and 'destroy'
+   operations. The instances collection (realised virtual servers) responds to operations
+   for managing the instance lifecycle, such as 'stop', 'reboot' etc.
+ * <em><b>options</b></em> are listed by invoking <b>deltacloudc
-h</b>. One important
+   option is <b>-u</b>, with which you specify the API\_URL at which the Deltacloud
server
+   is running. The API\_URL takes the form <b>http://[user]:[password]@[api_url]:[port]/[api]</b>
+   (examples follow). Alternatively, rather than having to supply the API\_URL for every
+   invocation of <b>deltacloudc</b> you have the choice of setting the API\_URL
environment
+   variable (e.g., export API\_URL=http://mockuser:mockpassword@localhost:3001/api). A listing
of the credentials you need to provide for each back-end cloud provider
+is available [here](documentation.html#credentials).
+
+
+The following examples assume that the Deltacloud server is running on your local machine
+port 3001 (the **deltacloudd** server daemon defaults to 'localhost:3001') and was started
+with the 'mock' provider (i.e. **deltacloudd -i mock**).
+
+To list all collections available in the current driver:
+
+    $ deltacloudc -l -u http://mockuser:mockpassword@localhost:3001/api
+
+To get a list of all **images**:
+
+    $ deltacloudc images index -u http://mockuser:mockpassword@localhost:3001/api
+
+To list all operations for the **buckets** collection:
+
+    $ deltacloudc buckets -l -u http://mockuser:mockpassword@localhost:3001/api
+
+To create a new blob in the bucket called 'bucket1':
+
+    $ deltacloudc blob create -i 'my_new_blob' -b 'bucket1' -f /home/marios/file.txt
+
 
 ### libdeltacloud ###
 
@@ -38,19 +213,67 @@ Or you can download the RPMs for Fedora 12 and 13:
 
 Contributed by Chris Lalancette.
 
+### Other HTTP clients - cURL
 
-### Deltacloud Client ###
+As interaction with the Deltacloud server is via HTTP calls, you can use any
+HTTP client to talk to it using the Deltacloud
+[REST API](api.html "Deltacloud REST API"). One popular command line tool available
+on most modern linux distributions is [cURL](http://curl.haxx.se/ "cURL"). We
+give some examples here of how you can use cURL to interact with Deltacloud,
+demonstrating the flexibility and power of the Deltacloud REST API.
+
+The following examples assume the Deltacloud server is running on locahost:3001,
+and was started with the 'ec2' driver (i.e., **deltacloudd -i ec2**)
+
+To get a [listing of all images](api.html#list_images) available in the
+back-end cloud:
+
+    curl  --user "pGbAJ1TsVg5PKs3BK27O:dPs47ralgBlldqYNbLg3scthsg4g8v0L9d6Mb5DK"
+    "http://localhost:3001/api/images?format=xml"
+
+The cURL **--user** option is used to specify the **username:password**
+[credentials](documentation.html#credentials)
+for access to the back-end cloud provider (Amazon EC2 in this case).
+
+To [create a new instance](api.html#create_instance) from the
+[image](api.html#h3_3) with id 'ami-f51aff9c', in [realm](api.html#h3_1)
+ 'us-east-1c', with the [hardware profile](api.html#h3_2) 'c1.medium',
+in [firewall](api.html#h3_7) 'default':
+
+    curl -X POST -F "keyname=eftah" -F "image_id=ami-f51aff9c"
+    -F "realm_id=us-east-1c" -F "hwp_id=c1.medium" -F "firewalls1=default"
+    --user "pGbAJ1TsVg5PKs3BK27O:dPs47ralgBlldqYNbLg3scthsg4g8v0L9d6Mb5DK"
+    "http://localhost:3001/api/instances?format=xml"
+
+To [delete a firewall](api.html#delete_firewall) called 'develgroup':
+
+    curl -X DELETE
+    --user "pGbAJ1TsVg5PKs3BK27O:dPs47ralgBlldqYNbLg3scthsg4g8v0L9d6Mb5DK"
+    http://localhost:3001/api/firewalls/develgroup?format=xml
+
+To [create a blob](api.html#create_blob) called 'my_new_blob' within the
+[bucket](api.html#h4_3) 'mybucket' from a local file with ***HTTP PUT***,
+specifying its content type and setting some some metadata ***key:value***
+pairs:
+
+    curl -H 'content-type: text/html' -H 'X-Deltacloud-Blobmeta-Name:mariosblob'
+    -H 'X-Deltacloud-Blobmeta-Version:2.1' --upload-file
+    "/home/marios/Desktop/somefile.html"
+    --user "pGbAJ1TsVg5PKs3BK27O:dPs47ralgBlldqYNbLg3scthsg4g8v0L9d6Mb5DK"
+    http://localhost:3001/api/buckets/mybucket/my_new_blob?format=xml
 
-Deltacloud Client is a command line tool that communicates with the
-Deltacloud&nbsp;API.
+To [retrieve blob metadata](api.html#h4_3_10) for the blob called 'my_new_blob':
 
-Type the following command to install it:
+    curl -iv -X HEAD
+    --user "pGbAJ1TsVg5PKs3BK27O:dPs47ralgBlldqYNbLg3scthsg4g8v0L9d6Mb5DK"
+    http://localhost:3001/api/buckets/mybucket/my_new_blob?format=xml
 
-    $ gem install deltacloud-client
+Note the use of the '-iv' flags here which will ensure that cURL displays the
+request and response headers (blob metadata is reported in the response headers,
+with an empty response body).
 
 ### Your name here ###
 
-Do you have a tool to make Deltacloud more useful? Let us know on our
-[deltacloud-devel mailing list][deltacloud-devel] and we'll post it here!
+Do you have a tool to make Deltacloud more useful? [Let us know](contact.html)
+and we'll add your contributions to this page!
 
-[deltacloud-devel]: mailto:deltacloud-dev-subscribe@incubator.apache.org
diff --git a/site/content/index.haml b/site/content/index.haml
index 70284d8..32737ae 100644
--- a/site/content/index.haml
+++ b/site/content/index.haml
@@ -12,14 +12,17 @@ filter: haml
   .colleft
     %p
       %em
-        Deltacloud Core
+        Deltacloud
       gives you:
     %ul
       %li
-        REST API (simple, any-platform access)
+        A
+        %a{ :href => "api.html" }
+          RESTful API
+        for simple, any-platform access
       %li
-        %a.providers{ :href => "#providers", :title => "Supported providers" }
-          Support for all major cloud service providers
+        Support for all
+        %a.providers{ :href => "#providers", :title => "Supported providers" }    
     major cloud service providers
       %li
         Backward compatibility across versions, providing long-term stability for scripts,
tools and applications
       %li
@@ -30,11 +33,11 @@ filter: haml
   .right
     %img{ :src => "styles/diagram-soa.png", :height => "265", :alt => "diagram-soa",
:width => "620", :style => "margin-bottom:1em;" }
   %p.foot
-    The
+    %em Deltacloud
+    makes it easy for cloud providers to
     %a{ :href => "documentation.html" }
-      Deltacloud Core
-    makes it easy for cloud
-    providers to add their cloud to the Deltacloud common API.
+      add their cloud
+    to the Deltacloud API.
 #news
   .recent
     %h2
diff --git a/site/content/styles/deltacloud_concept.gif b/site/content/styles/deltacloud_concept.gif
new file mode 100644
index 0000000000000000000000000000000000000000..54e2eb57b7b950ced3b540a6e1c46f3b5d7ba50e
GIT binary patch
literal 19082
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
P2>};r004^~0000x*v(fv

literal 0
HcmV?d00001

-- 
1.7.3.4


Mime
View raw message