Initial openvim v0.4.6 upload
[osm/openvim.git] / charm / openvim / layer-openvim / tests / 10-smoke
diff --git a/charm/openvim/layer-openvim/tests/10-smoke b/charm/openvim/layer-openvim/tests/10-smoke
new file mode 100755 (executable)
index 0000000..33d7b43
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/python3
+
+import amulet
+import openvim
+
+def deploy_openvim():
+    d = amulet.Deployment()
+    d.add("mysql", series="trusty")
+    d.add("openvim-controller", series="xenial")
+    d.add("openvim-compute", charm="local:xenial/openvim-compute", series="xenial")
+    d.relate("openvim-controller:db", "mysql:db")
+    d.relate("openvim-controller:compute", "openvim-compute:compute")
+    d.setup(timeout=900)
+    d.sentry.wait()
+    return d
+
+def get_openvim_connection(deployment):
+    address = deployment.sentry["openvim-controller"][0].info["public-address"]
+    return openvim.connect(address)
+
+def create_vm(deployment):
+    c = get_openvim_connection(deployment)
+    tenant = c.get_tenants()[0]
+    c.set_active_tenant(tenant)
+    networks = c.get_networks()
+    image = c.get_images()[0]
+    flavor = c.get_flavors()[0]
+
+    server = c.create_server(
+        name="vm",
+        description="test vm",
+        image=image,
+        flavor=flavor,
+        networks=networks
+    )
+
+    return server
+
+def test_vm_creation():
+    d = deploy_openvim()
+    create_vm(d)
+
+if __name__ == "__main__":
+    test_vm_creation()