From: Ciro Scognamiglio Date: Thu, 14 Aug 2014 15:25:23 +0000 (+0200) Subject: sfa monitoring fixes. cert and key is read from monitor.ini X-Git-Tag: myslice-1.0~12 X-Git-Url: http://git.onelab.eu/?p=unfold.git;a=commitdiff_plain;h=f464a3679444ab0e9690cd61ab07c82d3f5da6cf sfa monitoring fixes. cert and key is read from monitor.ini --- diff --git a/monitor/__init__.py b/monitor/__init__.py deleted file mode 100644 index 206f8c03..00000000 --- a/monitor/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import threading -from sfa.client.sfaserverproxy import SfaServerProxy -from sfa.client.return_value import ReturnValue - -path=os.path.dirname(os.path.abspath(__file__)) - -SFA_KEY_FILE=os.path.abspath(path + "../myslice/sfa.pkey") -SFA_CERT_FILE=os.path.abspath(path + "../myslice/sfa.cert") - -def get_version(url): - server=SfaServerProxy(url, SFA_KEY_FILE, SFA_CERT_FILE) - try: - version = server.GetVersion() - except Exception, why: - raise - return version \ No newline at end of file diff --git a/rest/monitor.py b/rest/monitor.py index ad110379..22521891 100644 --- a/rest/monitor.py +++ b/rest/monitor.py @@ -3,19 +3,7 @@ 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() @@ -23,8 +11,27 @@ def servicesStatus(request): 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' : '-1'}), content_type="application/json") + + + if not Config.has_option('monitor', 'pkey') : + return HttpResponse(json.dumps({'error' : '-2'}), content_type="application/json") + + pkey = os.path.abspath(Config.get('monitor', 'pkey')) + if not os.path.isfile(pkey) : + return HttpResponse(json.dumps({'error' : '-2'}), 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 +44,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