blob: 2b7ba55674fc837311ba2b8082d9646cf681cdc4 [file] [log] [blame]
from basetest import BaseToscaTest
from core.models import Controller, Deployment
class ControllerTest(BaseToscaTest):
tests = ["create_controller_minimal",
"create_controller_maximal",
"create_controller_nocreate",
"destroy_controller",
"destroy_controller_nodelete"]
def cleanup(self):
self.try_to_delete(Controller, name="testcon")
self.try_to_delete(Deployment, name="testdep")
def get_base_templates(self):
return self.make_nodetemplate("testdep", "tosca.nodes.Deployment")
def create_controller_minimal(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")
self.assert_obj(Controller, "testcon",
backend_type="",
version="",
auth_url=None,
admin_user=None,
admin_password=None,
admin_tenant=None,
domain=None,
deployment=dep)
def create_controller_maximal(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={"backend_type": "openstack",
"version": "v1.23.4",
"auth_url": "http://foo.com/",
"admin_user": "johndoe",
"admin_password": "letmeout",
"admin_tenant": "12345678",
"domain": "mydomain"}))
dep = self.assert_obj(Deployment, "testdep")
self.assert_obj(Controller, "testcon",
backend_type="openstack",
version="v1.23.4",
auth_url="http://foo.com/",
admin_user="johndoe",
admin_password="letmeout",
admin_tenant="12345678",
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() +
self.make_nodetemplate("testcon", "tosca.nodes.Controller",
reqs=[("testdep", "tosca.relationships.ControllerDeployment")]))
self.assert_obj(Controller, "testcon")
self.destroy(self.get_base_templates() +
self.make_nodetemplate("testcon", "tosca.nodes.Controller",
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()