blob: 9a20ea5bfb1a638954ba1b65e82f1be657c1f680 [file] [log] [blame]
Scott Bakerf2c83982015-08-05 18:23:40 -07001# note: this module named xossite.py instead of site.py due to conflict with
2# /usr/lib/python2.7/site.py
3
4import os
5import pdb
6import sys
7import tempfile
8sys.path.append("/opt/tosca")
9from translator.toscalib.tosca_template import ToscaTemplate
10
11from core.models import User,Controller,Deployment
12
13from xosresource import XOSResource
14
15class XOSController(XOSResource):
16 provides = "tosca.nodes.Controller"
17 xos_model = Controller
Scott Bakercb595e32015-09-22 16:55:06 -070018 copyin_props = ["backend_type", "version", "auth_url", "admin_user", "admin_password", "admin_tenant", "domain"]
Scott Bakerf2c83982015-08-05 18:23:40 -070019
20 def get_xos_args(self):
Scott Bakercb595e32015-09-22 16:55:06 -070021 args = super(XOSController, self).get_xos_args()
Scott Bakerb6683402015-08-05 18:41:00 -070022
Scott Bakerf2c83982015-08-05 18:23:40 -070023 deployment_name = self.get_requirement("tosca.relationships.ControllerDeployment")
24 if deployment_name:
25 args["deployment"] = self.get_xos_object(Deployment, name=deployment_name)
26
27 return args
28
29 def create(self):
30 xos_args = self.get_xos_args()
31
32 if not xos_args.get("deployment",None):
33 raise Exception("Controller must have a deployment")
34
35 controller = Controller(**xos_args)
36 controller.caller = self.user
37 controller.save()
38
39 self.info("Created Controller '%s'" % (str(controller), ))
40
Scott Baker534a8562015-09-24 17:23:56 -070041 self.postprocess(controller)
42
Scott Bakerf2c83982015-08-05 18:23:40 -070043 def delete(self, obj):
44 if obj.controllersite.exists():
45 self.info("Controller %s has active sites; skipping delete" % obj.name)
46 return
Scott Bakerb4991712015-10-08 16:50:25 -070047 for sd in obj.sitedeployments.all():
48 if sd.nodes.exists():
49 self.info("Controller %s has active nodes; skipping delete" % obj.name)
50 return
Scott Bakerf2c83982015-08-05 18:23:40 -070051 super(XOSController, self).delete(obj)
52
53
54