test for ports
diff --git a/xos/tosca/tests/porttest.py b/xos/tosca/tests/porttest.py
new file mode 100644
index 0000000..c7efe33
--- /dev/null
+++ b/xos/tosca/tests/porttest.py
@@ -0,0 +1,168 @@
+from basetest import BaseToscaTest
+
+from core.models import Network, Slice, NetworkTemplate, NetworkSlice, Port, Sliver
+
+class PortTest(BaseToscaTest):
+ tests = ["create_port_minimal",
+ "create_two_ports",
+ "create_four_ports",
+ "add_port_after_network"]
+
+ def cleanup(self):
+ self.try_to_delete(Sliver, name="test_compute1")
+ self.try_to_delete(Sliver, name="test_compute2")
+ self.try_to_delete(Network, name="test_net")
+ self.try_to_delete(Slice, name="testsite_slice1")
+ self.try_to_delete(Slice, name="testsite_slice2")
+
+ @property
+ def slice1(self):
+ return Slice.objects.get(name="testsite_slice1")
+
+ @property
+ def slice2(self):
+ return Slice.objects.get(name="testsite_slice2")
+
+ @property
+ def private(self):
+ return NetworkTemplate.objects.get(name="Private")
+
+ @property
+ def test_slice1_1(self):
+ return Sliver.objects.get(name="test_slice1-1")
+
+ @property
+ def test_slice1_2(self):
+ return Sliver.objects.get(name="test_slice1-2")
+
+ @property
+ def test_slice2_1(self):
+ return Sliver.objects.get(name="test_slice2-1")
+
+ @property
+ def test_slice2_2(self):
+ return Sliver.objects.get(name="test_slice2-2")
+
+ def make_compute(self, slice, name):
+ return self.make_nodetemplate(name, "tosca.nodes.Compute",
+ caps={"host": {"num_cpus": "1", "disk_size": "10 GB", "mem_size": "4 MB"},
+ "os": {"architecture": "x86_64", "type": "linux", "distribution": "rhel", "version": "6.5"}},
+ reqs=[(slice, "tosca.relationships.MemberOfSlice")])
+
+ def get_base_templates(self):
+ return self.make_nodetemplate("testsite", "tosca.nodes.Site") + \
+ self.make_nodetemplate("testsite_slice1", "tosca.nodes.Slice", reqs=[("testsite", "tosca.relationships.MemberOfSite")]) + \
+ self.make_nodetemplate("testsite_slice2", "tosca.nodes.Slice", reqs=[("testsite", "tosca.relationships.MemberOfSite")]) + \
+ self.make_nodetemplate("Private", "tosca.nodes.NetworkTemplate") + \
+ self.make_compute("testsite_slice1", "test_slice1-1") + \
+ self.make_compute("testsite_slice1", "test_slice1-2") +\
+ self.make_compute("testsite_slice2", "test_slice2-1") + \
+ self.make_compute("testsite_slice2", "test_slice2-2")
+
+ def create_port_minimal(self):
+ self.assert_noobj(Network, "test_net")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("test_net", "tosca.nodes.network.Network",
+ reqs=[("testsite_slice1", "tosca.relationships.MemberOfSlice"),
+ ("Private", "tosca.relationships.UsesNetworkTemplate")]) +
+ self.make_nodetemplate("test_port", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice1-1", "tosca.relationships.network.BindsTo")]))
+
+ net=self.assert_obj(Network, "test_net")
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+ assert(len(port)==1)
+ port=port[0]
+
+ def create_two_ports(self):
+ self.assert_noobj(Network, "test_net")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("test_net", "tosca.nodes.network.Network",
+ reqs=[("testsite_slice1", "tosca.relationships.MemberOfSlice"),
+ ("Private", "tosca.relationships.UsesNetworkTemplate")]) +
+ self.make_nodetemplate("test_port1", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice1-1", "tosca.relationships.network.BindsTo")]) +
+ self.make_nodetemplate("test_port2", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice1-2", "tosca.relationships.network.BindsTo")]))
+
+ net=self.assert_obj(Network, "test_net")
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+ assert(len(port)==1)
+ port=port[0]
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice1_2)
+ assert(len(port)==1)
+ port=port[0]
+
+ def create_four_ports(self):
+ self.assert_noobj(Network, "test_net")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("test_net", "tosca.nodes.network.Network",
+ reqs=[("testsite_slice1", "tosca.relationships.MemberOfSlice"),
+ ("Private", "tosca.relationships.UsesNetworkTemplate")]) +
+ self.make_nodetemplate("test_port1", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice1-1", "tosca.relationships.network.BindsTo")]) +
+ self.make_nodetemplate("test_port2", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice1-2", "tosca.relationships.network.BindsTo")]) +
+ self.make_nodetemplate("test_port3", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice2-1", "tosca.relationships.network.BindsTo")]) +
+ self.make_nodetemplate("test_port4", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice2-2", "tosca.relationships.network.BindsTo")]))
+
+ net=self.assert_obj(Network, "test_net")
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+ assert(len(port)==1)
+ port=port[0]
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice1_2)
+ assert(len(port)==1)
+ port=port[0]
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice2_2)
+ assert(len(port)==1)
+ port=port[0]
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice2_2)
+ assert(len(port)==1)
+ port=port[0]
+
+ def add_port_after_network(self):
+ self.assert_noobj(Network, "test_net")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("test_net", "tosca.nodes.network.Network",
+ reqs=[("testsite_slice1", "tosca.relationships.MemberOfSlice"),
+ ("Private", "tosca.relationships.UsesNetworkTemplate")]))
+
+
+ orig_net=self.assert_obj(Network, "test_net")
+
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("test_net", "tosca.nodes.network.Network",
+ reqs=[("testsite_slice1", "tosca.relationships.MemberOfSlice"),
+ ("Private", "tosca.relationships.UsesNetworkTemplate")]) +
+ self.make_nodetemplate("test_port1", "tosca.nodes.network.Port",
+ reqs=[("test_net", "tosca.relationships.network.LinksTo"),
+ ("test_slice1-1", "tosca.relationships.network.BindsTo")]))
+
+ net=self.assert_obj(Network, "test_net")
+
+ assert(orig_net.id == net.id)
+
+ port=Port.objects.filter(network=net, sliver=self.test_slice1_1)
+ assert(len(port)==1)
+ port=port[0]
+
+
+if __name__ == "__main__":
+ PortTest()
+
+