blob: 3f3a98f9ed125d9e8e73fe1736c40d1d2cc4974f [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 SFlowService
Scott Baker31acc652016-06-23 15:47:56 -070010
11from service import XOSService
12
13class XOSSFlowService(XOSService):
14 provides = "tosca.nodes.SFlowService"
15 xos_model = SFlowService
16 copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "versionNumber", "sflow_port", "sflow_api_port"]
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