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 2014/01/31 19:32:57 UTC

[7/7] git commit: Add a test case for creating a node with VLAN.

Add a test case for creating a node with VLAN.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/9e24600b
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/9e24600b
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/9e24600b

Branch: refs/heads/trunk
Commit: 9e24600b898fb753e09695a5d7961accb7ce77f5
Parents: f086c44
Author: Tomaz Muraus <to...@apache.org>
Authored: Fri Jan 31 19:26:24 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Fri Jan 31 19:26:24 2014 +0100

----------------------------------------------------------------------
 .../servers_create_with_vlan.json               | 68 ++++++++++++++++++++
 libcloud/test/compute/test_cloudsigma_v2_0.py   | 29 ++++++++-
 2 files changed, 96 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/9e24600b/libcloud/test/compute/fixtures/cloudsigma_2_0/servers_create_with_vlan.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/cloudsigma_2_0/servers_create_with_vlan.json b/libcloud/test/compute/fixtures/cloudsigma_2_0/servers_create_with_vlan.json
new file mode 100644
index 0000000..ee1b2d7
--- /dev/null
+++ b/libcloud/test/compute/fixtures/cloudsigma_2_0/servers_create_with_vlan.json
@@ -0,0 +1,68 @@
+{
+    "objects": [
+        {
+            "context": true,
+            "cpu": 1100,
+            "cpu_model": null,
+            "cpus_instead_of_cores": false,
+            "drives": [
+                {
+                    "boot_order": 1,
+                    "dev_channel": "0:0",
+                    "device": "ide",
+                    "drive": {
+                        "resource_uri": "/api/2.0/drives/7c0efbb2-b1e8-4e77-9d72-9f9f9d75ae7b/",
+                        "uuid": "7c0efbb2-b1e8-4e77-9d72-9f9f9d75ae7b"
+                    },
+                    "runtime": null
+                }
+            ],
+            "enable_numa": false,
+            "hv_relaxed": false,
+            "hv_tsc": false,
+            "mem": 671088640,
+            "meta": {},
+            "name": "test node vlan",
+            "nics": [
+                {
+                    "boot_order": null,
+                    "firewall_policy": null,
+                    "ip_v4_conf": {
+                        "conf": "dhcp",
+                        "ip": null
+                    },
+                    "ip_v6_conf": null,
+                    "mac": "22:94:75:3c:16:34",
+                    "model": "virtio",
+                    "runtime": null,
+                    "vlan": null
+                },
+                {
+                    "boot_order": null,
+                    "firewall_policy": null,
+                    "ip_v4_conf": null,
+                    "ip_v6_conf": null,
+                    "mac": "22:84:c4:af:f3:fc",
+                    "model": "virtio",
+                    "runtime": null,
+                    "vlan": {
+                        "resource_uri": "/api/2.0/vlans/39ae851d-433f-4ac2-a803-ffa24cb1fa3e/",
+                        "uuid": "39ae851d-433f-4ac2-a803-ffa24cb1fa3e"
+                    }
+                }
+            ],
+            "owner": {
+                "resource_uri": "/api/2.0/user/69fcfc03-d635-4f99-a8b3-e1b73637cb5d/",
+                "uuid": "69fcfc03-d635-4f99-a8b3-e1b73637cb5d"
+            },
+            "requirements": [],
+            "resource_uri": "/api/2.0/servers/c8b034fb-9e66-4892-be12-a36121d4b704/",
+            "runtime": null,
+            "smp": 1,
+            "status": "stopped",
+            "tags": [],
+            "uuid": "9de75ed6_fd33_45e2_963f_d405f31fd911",
+            "vnc_password": "testserver"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/9e24600b/libcloud/test/compute/test_cloudsigma_v2_0.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_cloudsigma_v2_0.py b/libcloud/test/compute/test_cloudsigma_v2_0.py
index 358c1e7..349858e 100644
--- a/libcloud/test/compute/test_cloudsigma_v2_0.py
+++ b/libcloud/test/compute/test_cloudsigma_v2_0.py
@@ -14,6 +14,12 @@
 # limitations under the License.
 
 import sys
+
+try:
+    import simplejson as json
+except:
+    import json
+
 from libcloud.utils.py3 import httplib
 
 from libcloud.common.types import InvalidCredsError
@@ -94,6 +100,19 @@ class CloudSigmaAPI20BaseTestCase(object):
         self.assertEqual(len(node.extra['nics']), 1)
         self.assertEqual(node.extra['nics'][0]['ip_v4_conf']['conf'], 'dhcp')
 
+    def test_create_node_with_vlan(self):
+        image = self.driver.list_images()[0]
+        size = self.driver.list_sizes()[0]
+
+        vlan_uuid = '39ae851d-433f-4ac2-a803-ffa24cb1fa3e'
+
+        node = self.driver.create_node(name='test node vlan', size=size,
+                                       image=image, ex_vlan=vlan_uuid)
+        self.assertEqual(node.name, 'test node vlan')
+        self.assertEqual(len(node.extra['nics']), 2)
+        self.assertEqual(node.extra['nics'][0]['ip_v4_conf']['conf'], 'dhcp')
+        self.assertEqual(node.extra['nics'][1]['vlan']['uuid'], vlan_uuid)
+
     def test_destroy_node(self):
         status = self.driver.destroy_node(node=self.node)
         self.assertTrue(status)
@@ -436,7 +455,15 @@ class CloudSigmaMockHttp(MockHttpTestCase):
     def _api_2_0_servers(self, method, url, body, headers):
         if method == 'POST':
             # create_node
-            body = self.fixtures.load('servers_create.json')
+
+            parsed = json.loads(body)
+
+            if 'vlan' in parsed['name']:
+                self.assertEqual(len(parsed['nics']), 2)
+                body = self.fixtures.load('servers_create_with_vlan.json')
+            else:
+                body = self.fixtures.load('servers_create.json')
+
             return (httplib.CREATED, body, {}, httplib.responses[httplib.CREATED])
 
     def _api_2_0_servers_9de75ed6_fd33_45e2_963f_d405f31fd911_action_start(self, method, url, body, headers):