libcloud-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From to...@apache.org
Subject svn commit: r1324548 - in /libcloud/trunk: libcloud/compute/drivers/joyent.py test/compute/test_joyent.py test/secrets.py-dist
Date Wed, 11 Apr 2012 04:40:50 GMT
Author: tomaz
Date: Wed Apr 11 04:40:50 2012
New Revision: 1324548

URL: http://svn.apache.org/viewvc?rev=1324548&view=rev
Log:
Add tests for Joyent driver.

Added:
    libcloud/trunk/test/compute/test_joyent.py
Modified:
    libcloud/trunk/libcloud/compute/drivers/joyent.py
    libcloud/trunk/test/secrets.py-dist

Modified: libcloud/trunk/libcloud/compute/drivers/joyent.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/joyent.py?rev=1324548&r1=1324547&r2=1324548&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/joyent.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/joyent.py Wed Apr 11 04:40:50 2012
@@ -169,7 +169,7 @@ class JoyentNodeDriver(NodeDriver):
                 public_ips.append(ip)
 
         if 'credentials' in data['metadata']:
-            extra['password'] = data['metadata']['credentials']
+            extra['password'] = data['metadata']['credentials']['root']
 
         node = Node(id=data['id'], name=data['name'], state=state,
                     public_ips=public_ips, private_ips=private_ips,

Added: libcloud/trunk/test/compute/test_joyent.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_joyent.py?rev=1324548&view=auto
==============================================================================
--- libcloud/trunk/test/compute/test_joyent.py (added)
+++ libcloud/trunk/test/compute/test_joyent.py Wed Apr 11 04:40:50 2012
@@ -0,0 +1,104 @@
+# 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 sys
+import unittest
+
+from libcloud.utils.py3 import httplib
+from libcloud.common.types import LibcloudError
+from libcloud.compute.base import Node, NodeState
+from libcloud.compute.drivers.joyent import JoyentNodeDriver
+
+from test import MockHttp
+from test.compute import TestCaseMixin
+from test.file_fixtures import ComputeFileFixtures
+from test.secrets import JOYENT_PARAMS
+
+
+class JoyentTestCase(unittest.TestCase):
+    def setUp(self):
+        JoyentNodeDriver.connectionCls.conn_classes = (None, JoyentHttp)
+        self.driver = JoyentNodeDriver(*JOYENT_PARAMS)
+
+    def test_instantiate_invalid_location(self):
+        try:
+            JoyentNodeDriver('user', 'key', location='invalid')
+        except LibcloudError:
+            pass
+        else:
+            self.fail('Exception was not thrown')
+
+    def test_list_sizes(self):
+        sizes = self.driver.list_sizes()
+
+        self.assertEqual(sizes[0].ram, 16384)
+
+    def test_list_images(self):
+        images = self.driver.list_images()
+
+        self.assertEqual(images[0].name, 'nodejs')
+
+    def test_list_nodes_with_and_without_credentials(self):
+        nodes = self.driver.list_nodes()
+        self.assertEqual(len(nodes), 2)
+
+        node = nodes[0]
+        self.assertEqual(node.public_ips[0], '165.225.129.129')
+        self.assertEqual(node.private_ips[0], '10.112.1.130')
+        self.assertEqual(node.state, NodeState.RUNNING)
+
+        node = nodes[1]
+        self.assertEqual(node.public_ips[0], '165.225.129.128')
+        self.assertEqual(node.private_ips[0], '10.112.1.131')
+        self.assertEqual(node.state, NodeState.RUNNING)
+        self.assertEqual(node.extra['password'], 'abc')
+
+    def test_create_node(self):
+        image = self.driver.list_images()[0]
+        size = self.driver.list_sizes()[0]
+        node = self.driver.create_node(image=image, size=size, name='testlc')
+
+        self.assertEqual(node.name, 'testlc')
+
+    def test_ex_stop_node(self):
+        node = self.driver.list_nodes()[0]
+        self.assertTrue(self.driver.ex_stop_node(node))
+
+
+class JoyentHttp(MockHttp):
+    fixtures = ComputeFileFixtures('joyent')
+
+    def _my_packages(self, method, url, body, headers):
+        body = self.fixtures.load('my_packages.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _my_datasets(self, method, url, body, headers):
+        body = self.fixtures.load('my_datasets.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _my_machines(self, method, url, body, headers):
+        if method == 'GET':
+            body = self.fixtures.load('my_machines.json')
+        elif method == 'POST':
+            body = self.fixtures.load('my_machines_create.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _my_machines_2fb67f5f_53f2_40ab_9d99_b9ff68cfb2ab(self, method, url,
+                                                          body, headers):
+        return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED])
+
+
+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=1324548&r1=1324547&r2=1324548&view=diff
==============================================================================
--- libcloud/trunk/test/secrets.py-dist (original)
+++ libcloud/trunk/test/secrets.py-dist Wed Apr 11 04:40:50 2012
@@ -35,6 +35,7 @@ SOFTLAYER_PARAMS = ('user', 'api_key')
 VCLOUD_PARAMS = ('user', 'secret')
 VOXEL_PARAMS = ('key', 'secret')
 VPSNET_PARAMS = ('user', 'key')
+JOYENT_PARAMS = ('user', 'key')
 
 # Storage
 STORAGE_S3_PARAMS = ('key', 'secret')



Mime
View raw message