fixes, activity monitor module
[myslice.git] / rest / monitor.py
1 from sfa.client.sfaserverproxy import SfaServerProxy
2 from sfa.client.return_value import ReturnValue
3 from django.http import HttpResponse
4 from rest import error
5 import os,json
6 import ConfigParser
7
8 def sfaGetVersion(url):
9     cert = os.getcwd() + "/myslice/sfa.cert"
10     pkey = os.getcwd() + "/myslice/sfa.pkey"
11
12     server = SfaServerProxy(url, pkey, cert)
13     try:
14         version = server.GetVersion()
15     except Exception, e:
16         return False
17     
18     return version
19
20 def servicesStatus(request):
21     Config = ConfigParser.ConfigParser()
22     Config.read(os.getcwd() + "/myslice/monitor.ini")
23     
24     result = {}
25     
26     services = Config.sections()
27     for s in services :
28         if Config.has_option(s, 'url') :
29             result[s] = {}
30
31             if Config.has_option(s, 'name') :
32                 result[s]['name'] = Config.get(s, 'name')
33             
34             if Config.has_option(s, 'description') :
35                 result[s]['description'] = Config.get(s, 'description')
36             
37             if Config.has_option(s, 'type') :
38                 result[s]['type'] = Config.get(s, 'type')
39                 
40             ret = sfaGetVersion(Config.get(s, 'url'))
41             
42             if ret :
43                 result[s]['status'] = 'ok'
44                 
45                 if 'interface' in ret : # registry
46                     result[s]['version'] = ret['sfa']
47                 else :
48                     result[s]['version'] = ret['geni_api']
49             else :
50                 result[s]['status'] = 'ko'
51                 
52         
53     return HttpResponse(json.dumps(result), content_type="application/json")