X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=rest%2Fmonitor.py;h=d9a49391c35ca8c669b168598be56a677601808a;hb=deee82377a1f72626cede01fdfec5e9d7cc274ce;hp=ad1103799798112cff7e833924db914b493c2a0e;hpb=a8b4d52df438751ce078700eab547e84075e9420;p=myslice.git diff --git a/rest/monitor.py b/rest/monitor.py index ad110379..d9a49391 100644 --- a/rest/monitor.py +++ b/rest/monitor.py @@ -3,28 +3,36 @@ from sfa.client.return_value import ReturnValue from django.http import HttpResponse from rest import error import os,json -import ConfigParser - -def sfaGetVersion(url): - cert = os.getcwd() + "/myslice/sfa.cert" - pkey = os.getcwd() + "/myslice/sfa.pkey" - - server = SfaServerProxy(url, pkey, cert) - try: - version = server.GetVersion() - except Exception, e: - return False - - return version +import ConfigParser def servicesStatus(request): Config = ConfigParser.ConfigParser() - Config.read(os.getcwd() + "/myslice/monitor.ini") + monitor_file = os.path.abspath(os.path.dirname(__file__) + '/../myslice/monitor.ini') + Config.read(monitor_file) result = {} + if not Config.has_option('monitor', 'cert') : + return HttpResponse(json.dumps({'error' : '-1'}), content_type="application/json") + + cert = os.path.abspath(Config.get('monitor', 'cert')) + if not os.path.isfile(cert) : + return HttpResponse(json.dumps({'error' : '-2'}), content_type="application/json") + + + if not Config.has_option('monitor', 'pkey') : + return HttpResponse(json.dumps({'error' : '-3'}), content_type="application/json") + + pkey = os.path.abspath(Config.get('monitor', 'pkey')) + if not os.path.isfile(pkey) : + return HttpResponse(json.dumps({'error' : '-4'}), content_type="application/json") + services = Config.sections() for s in services : + + if s == 'monitor' : + continue + if Config.has_option(s, 'url') : result[s] = {} @@ -37,17 +45,19 @@ def servicesStatus(request): if Config.has_option(s, 'type') : result[s]['type'] = Config.get(s, 'type') - ret = sfaGetVersion(Config.get(s, 'url')) - - if ret : + server = SfaServerProxy(Config.get(s, 'url'), pkey, cert) + try: + version = server.GetVersion() + result[s]['status'] = 'ok' - if 'interface' in ret : # registry - result[s]['version'] = ret['sfa'] + if 'interface' in version : # registry + result[s]['version'] = version['sfa'] else : - result[s]['version'] = ret['geni_api'] - else : + result[s]['version'] = version['geni_api'] + + except Exception, e: result[s]['status'] = 'ko' - + - return HttpResponse(json.dumps(result), content_type="application/json") \ No newline at end of file + return HttpResponse(json.dumps(result), content_type="application/json")