blob: 34b95c2d056a573871ec2ab4d1716cac99f62bfe [file] [log] [blame]
import os
import pdb
import sys
import tempfile
sys.path.append("/opt/tosca")
from translator.toscalib.tosca_template import ToscaTemplate
from core.models import ServiceController, ServiceControllerResource
from xosresource import XOSResource
class XOSServiceController(XOSResource):
provides = "tosca.nodes.ServiceController"
xos_model = ServiceController
copyin_props = ["base_url"]
def postprocess_resource_prop(self, obj, kind, format):
value = self.get_property(kind)
if value:
scr = ServiceControllerResource.objects.filter(service_controller=obj, kind=kind, format=format)
if scr:
scr=scr[0]
if scr.url != value:
self.info("updating resource %s" % kind)
scr.url = value
scr.save()
else:
self.info("adding resource %s" % kind)
scr = ServiceControllerResource(service_controller=obj, name=kind, kind=kind, format=format, url=value)
scr.save()
def postprocess(self, obj):
# allow these common resource to be specified directly by the ServiceController tosca object
self.postprocess_resource_prop(obj, "models", "python")
self.postprocess_resource_prop(obj, "admin", "python")
self.postprocess_resource_prop(obj, "tosca_custom_types", "yaml")
self.postprocess_resource_prop(obj, "synchronizer", "manifest")
self.postprocess_resource_prop(obj, "private_key", "raw")
self.postprocess_resource_prop(obj, "public_key", "raw")
self.postprocess_resource_prop(obj, "rest_service", "python")
self.postprocess_resource_prop(obj, "rest_tenant", "python")