From: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
updage tests/test_model.py and tests/test_rest.py
Signed-off-by: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
---
tests/test_model.py | 22 ++++++++++++++++++++++
tests/test_rest.py | 27 +++++++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/tests/test_model.py b/tests/test_model.py
index c6c5d0e..547ad6b 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -131,6 +131,14 @@ class ModelTests(unittest.TestCase):
inst.vms_create(params)
rollback.prependDefer(inst.vm_delete, 'kimchi-ifaces')
+ # Create a network
+ net_name = 'test-network'
+ net_args = {'name': net_name,
+ 'connection': 'nat',
+ 'subnet': '127.0.100.0/24'}
+ inst.networks_create(net_args)
+ rollback.prependDefer(inst.network_delete, net_name)
+
ifaces = inst.vmifaces_get_list('kimchi-ifaces')
self.assertEquals(1, len(ifaces))
@@ -139,6 +147,20 @@ class ModelTests(unittest.TestCase):
self.assertEquals("default", iface['network'])
self.assertIn("model", iface)
+ # attach network interface to vm
+ iface_args = {"type": "network",
+ "network": "test-network",
+ "model": "virtio"}
+ mac = inst.vmifaces_create('kimchi-ifaces', iface_args)
+ self.assertEquals(17, len(mac))
+ # detach network interface from vm
+ rollback.prependDefer(inst.vmiface_delete, 'kimchi-ifaces', mac)
+
+ iface = inst.vmiface_lookup('kimchi-ifaces', mac)
+ self.assertEquals("network", iface["type"])
+ self.assertEquals("test-network", iface['network'])
+ self.assertEquals("virtio", iface["model"])
+
@unittest.skipUnless(utils.running_as_root(), 'Must be run as root')
def test_vm_storage_provisioning(self):
inst = kimchi.model.Model(objstore_loc=self.tmp_store)
diff --git a/tests/test_rest.py b/tests/test_rest.py
index ac533ea..0ed293b 100644
--- a/tests/test_rest.py
+++ b/tests/test_rest.py
@@ -360,6 +360,16 @@ class RestTests(unittest.TestCase):
rollback.prependDefer(self.request,
'/vms/test-vm', '{}',
'DELETE')
+ # Create a network
+ req = json.dumps({'name': 'test-network',
+ 'connection': 'nat',
+ 'net': '127.0.1.0/24'})
+ resp = self.request('/networks', req, 'POST')
+ self.assertEquals(201, resp.status)
+ # Delete the network
+ rollback.prependDefer(self.request,
+ '/networks/test-network', '{}',
'DELETE')
+
ifaces = json.loads(self.request('/vms/test-vm/ifaces').read())
self.assertEquals(1, len(ifaces))
@@ -370,6 +380,23 @@ class RestTests(unittest.TestCase):
self.assertEquals(17, len(res['mac']))
self.assertEquals('virtio', res['model'])
+ # attach network interface to vm
+ req = json.dumps({"type": "network",
+ "network": "test-network",
+ "model": "virtio"})
+ resp = self.request('/vms/test-vm/ifaces', req, 'POST')
+ self.assertEquals(201, resp.status)
+ iface = json.loads(resp.read())
+
+ self.assertEquals('test-network', iface['network'])
+ self.assertEquals(17, len(iface['mac']))
+ self.assertEquals('virtio', iface['model'])
+ self.assertEquals('network', iface['type'])
+
+ # detach network interface from vm
+ resp = self.request('/vms/test-vm/ifaces/%s' % iface['mac'],
+ '{}', 'DELETE')
+ self.assertEquals(204, resp.status)
def test_vm_customise_storage(self):
# Create a Template
--
1.8.4.2