many more test cases
diff --git a/xos/tosca/tests/controllertest.py b/xos/tosca/tests/controllertest.py
index 5746ada..2b7ba55 100644
--- a/xos/tosca/tests/controllertest.py
+++ b/xos/tosca/tests/controllertest.py
@@ -5,7 +5,9 @@
class ControllerTest(BaseToscaTest):
tests = ["create_controller_minimal",
"create_controller_maximal",
- "destroy_controller"]
+ "create_controller_nocreate",
+ "destroy_controller",
+ "destroy_controller_nodelete"]
def cleanup(self):
self.try_to_delete(Controller, name="testcon")
@@ -53,6 +55,45 @@
domain="mydomain",
deployment=dep)
+ def create_controller_nocreate(self):
+ self.assert_noobj(Controller, "testcon")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testcon", "tosca.nodes.Controller",
+ reqs=[("testdep", "tosca.relationships.ControllerDeployment")],
+ props={"no-create": True}))
+ dep = self.assert_obj(Deployment, "testdep")
+ self.assert_noobj(Controller, "testcon")
+
+ def update_controller(self):
+ self.assert_noobj(Controller, "testcon")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testcon", "tosca.nodes.Controller",
+ reqs=[("testdep", "tosca.relationships.ControllerDeployment")]))
+ dep = self.assert_obj(Deployment, "testdep")
+ orig_con = self.assert_obj(Controller, "testcon",
+ backend_type="",
+ version="",
+ auth_url=None,
+ admin_user=None,
+ admin_password=None,
+ admin_tenant=None,
+ domain=None,
+ deployment=dep)
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testcon", "tosca.nodes.Controller",
+ reqs=[("testdep", "tosca.relationships.ControllerDeployment")],
+ props={"version": "1.1"}))
+ con = self.assert_obj(Controller, "testcon",
+ backend_type="",
+ version="1.1",
+ auth_url=None,
+ admin_user=None,
+ admin_password=None,
+ admin_tenant=None,
+ domain=None,
+ deployment=dep)
+ assert(orig_con.id == con.id)
+
def destroy_controller(self):
self.assert_noobj(Controller, "testcon")
self.execute(self.get_base_templates() +
@@ -64,6 +105,24 @@
reqs=[("testdep", "tosca.relationships.ControllerDeployment")]))
self.assert_noobj(Controller, "testcon")
+ def destroy_controller_nodelete(self):
+ self.assert_noobj(Controller, "testcon")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testcon", "tosca.nodes.Controller",
+ reqs=[("testdep", "tosca.relationships.ControllerDeployment")]))
+ orig_con = self.assert_obj(Controller, "testcon")
+ # NOTE: Had to specify no-delete on the deployment as well, otherwise
+ # the deployment deletion would cause the controller to be deleted
+ # as well. I'm thinking this is as it should be, but it's a little
+ # counter-inutitive.
+ self.destroy(self.make_nodetemplate("testdep", "tosca.nodes.Deployment",
+ props={"no-delete": True}) +
+ self.make_nodetemplate("testcon", "tosca.nodes.Controller",
+ reqs=[("testdep", "tosca.relationships.ControllerDeployment")],
+ props={"no-delete": True}))
+ con = self.assert_obj(Controller, "testcon")
+ assert(orig_con.id == con.id)
+
if __name__ == "__main__":
ControllerTest()
diff --git a/xos/tosca/tests/deploymenttest.py b/xos/tosca/tests/deploymenttest.py
index 0156613..91caf75 100644
--- a/xos/tosca/tests/deploymenttest.py
+++ b/xos/tosca/tests/deploymenttest.py
@@ -10,6 +10,9 @@
"create_deployment_one_image",
"create_deployment_two_images",
"create_deployment_privilege",
+ "create_deployment_nocreate",
+ "update_deployment",
+ "update_deployment_noupdate",
"destroy_deployment",
"destroy_deployment_nodelete"
]
@@ -88,6 +91,35 @@
dps = DeploymentPrivilege.objects.filter(user=user, deployment=dep)
assert(len(dps) == 1)
+ def create_deployment_nocreate(self):
+ self.assert_noobj(Deployment, "testdep")
+ self.execute(self.make_nodetemplate("testdep", "tosca.nodes.Deployment",
+ props={"no-create": True}))
+ self.assert_noobj(Deployment, "testdep")
+
+ def update_deployment(self):
+ self.assert_noobj(Deployment, "testdep")
+ self.execute(self.make_nodetemplate("testdep", "tosca.nodes.Deployment"))
+ orig_dep = self.assert_obj(Deployment, "testdep",
+ accessControl="allow all")
+ self.execute(self.make_nodetemplate("testdep", "tosca.nodes.Deployment",
+ props={"accessControl": "allow padmin@vicci.org"}))
+ dep = self.assert_obj(Deployment, "testdep",
+ accessControl="allow padmin@vicci.org")
+ assert(dep.id == orig_dep.id)
+
+ def update_deployment_noupdate(self):
+ self.assert_noobj(Deployment, "testdep")
+ self.execute(self.make_nodetemplate("testdep", "tosca.nodes.Deployment"))
+ orig_dep = self.assert_obj(Deployment, "testdep",
+ accessControl="allow all")
+ self.execute(self.make_nodetemplate("testdep", "tosca.nodes.Deployment",
+ props={"accessControl": "allow padmin@vicci.org",
+ "no-update": True}))
+ dep = self.assert_obj(Deployment, "testdep",
+ accessControl="allow all")
+ assert(dep.id == orig_dep.id)
+
def destroy_deployment(self):
self.assert_noobj(Deployment, "testdep")
self.execute(self.make_nodetemplate("testdep", "tosca.nodes.Deployment"))
diff --git a/xos/tosca/tests/nodetest.py b/xos/tosca/tests/nodetest.py
index d49dab1..76c56a8 100644
--- a/xos/tosca/tests/nodetest.py
+++ b/xos/tosca/tests/nodetest.py
@@ -4,7 +4,9 @@
class NodeTest(BaseToscaTest):
tests = ["create_node_minimal",
+ "create_node_nocreate",
"destroy_node",
+ "destroy_node_nodelete",
]
def cleanup(self):
@@ -43,7 +45,18 @@
self.make_nodetemplate("testnode", "tosca.nodes.Node",
reqs=[("testsite", "tosca.relationships.MemberOfSite"),
("testdep", "tosca.relationships.MemberOfDeployment")]))
- self.assert_obj(Node, "testnode")
+ node = self.assert_obj(Node, "testnode")
+ assert(node.site_deployment is not None)
+ assert(node.site is not None)
+
+ def create_node_nocreate(self):
+ self.assert_noobj(Node, "testnode")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testnode", "tosca.nodes.Node",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite"),
+ ("testdep", "tosca.relationships.MemberOfDeployment")],
+ props={"no-create": True}))
+ self.assert_noobj(Node, "testnode")
def destroy_node(self):
self.assert_noobj(Node, "testnode")
@@ -58,6 +71,20 @@
("testdep", "tosca.relationships.MemberOfDeployment")]))
self.assert_noobj(Node, "testnode")
+ def destroy_node_nodelete(self):
+ self.assert_noobj(Node, "testnode")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testnode", "tosca.nodes.Node",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite"),
+ ("testdep", "tosca.relationships.MemberOfDeployment")]))
+ self.assert_obj(Node, "testnode")
+ self.destroy(self.get_base_templates() +
+ self.make_nodetemplate("testnode", "tosca.nodes.Node",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite"),
+ ("testdep", "tosca.relationships.MemberOfDeployment")],
+ props={"no-delete": True}))
+ self.assert_obj(Node, "testnode")
+
if __name__ == "__main__":
NodeTest()
diff --git a/xos/tosca/tests/sitetest.py b/xos/tosca/tests/sitetest.py
index c9a4743..5321159 100644
--- a/xos/tosca/tests/sitetest.py
+++ b/xos/tosca/tests/sitetest.py
@@ -7,7 +7,11 @@
"create_site_privilege_tech",
"create_site_privilege_admin",
"create_site_privilege_pi",
+ "create_site_nocreate",
+ "update_site",
+ "update_site_noupdate",
"destroy_site",
+ "destroy_site_nodelete"
]
def cleanup(self):
@@ -60,6 +64,31 @@
assert(len(sps) == 1)
assert(sps[0].role.role == "pi")
+ def create_site_nocreate(self):
+ self.assert_noobj(Site, "testsite")
+ self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site",
+ props={"no-create": True}))
+ site = self.assert_noobj(Site, "testsite")
+
+ def update_site(self):
+ self.assert_noobj(Site, "testsite")
+ self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site"))
+ orig_site = self.assert_obj(Site, "testsite", site_url=None)
+ self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site",
+ props={"site_url": "http://foo.com/"}))
+ site = self.assert_obj(Site, "testsite", site_url="http://foo.com/")
+ assert(orig_site.id == site.id)
+
+ def update_site_noupdate(self):
+ self.assert_noobj(Site, "testsite")
+ self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site"))
+ orig_site = self.assert_obj(Site, "testsite", site_url=None)
+ self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site",
+ props={"site_url": "http://foo.com/",
+ "no-update": True}))
+ site = self.assert_obj(Site, "testsite", site_url=None)
+ assert(orig_site.id == site.id)
+
def destroy_site(self):
self.assert_noobj(Site, "testsite")
self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site"))
@@ -67,6 +96,14 @@
self.destroy(self.make_nodetemplate("testsite", "tosca.nodes.Site"))
self.assert_noobj(Site, "testsite")
+ def destroy_site_nodelete(self):
+ self.assert_noobj(Site, "testsite")
+ self.execute(self.make_nodetemplate("testsite", "tosca.nodes.Site"))
+ site = self.assert_obj(Site, "testsite")
+ self.destroy(self.make_nodetemplate("testsite", "tosca.nodes.Site",
+ props={"no-delete": True}))
+ self.assert_obj(Site, "testsite")
+
if __name__ == "__main__":
SiteTest()
diff --git a/xos/tosca/tests/slicetest.py b/xos/tosca/tests/slicetest.py
index 315f862..98de4e6 100644
--- a/xos/tosca/tests/slicetest.py
+++ b/xos/tosca/tests/slicetest.py
@@ -6,7 +6,11 @@
tests = ["create_slice_minimal",
"create_slice_maximal",
"create_slice_privilege",
- "destroy_slice"]
+ "create_slice_nocreate",
+ "update_slice",
+ "update_slice_noupdate",
+ "destroy_slice",
+ "destroy_slice_nodelete"]
def cleanup(self):
self.try_to_delete(Slice, name="testsite_testslice")
@@ -43,6 +47,41 @@
dps = SlicePrivilege.objects.filter(user=user, slice=slice)
assert(len(dps) == 1)
+ def create_slice_nocreate(self):
+ self.assert_noobj(Slice, "testsite_testslice")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")],
+ props={"no-create": True}))
+ self.assert_noobj(Slice, "testsite_testslice")
+
+ def update_slice(self):
+ self.assert_noobj(Slice, "testsite_testslice")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+ orig_slice = self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")],
+ props={"description": "foo"}))
+ slice = self.assert_obj(Slice, "testsite_testslice", enabled=True, description="foo", slice_url="", max_instances=10)
+ assert(orig_slice.id == slice.id)
+
+ def update_slice_noupdate(self):
+ self.assert_noobj(Slice, "testsite_testslice")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+ orig_slice = self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")],
+ props={"description": "foo",
+ "no-update": True}))
+ slice = self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+ assert(orig_slice.id == slice.id)
+
def destroy_slice(self):
self.assert_noobj(Slice, "testsite_testslice")
self.execute(self.get_base_templates() +
@@ -54,6 +93,19 @@
reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
self.assert_noobj(Slice, "testsite_testslice")
+ def destroy_slice_nodelete(self):
+ self.assert_noobj(Slice, "testsite_testslice")
+ self.execute(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+ orig_slice = self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+ self.destroy(self.get_base_templates() +
+ self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+ reqs=[("testsite", "tosca.relationships.MemberOfSite")],
+ props={"no-delete": True}))
+ slice = self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+ assert(slice.id == orig_slice.id)
+
if __name__ == "__main__":
SliceTest()