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 2012/04/13 04:04:49 UTC

svn commit: r1325588 - in /libcloud/trunk: ./ libcloud/compute/ test/ test/compute/ test/compute/fixtures/vcl/

Author: tomaz
Date: Fri Apr 13 02:04:48 2012
New Revision: 1325588

URL: http://svn.apache.org/viewvc?rev=1325588&view=rev
Log:
Add VCL cloud compute driver - 
http://www.educause.edu/blog/hes8/CloudComputingandtheVirtualCom/167931. This
patch has been contributed by Jason Gionta and is part of LIBCLOUD-180.

Added:
    libcloud/trunk/test/compute/fixtures/vcl/
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCaddRequest.xml
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCendRequest.xml
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCextendRequest.xml
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetImages.xml
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestConnectData.xml
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestIds.xml
    libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestStatus.xml
    libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Account_getVirtualGuests.xml
    libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Location_Datacenter_getDatacenters.xml
    libcloud/trunk/test/compute/test_vcl.py
Modified:
    libcloud/trunk/CHANGES
    libcloud/trunk/libcloud/compute/providers.py
    libcloud/trunk/libcloud/compute/types.py
    libcloud/trunk/test/secrets.py-dist

Modified: libcloud/trunk/CHANGES
URL: http://svn.apache.org/viewvc/libcloud/trunk/CHANGES?rev=1325588&r1=1325587&r2=1325588&view=diff
==============================================================================
--- libcloud/trunk/CHANGES (original)
+++ libcloud/trunk/CHANGES Fri Apr 13 02:04:48 2012
@@ -25,9 +25,13 @@ Changes with Apache Libcloud in developm
       [Tomaz Muraus]
 
     - Store auth token expire times on the connection class in the attribute
-      called 'auth_token_expires'.
+      called 'auth_token_expires'. ; LIBCLOUD-178
       [Chris Gilmer, Brad Morgan]
 
+    - Add new driver for VCL cloud
+      (http://www.educause.edu/blog/hes8/CloudComputingandtheVirtualCom/167931)
+      [Jason Gionta, Tomaz Muraus]
+
   *) Storage
 
     - Large object upload support for CloudFiles driver

Modified: libcloud/trunk/libcloud/compute/providers.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/providers.py?rev=1325588&r1=1325587&r2=1325588&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/providers.py (original)
+++ libcloud/trunk/libcloud/compute/providers.py Fri Apr 13 02:04:48 2012
@@ -112,7 +112,9 @@ DRIVERS = {
     Provider.LIBVIRT:
         ('libcloud.compute.drivers.libvirt_driver', 'LibvirtNodeDriver'),
     Provider.JOYENT:
-        ('libcloud.compute.drivers.joyent', 'JoyentNodeDriver')
+        ('libcloud.compute.drivers.joyent', 'JoyentNodeDriver'),
+    Provider.VCL:
+        ('libcloud.compute.drivers.vcl', 'VCLNodeDriver')
 }
 
 

Modified: libcloud/trunk/libcloud/compute/types.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/types.py?rev=1325588&r1=1325587&r2=1325588&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/types.py (original)
+++ libcloud/trunk/libcloud/compute/types.py Fri Apr 13 02:04:48 2012
@@ -64,6 +64,7 @@ class Provider(object):
     @cvar RACKSPACE_NOVA_BETA: Rackspace Nova Private Beta (ORD)
     @cvar LIBVIRT: Libvirt driver
     @cvar JOYENT: Joyent driver
+    @cvar VCL: VCL driver
     """
     DUMMY = 0
     EC2 = 1  # deprecated name
@@ -113,6 +114,7 @@ class Provider(object):
     ELASTICHOSTS_US2 = 43
     ELASTICHOSTS_CA1 = 44
     JOYENT = 45
+    VCL = 46
 
 
 class NodeState(object):

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCaddRequest.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCaddRequest.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCaddRequest.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCaddRequest.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <struct>
+    <member>
+     <name>requestid</name>
+     <value>
+      <string>51</string>
+     </value>
+    </member>
+    <member>
+     <name>status</name>
+     <value>
+      <string>success</string>
+     </value>
+    </member>
+   </struct>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCendRequest.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCendRequest.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCendRequest.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCendRequest.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <struct>
+    <member>
+     <name>status</name>
+     <value>
+      <string>success</string>
+     </value>
+    </member>
+   </struct>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCextendRequest.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCextendRequest.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCextendRequest.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCextendRequest.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <struct>
+    <member>
+     <name>status</name>
+     <value>
+      <string>success</string>
+     </value>
+    </member>
+   </struct>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetImages.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetImages.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetImages.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetImages.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <array>
+    <data>
+     <value>
+      <struct>
+       <member>
+        <name>id</name>
+        <value>
+         <int>8</int>
+        </value>
+       </member>
+       <member>
+        <name>name</name>
+        <value>
+         <string>CentOS 5 (EC2)</string>
+        </value>
+       </member>
+      </struct>
+     </value>
+     <value>
+      <struct>
+       <member>
+        <name>id</name>
+        <value>
+         <int>5</int>
+        </value>
+       </member>
+       <member>
+        <name>name</name>
+        <value>
+         <string>CentOS 5.4 Base (32 bit VM)</string>
+        </value>
+       </member>
+      </struct>
+     </value>
+     <value>
+      <struct>
+       <member>
+        <name>id</name>
+        <value>
+         <int>6</int>
+        </value>
+       </member>
+       <member>
+        <name>name</name>
+        <value>
+         <string>WinXP Base (32 bit VM)</string>
+        </value>
+       </member>
+      </struct>
+     </value>
+    </data>
+   </array>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestConnectData.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestConnectData.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestConnectData.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestConnectData.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <struct>
+    <member>
+     <name>status</name>
+     <value>
+      <string>ready</string>
+     </value>
+    </member>
+    <member>
+     <name>serverIP</name>
+     <value>
+      <string>152.46.20.67</string>
+     </value>
+    </member>
+    <member>
+     <name>user</name>
+     <value>
+      <string>admin</string>
+     </value>
+    </member>
+    <member>
+     <name>password</name>
+     <value>
+      <string>ehkNGW</string>
+     </value>
+    </member>
+   </struct>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestIds.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestIds.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestIds.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestIds.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <struct>
+    <member>
+     <name>status</name>
+     <value>
+      <string>success</string>
+     </value>
+    </member>
+    <member>
+     <name>requests</name>
+     <value>
+      <array>
+       <data>
+        <value>
+         <struct>
+          <member>
+           <name>requestid</name>
+           <value>
+            <string>51</string>
+           </value>
+          </member>
+          <member>
+           <name>imageid</name>
+           <value>
+            <string>5</string>
+           </value>
+          </member>
+          <member>
+           <name>imagename</name>
+           <value>
+            <string>CentOS 5.4 Base (32 bit VM)</string>
+           </value>
+          </member>
+          <member>
+           <name>start</name>
+           <value>
+            <int>1334150100</int>
+           </value>
+          </member>
+          <member>
+           <name>end</name>
+           <value>
+            <int>1334168100</int>
+           </value>
+          </member>
+         </struct>
+        </value>
+       </data>
+      </array>
+     </value>
+    </member>
+   </struct>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestStatus.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestStatus.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestStatus.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/XMLRPCgetRequestStatus.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<methodResponse>
+<params>
+ <param>
+  <value>
+   <struct>
+    <member>
+     <name>status</name>
+     <value>
+      <string>ready</string>
+     </value>
+    </member>
+   </struct>
+  </value>
+ </param>
+</params>
+</methodResponse>

Added: libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Account_getVirtualGuests.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Account_getVirtualGuests.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Account_getVirtualGuests.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Account_getVirtualGuests.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,1066 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <array>
+   <data>
+    <value>
+     <struct>
+      <member>
+       <name>privateNetworkOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>1832</int>
+       </value>
+      </member>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>11111</int>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>eaa9aaa2-8e2e-d6e0-ce11-6f01e765779c</string>
+       </value>
+      </member>
+      <member>
+       <name>hostname</name>
+       <value>
+        <string>test1</string>
+       </value>
+      </member>
+      <member>
+       <name>domain</name>
+       <value>
+        <string>libcloud.org</string>
+       </value>
+      </member>
+      <member>
+       <name>maxCpu</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>maxCpuUnits</name>
+       <value>
+        <string>CORE</string>
+       </value>
+      </member>
+      <member>
+       <name>maxMemory</name>
+       <value>
+        <int>2048</int>
+       </value>
+      </member>
+      <member>
+       <name>startCpus</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>createDate</name>
+       <value>
+        <string>2009-09-04T14:49:45-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2010-04-22T13:08:47-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>metricPollDate</name>
+       <value>
+        <string>2010-04-22T13:08:00-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedAccountHostOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>powerState</name>
+       <value>
+        <struct>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>RUNNING</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>softwareComponents</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>id</name>
+             <value>
+              <int>191115</int>
+             </value>
+            </member>
+            <member>
+             <name>hardwareId</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>manufacturerLicenseInstance</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>passwords</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>166980</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>softwareId</name>
+                   <value>
+                    <int>191115</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>username</name>
+                   <value>
+                    <string>root</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>password</name>
+                   <value>
+                    <string>TEST</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>createDate</name>
+                   <value>
+                    <string>2009-09-04T14:49:51-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>modifyDate</name>
+                   <value>
+                    <string>2009-09-04T14:49:51-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>port</name>
+                   <value>
+                    <string />
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>67.254.254.254</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryBackendIpAddress</name>
+       <value>
+        <string>10.254.254.254</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>privateNetworkOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>13402</int>
+       </value>
+      </member>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>11111</int>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>9e9e9e99-4ed9-4645-19f3-55ee4e404d56</string>
+       </value>
+      </member>
+      <member>
+       <name>hostname</name>
+       <value>
+        <string>test2</string>
+       </value>
+      </member>
+      <member>
+       <name>domain</name>
+       <value>
+        <string>libcloud.org</string>
+       </value>
+      </member>
+      <member>
+       <name>maxCpu</name>
+       <value>
+        <int>1</int>
+       </value>
+      </member>
+      <member>
+       <name>maxCpuUnits</name>
+       <value>
+        <string>CORE</string>
+       </value>
+      </member>
+      <member>
+       <name>maxMemory</name>
+       <value>
+        <int>1024</int>
+       </value>
+      </member>
+      <member>
+       <name>startCpus</name>
+       <value>
+        <int>1</int>
+       </value>
+      </member>
+      <member>
+       <name>createDate</name>
+       <value>
+        <string>2010-03-23T17:06:13-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2010-04-22T13:08:43-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>metricPollDate</name>
+       <value>
+        <string>2010-04-22T13:08:00-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedAccountHostOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>powerState</name>
+       <value>
+        <struct>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>RUNNING</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>softwareComponents</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>id</name>
+             <value>
+              <int>257314</int>
+             </value>
+            </member>
+            <member>
+             <name>hardwareId</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>manufacturerLicenseInstance</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>passwords</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>235268</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>softwareId</name>
+                   <value>
+                    <int>257314</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>username</name>
+                   <value>
+                    <string>root</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>password</name>
+                   <value>
+                    <string>TEST</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>createDate</name>
+                   <value>
+                    <string>2010-03-23T17:06:17-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>modifyDate</name>
+                   <value>
+                    <string>2010-03-23T17:06:17-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>port</name>
+                   <value>
+                    <string />
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>174.254.254.254</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryBackendIpAddress</name>
+       <value>
+        <string>10.254.254.254</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>privateNetworkOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>19293</int>
+       </value>
+      </member>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>11111</int>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>9f99e19b-2c61-9cd5-2081-67b57fd7977b</string>
+       </value>
+      </member>
+      <member>
+       <name>hostname</name>
+       <value>
+        <string>test3</string>
+       </value>
+      </member>
+      <member>
+       <name>domain</name>
+       <value>
+        <string>libcloud.org</string>
+       </value>
+      </member>
+      <member>
+       <name>maxCpu</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>maxCpuUnits</name>
+       <value>
+        <string>CORE</string>
+       </value>
+      </member>
+      <member>
+       <name>maxMemory</name>
+       <value>
+        <int>1024</int>
+       </value>
+      </member>
+      <member>
+       <name>startCpus</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>createDate</name>
+       <value>
+        <string>2010-04-22T12:38:53-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2010-04-22T13:08:01-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>metricPollDate</name>
+       <value>
+        <string>2010-04-22T13:08:00-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedAccountHostOnlyFlag</name>
+       <value>
+        <boolean>1</boolean>
+       </value>
+      </member>
+      <member>
+       <name>powerState</name>
+       <value>
+        <struct>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>RUNNING</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>softwareComponents</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>id</name>
+             <value>
+              <int>277185</int>
+             </value>
+            </member>
+            <member>
+             <name>hardwareId</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>manufacturerLicenseInstance</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>passwords</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>250826</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>softwareId</name>
+                   <value>
+                    <int>277185</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>username</name>
+                   <value>
+                    <string>root</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>password</name>
+                   <value>
+                    <string>TEST</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>createDate</name>
+                   <value>
+                    <string>2010-04-22T12:38:57-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>modifyDate</name>
+                   <value>
+                    <string>2010-04-22T12:38:57-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>port</name>
+                   <value>
+                    <string />
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>174.254.254.254</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryBackendIpAddress</name>
+       <value>
+        <string>10.254.254.254</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>privateNetworkOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>19288</int>
+       </value>
+      </member>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>11111</int>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>999f77d9-679b-c47d-136d-04cd302384ec</string>
+       </value>
+      </member>
+      <member>
+       <name>hostname</name>
+       <value>
+        <string>test4</string>
+       </value>
+      </member>
+      <member>
+       <name>domain</name>
+       <value>
+        <string>libcloud.org</string>
+       </value>
+      </member>
+      <member>
+       <name>maxCpu</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>maxCpuUnits</name>
+       <value>
+        <string>CORE</string>
+       </value>
+      </member>
+      <member>
+       <name>maxMemory</name>
+       <value>
+        <int>1024</int>
+       </value>
+      </member>
+      <member>
+       <name>startCpus</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>createDate</name>
+       <value>
+        <string>2010-04-22T12:15:24-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2010-04-22T13:08:31-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>metricPollDate</name>
+       <value>
+        <string>2010-04-22T13:08:00-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedAccountHostOnlyFlag</name>
+       <value>
+        <boolean>1</boolean>
+       </value>
+      </member>
+      <member>
+       <name>powerState</name>
+       <value>
+        <struct>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>RUNNING</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>softwareComponents</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>id</name>
+             <value>
+              <int>277171</int>
+             </value>
+            </member>
+            <member>
+             <name>hardwareId</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>manufacturerLicenseInstance</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>passwords</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>250815</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>softwareId</name>
+                   <value>
+                    <int>277171</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>username</name>
+                   <value>
+                    <string>root</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>password</name>
+                   <value>
+                    <string>TEST</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>createDate</name>
+                   <value>
+                    <string>2010-04-22T12:15:26-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>modifyDate</name>
+                   <value>
+                    <string>2010-04-22T12:15:26-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>port</name>
+                   <value>
+                    <string />
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>174.254.254.254</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryBackendIpAddress</name>
+       <value>
+        <string>10.254.254.254</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>privateNetworkOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>19284</int>
+       </value>
+      </member>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>11111</int>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>f3c73738-7731-1372-f3c3-e6808082f824</string>
+       </value>
+      </member>
+      <member>
+       <name>hostname</name>
+       <value>
+        <string>test5</string>
+       </value>
+      </member>
+      <member>
+       <name>domain</name>
+       <value>
+        <string>libcloud.org</string>
+       </value>
+      </member>
+      <member>
+       <name>maxCpu</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>maxCpuUnits</name>
+       <value>
+        <string>CORE</string>
+       </value>
+      </member>
+      <member>
+       <name>maxMemory</name>
+       <value>
+        <int>1024</int>
+       </value>
+      </member>
+      <member>
+       <name>startCpus</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>createDate</name>
+       <value>
+        <string>2010-04-22T12:11:23-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2010-04-22T13:08:31-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>metricPollDate</name>
+       <value>
+        <string>2010-04-22T13:08:00-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedAccountHostOnlyFlag</name>
+       <value>
+        <boolean>1</boolean>
+       </value>
+      </member>
+      <member>
+       <name>powerState</name>
+       <value>
+        <struct>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>RUNNING</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>softwareComponents</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>id</name>
+             <value>
+              <int>277167</int>
+             </value>
+            </member>
+            <member>
+             <name>hardwareId</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>manufacturerLicenseInstance</name>
+             <value>
+              <string />
+             </value>
+            </member>
+            <member>
+             <name>passwords</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>250811</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>softwareId</name>
+                   <value>
+                    <int>277167</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>username</name>
+                   <value>
+                    <string>root</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>password</name>
+                   <value>
+                    <string>TEST</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>createDate</name>
+                   <value>
+                    <string>2010-04-22T12:11:27-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>modifyDate</name>
+                   <value>
+                    <string>2010-04-22T12:11:27-05:00</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>port</name>
+                   <value>
+                    <string />
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>174.254.254.254</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryBackendIpAddress</name>
+       <value>
+        <string>10.254.254.254</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </data>
+  </array>
+ </value>
+</param>
+</params>

Added: libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Location_Datacenter_getDatacenters.xml
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Location_Datacenter_getDatacenters.xml?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Location_Datacenter_getDatacenters.xml (added)
+++ libcloud/trunk/test/compute/fixtures/vcl/v3_SoftLayer_Location_Datacenter_getDatacenters.xml Fri Apr 13 02:04:48 2012
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <array>
+   <data>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal00</string>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Corporate HQ</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>3</int>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal01</string>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>18171</int>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>sea01</string>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Seattle</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>37473</int>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>wdc01</string>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Washington, DC</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </data>
+  </array>
+ </value>
+</param>
+</params>

Added: libcloud/trunk/test/compute/test_vcl.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_vcl.py?rev=1325588&view=auto
==============================================================================
--- libcloud/trunk/test/compute/test_vcl.py (added)
+++ libcloud/trunk/test/compute/test_vcl.py Fri Apr 13 02:04:48 2012
@@ -0,0 +1,149 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import sys
+
+from xml.etree import ElementTree as ET
+
+from libcloud.utils.py3 import httplib
+from libcloud.utils.py3 import xmlrpclib
+from libcloud.utils.py3 import next
+
+from libcloud.compute.drivers.vcl import VCLNodeDriver as VCL
+from libcloud.compute.types import NodeState
+
+from test import MockHttp
+from test.file_fixtures import ComputeFileFixtures
+from test.secrets import VCL_PARAMS
+
+class MockVCLTransport(xmlrpclib.Transport):
+
+    def __init__(self, datetime, user, passwd, host):
+        self._use_datetime = datetime
+        self._connection = (None, None)
+        self._extra_headers = []
+
+    def request(self, host, handler, request_body, verbose=0):
+        self.verbose = 0
+        method = ET.XML(request_body).find('methodName').text
+        mock = VCLMockHttp(host, 80)
+        mock.request('POST', method)
+        resp = mock.getresponse()
+
+        if sys.version[0] == '2' and sys.version[2] == '7':
+            response = self.parse_response(resp)
+        else:
+            response = self.parse_response(resp.body)
+        return response
+
+class VCLTests(unittest.TestCase):
+
+    def setUp(self):
+        VCL.connectionCls.proxyCls.transportCls = MockVCLTransport
+        self.driver = VCL(*VCL_PARAMS)
+
+    def test_list_nodes(self):
+        node = self.driver.list_nodes(ipaddr='192.168.1.1')[0]
+        self.assertEqual(node.name, 'CentOS 5.4 Base (32 bit VM)')
+        self.assertEqual(node.state, NodeState.RUNNING)
+        self.assertEqual(node.extra['pass'], 'ehkNGW')
+
+    def test_list_images(self):
+        images = self.driver.list_images()
+        image = images[0]
+        self.assertEqual(image.id, '8')
+
+    def test_list_sizes(self):
+        sizes = self.driver.list_sizes()
+        self.assertEqual(len(sizes), 1)
+
+    def test_create_node(self):
+        image = self.driver.list_images()[0]
+        node = self.driver.create_node(image=image)
+        self.assertEqual(node.id, '51')
+
+    def test_destroy_node(self):
+        node = self.driver.list_nodes(ipaddr='192.168.1.1')[0]
+        self.assertTrue(self.driver.destroy_node(node))
+
+    def test_ex_update_node_access(self):
+        node = self.driver.list_nodes(ipaddr='192.168.1.1')[0]
+        node = self.driver.ex_update_node_access(node, ipaddr='192.168.1.2')
+        self.assertEqual(node.name, 'CentOS 5.4 Base (32 bit VM)')
+        self.assertEqual(node.state, NodeState.RUNNING)
+        self.assertEqual(node.extra['pass'], 'ehkNGW')
+
+    def test_ex_extend_request_time(self):
+        node = self.driver.list_nodes(ipaddr='192.168.1.1')[0]
+        self.assertTrue(self.driver.ex_extend_request_time(node, 60))
+
+    def test_ex_get_request_end_time(self):
+        node = self.driver.list_nodes(ipaddr='192.168.1.1')[0]
+        self.assertEqual(
+            self.driver.ex_get_request_end_time(node),
+            1334168100
+        )
+
+class VCLMockHttp(MockHttp):
+    fixtures = ComputeFileFixtures('vcl')
+
+    def XMLRPCgetImages(self, method, url, body, headers):
+        body = self.fixtures.load('XMLRPCgetImages.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def XMLRPCextendRequest(
+        self, method, url, body, headers):
+
+        body = self.fixtures.load('XMLRPCextendRequest.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def XMLRPCgetRequestIds(
+        self, method, url, body, headers):
+
+        body = self.fixtures.load(
+            'XMLRPCgetRequestIds.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def XMLRPCgetRequestStatus(
+        self, method, url, body, headers):
+
+        body = self.fixtures.load(
+            'XMLRPCgetRequestStatus.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def XMLRPCendRequest(
+        self, method, url, body, headers):
+
+        body = self.fixtures.load(
+            'XMLRPCendRequest.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def XMLRPCaddRequest(
+        self, method, url, body, headers):
+
+        body = self.fixtures.load(
+            'XMLRPCaddRequest.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def XMLRPCgetRequestConnectData(
+        self, method, url, body, headers):
+
+        body = self.fixtures.load(
+            'XMLRPCgetRequestConnectData.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+if __name__ == '__main__':
+    sys.exit(unittest.main())

Modified: libcloud/trunk/test/secrets.py-dist
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/secrets.py-dist?rev=1325588&r1=1325587&r2=1325588&view=diff
==============================================================================
--- libcloud/trunk/test/secrets.py-dist (original)
+++ libcloud/trunk/test/secrets.py-dist Fri Apr 13 02:04:48 2012
@@ -36,6 +36,7 @@ VCLOUD_PARAMS = ('user', 'secret')
 VOXEL_PARAMS = ('key', 'secret')
 VPSNET_PARAMS = ('user', 'key')
 JOYENT_PARAMS = ('user', 'key')
+VCL_PARAMS = ('user', 'pass', True, 'foo.bar.com')
 
 # Storage
 STORAGE_S3_PARAMS = ('key', 'secret')