blob: e77fa55b3796480cbc7106fc30a0f317eea53222 [file] [log] [blame]
Scott Baker31acc652016-06-23 15:47:56 -07001import os
2import pdb
3import sys
4import tempfile
5sys.path.append("/opt/tosca")
6from translator.toscalib.tosca_template import ToscaTemplate
7
8from core.models import ServiceAttribute
9from services.ceilometer.models import CeilometerService
10
11from service import XOSService
12
13class XOSCeilometerService(XOSService):
14 provides = "tosca.nodes.CeilometerService"
15 xos_model = CeilometerService
16 copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "versionNumber", "ceilometer_pub_sub_url"]
17
18 def set_service_attr(self, obj, prop_name, value):
19 value = self.try_intrinsic_function(value)
20 if value:
21 attrs = ServiceAttribute.objects.filter(service=obj, name=prop_name)
22 if attrs:
23 attr = attrs[0]
24 if attr.value != value:
25 self.info("updating attribute %s" % prop_name)
26 attr.value = value
27 attr.save()
28 else:
29 self.info("adding attribute %s" % prop_name)
30 ta = ServiceAttribute(service=obj, name=prop_name, value=value)
31 ta.save()
32
33 def postprocess(self, obj):
34 props = self.nodetemplate.get_properties()
35 for (k,d) in props.items():
36 v = d.value
37 if k.startswith("config_"):
38 self.set_service_attr(obj, k, v)
39 elif k.startswith("rest_"):
40 self.set_service_attr(obj, k, v)
41