blob: 40c394f5a15c15aca05528424195f99edfdbb71a [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
Srikanth Vavilapallid84b7b72016-06-28 00:19:07 +00009from services.monitoring.models import CeilometerService
Scott Baker31acc652016-06-23 15:47:56 -070010
11from service import XOSService
12
13class XOSCeilometerService(XOSService):
14 provides = "tosca.nodes.CeilometerService"
15 xos_model = CeilometerService
Srikanth Vavilapallid84b7b72016-06-28 00:19:07 +000016 copyin_props = ["view_url", "icon_url", "enabled", "published", "private_key_fn", "public_key", "versionNumber", "ceilometer_pub_sub_url"]
Scott Baker31acc652016-06-23 15:47:56 -070017
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