def executeGet(self): """ Request: (...)/istsos/wa/istsos/<service name>/status/?type=delay The response is: >>> [ { "name": "air-rainfall", "children": [ { "name": "ok", "children": [ {} ] }, { "name": "pending", "children": [ { "delay": 35243.204681, "lastObservation": "2014-05-12T07:00:00+0200", "code": [ 2 ], "name": "LOCARNO", "oum": "mm", "exceptions": [ { "status": "pending", "process": "acquisition", "datetime": "2014-05-12 09:00:00+02:00", "details": null, "message": "TypeError", "element": "LOCARNO", "id": 2 } ], "lastMeasure": "2.000000", "cycle": 4.894889539027778 }, { "delay": 540143.269259, "lastObservation": "2014-05-06T10:45:00+0200", "code": [ 1, 2, 3 ], "name": "P_LUGANO", "oum": "mm", "exceptions": [ { "details": "No exception found" } ], "lastMeasure": "32.000000", "cycle": 75.01989850819444 } ] }, { "name": "verified", "children": [ { "delay": 49163.155455, "lastObservation": "2014-05-12T03:08:00+0200", "code": [ 1, 2, 3 ], "name": "BELLINZONA", "oum": "mm", "exceptions": [ { "status": "verified", "process": "acquisition", "datetime": "2014-05-12 05:00:00+02:00", "details": null, "message": "TypeError", "element": "BELLINZONA", "id": 1 } ], "lastMeasure": "1.000000", "type": "verified", "cycle": 13.656432070833333 } ] } ] }, { "name": "air-temperature", "children":[...] } ] """ if self.service == "default": raise Exception("Status operation can not be done for default service instance.") servicedb = databaseManager.PgDB( self.serviceconf.connection['user'], self.serviceconf.connection['password'], self.serviceconf.connection['dbname'], self.serviceconf.connection['host'], self.serviceconf.connection['port']) #param = self.waEnviron['parameters']['type'][0] procedureData = [] lastValue = {'values': 'No observation', 'uom': 'No observation'} for procedure in utils.getProcedureNamesList(servicedb, self.service): #if param == 'delay': status = self.__delay(procedure['name'], servicedb) if status is None: continue #else: #raise Exception("Operation %s not permitted." % (param)) if(status['status'] == 'NOT OK'): # Require last exceptions logEnviron = self.waEnviron.copy() logEnviron['parameters'] = {} from walib.istsos.services.logs import logs log = logs.waLogs(logEnviron) logEnviron['parameters'] = {'element': [procedure['name']], 'stime': [status['lastObservation']]} log.executeGet() if(status['lastObservation'] != 'No observation'): # Convert last Observation to string status['lastObservation'] = status['lastObservation'].strftime("%Y-%m-%dT%H:%M:%S%z") lastValue = self.__getLastObservation(servicedb,procedure['name']) procedureData.append( { "procedure": procedure['name'], "status": status, "lastMeasure": lastValue, "exception": log.response['data'] } ) jsonResult = [] for op in utils.getObsPropNamesList(servicedb, self.service): propOk = [] propNotOk = [] propVerif = [] for procedure in procedureData: if self.__containsOp(procedure, op['name']): lastValue = self.__getLastValue(procedure, op['name']) jsonProc = { "name": procedure['procedure'], "lastObservation": procedure['status']['lastObservation'], "lastMeasure": lastValue['values'], "oum": lastValue['uom'], "delay": procedure['status']['delay'], "cycle": procedure['status']['cycle'] } if procedure['status']['status'] == "OK": jsonProc['type'] = 'ok' propOk.append(jsonProc) elif procedure['status']['status'] == "NOT OK": code = [] if procedure['exception']: for exc in procedure['exception']: if exc['message'] in getErrorCode: code.append(getErrorCode[exc['message']]) else: code.append(0) jsonProc['code'] = code jsonProc['exceptions'] = procedure['exception'] if(self.__checkError(procedure['exception'])): propNotOk.append(jsonProc) else: jsonProc['type'] = 'verified' propVerif.append(jsonProc) else: jsonProc['exceptions'] = [{"details": "No exceptions found"}] propNotOk.append(jsonProc) if(len(propOk) == 0): propOk.append({}) if(len(propNotOk) == 0): propNotOk.append({}) if(len(propVerif) == 0): propVerif.append({}) jsonResult.append({ "name": op['name'], "children": [ {"name": "ok", "children": propOk}, {"name":"pending", "children": propNotOk}, {"name": "verified", "children": propVerif} ] } ) self.setMessage("Status result") self.setData(jsonResult)
def initResource(waEnviron): path = waEnviron['path'] # --------------- # Entering istsos # --------------- pathinfo = copy.deepcopy(waEnviron['pathinfo']) resource = pathinfo.pop(0) if resource == "istsos": '''if 'user' in waEnviron and not waEnviron['user'].isAdmin(): from walib import users return users.waUserUnauthorized(waEnviron)''' resource = pathinfo.pop(0) # -------------------------- # Entering istsos.operations # -------------------------- if resource == "operations": resource = pathinfo.pop(0) if resource == "status": from walib.istsos import istsos return istsos.waStatus(waEnviron) elif resource == "log": from walib.istsos import istsos return istsos.waLog(waEnviron) elif resource == "about": from walib.istsos import istsos return istsos.waAbout(waEnviron) elif resource == "validatedb": from walib.istsos import istsos return istsos.waValidatedb(waEnviron) ''' checking if not need any more elif resource == "initialization": from walib.istsos import istsos return istsos.waInitialization(waEnviron)''' # -------------------------- # Entering istsos.services # -------------------------- elif resource == "services": if len(pathinfo) <= 1: from walib.istsos.services import services return services.waServices(waEnviron) else: pathinfo.pop(0) resource = pathinfo.pop(0) # Entering istsos.services.configsections if resource == "configsections": if len(pathinfo) == 0: from walib.istsos.services.configsections import configsections return configsections.waConfigsections(waEnviron) else: resource = pathinfo.pop(0) if resource == "connection": if len(pathinfo) == 0: from walib.istsos.services.configsections import connection return connection.waConnection(waEnviron) else: resource = pathinfo.pop(0) if resource == "operations": resource = pathinfo.pop(0) if resource == "validatedb": from walib.istsos.services.configsections import connection return connection.waValidatedb( waEnviron) elif resource == "getobservation": from walib.istsos.services.configsections import getobservation return getobservation.waGetobservation(waEnviron) elif resource == "paths": from walib.istsos.services.configsections import paths return paths.waPaths(waEnviron) elif resource == "authority": from walib.istsos.services.configsections import authority return authority.waAuthority(waEnviron) elif resource == "identification": from walib.istsos.services.configsections import identification return identification.waIdentification(waEnviron) elif resource == "geo": from walib.istsos.services.configsections import geo return geo.waGeo(waEnviron) elif resource == "serviceurl": from walib.istsos.services.configsections import serviceurl return serviceurl.waServiceurl(waEnviron) elif resource == "provider": from walib.istsos.services.configsections import provider return provider.waProvider(waEnviron) elif resource == "urn": from walib.istsos.services.configsections import urn return urn.waUrn(waEnviron) elif resource == "mqtt": from walib.istsos.services.configsections import mqtt return mqtt.waMqtt(waEnviron) # --------------------------------------- # Entering istsos.services.dataqualities # --------------------------------------- elif resource == "dataqualities": from walib.istsos.services.dataqualities import dataqualities return dataqualities.waDataqualities(waEnviron) # --------------------------------------- # Entering istsos.services.specimens # --------------------------------------- elif resource == "specimens": from walib.istsos.services.specimens import specimens return specimens.waSpecimens(waEnviron) # --------------------------------------- # Entering istsos.services.procedures # --------------------------------------- elif resource == "procedures": if len(pathinfo) <= 1: from walib.istsos.services.procedures import procedures return procedures.waProcedures(waEnviron) else: resource = pathinfo.pop(0) if resource == 'operations': resource = pathinfo.pop(0) if resource == "getlist": from walib.istsos.services.procedures import procedures return procedures.waGetlist(waEnviron) elif resource == "geojson": from walib.istsos.services.procedures import procedures return procedures.waGetGeoJson(waEnviron) # --------------------------------------- # Entering istsos.services.virtualprocedures # --------------------------------------- elif resource == "virtualprocedures": if len(pathinfo) <= 1: from walib.istsos.services.virtualprocedures import virtualprocedures return virtualprocedures.waVirtualProcedures(waEnviron) else: resource = pathinfo.pop(0) if resource == "operations": resource = pathinfo.pop(0) if resource == "getlist": from walib.istsos.services.virtualprocedures import virtualprocedures return virtualprocedures.waGetlist(waEnviron) resource = pathinfo.pop(0) if resource == 'code': from walib.istsos.services.virtualprocedures import code return code.waCode(waEnviron) elif resource == 'ratingcurve': from walib.istsos.services.virtualprocedures import ratingcurve return ratingcurve.waRatingcurves(waEnviron) # --------------------------------------- # Entering istsos.services.observedproperties # --------------------------------------- elif resource == "observedproperties": from walib.istsos.services.observedproperties import observedproperties return observedproperties.waObservedproperties(waEnviron) # --------------------------------------- # Entering istsos.services.uoms # --------------------------------------- elif resource == "uoms": from walib.istsos.services.uoms import uoms return uoms.waUoms(waEnviron) # --------------------------------------- # Entering istsos.services.epsgs # --------------------------------------- elif resource == "epsgs": from walib.istsos.services.epsgs import epsgs return epsgs.waEpsgs(waEnviron) # --------------------------------------- # Entering istsos.services.epsgs # --------------------------------------- elif resource == "systemtypes": from walib.istsos.services.systemtypes import systemtypes return systemtypes.waSystemTypes(waEnviron) # --------------------------------------- # Entering istsos.services.offerings # --------------------------------------- elif resource == "offerings": if len(pathinfo) <= 1: from walib.istsos.services.offerings import offerings return offerings.waOfferings(waEnviron) else: resource = pathinfo.pop(0) # remove offering name if resource == "operations": resource = pathinfo.pop(0) if resource == "getlist": from walib.istsos.services.offerings import offerings return offerings.waGetlist(waEnviron) else: resource = pathinfo.pop(0) if resource == "procedures": if len(pathinfo) <= 1: from walib.istsos.services.offerings.procedures import procedures return procedures.waProcedures(waEnviron) else: resource = pathinfo.pop(0) if resource == "operations": resource = pathinfo.pop(0) if resource == "memberslist": from walib.istsos.services.offerings.procedures import procedures return procedures.waMemberslist( waEnviron) elif resource == "nonmemberslist": from walib.istsos.services.offerings.procedures import procedures return procedures.waNonmemberslist( waEnviron) # --------------------------------------- # Entering istsos.services.operations # --------------------------------------- elif resource == "operations": resource = pathinfo.pop(0) if resource == "getobservation": from walib.istsos.services import services return services.waGetobservation(waEnviron) elif resource == "insertobservation": from walib.istsos.services import services return services.waInsertobservation(waEnviron) elif resource == "fastinsert": from walib.istsos.services import services return services.waFastInsert(waEnviron) # --------------------------------------- # Entering istsos.services.logs # --------------------------------------- elif resource == "logs": from walib.istsos.services.logs import logs return logs.waLogs(waEnviron) # --------------------------------------- # Entering istsos.services.status # --------------------------------------- elif resource == "status": from walib.istsos.services.status import status return status.waStatus(waEnviron) elif resource == "user": from walib import users return users.waUsers(waEnviron) raise Exception("Resource is not identified, check the URL")
def executeGet(self): """ Request: (...)/istsos/wa/istsos/<service name>/status/?type=delay The response is: >>> [ { "name": "air-rainfall", "children": [ { "name": "ok", "children": [ {} ] }, { "name": "pending", "children": [ { "delay": 35243.204681, "lastObservation": "2014-05-12T07:00:00+0200", "code": [ 2 ], "name": "LOCARNO", "oum": "mm", "exceptions": [ { "status": "pending", "process": "acquisition", "datetime": "2014-05-12 09:00:00+02:00", "details": null, "message": "TypeError", "element": "LOCARNO", "id": 2 } ], "lastMeasure": "2.000000", "cycle": 4.894889539027778 }, { "delay": 540143.269259, "lastObservation": "2014-05-06T10:45:00+0200", "code": [ 1, 2, 3 ], "name": "P_LUGANO", "oum": "mm", "exceptions": [ { "details": "No exception found" } ], "lastMeasure": "32.000000", "cycle": 75.01989850819444 } ] }, { "name": "verified", "children": [ { "delay": 49163.155455, "lastObservation": "2014-05-12T03:08:00+0200", "code": [ 1, 2, 3 ], "name": "BELLINZONA", "oum": "mm", "exceptions": [ { "status": "verified", "process": "acquisition", "datetime": "2014-05-12 05:00:00+02:00", "details": null, "message": "TypeError", "element": "BELLINZONA", "id": 1 } ], "lastMeasure": "1.000000", "type": "verified", "cycle": 13.656432070833333 } ] } ] }, { "name": "air-temperature", "children":[...] } ] """ if self.service == "default": raise Exception( "Status operation can not be done for default service instance." ) servicedb = databaseManager.PgDB( self.serviceconf.connection['user'], self.serviceconf.connection['password'], self.serviceconf.connection['dbname'], self.serviceconf.connection['host'], self.serviceconf.connection['port']) #param = self.waEnviron['parameters']['type'][0] procedureData = [] lastValue = {'values': 'No observation', 'uom': 'No observation'} for procedure in utils.getProcedureNamesList(servicedb, self.service): log_res = [] #if param == 'delay': status = self.__delay(procedure['name'], servicedb) if status is None: continue #else: #raise Exception("Operation %s not permitted." % (param)) #print procedure['name'] #print status['status'] if (status['status'] == 'NOT OK'): # Require last exceptions logEnviron = self.waEnviron.copy() logEnviron['parameters'] = {} from walib.istsos.services.logs import logs log = logs.waLogs(logEnviron) logEnviron['parameters'] = { 'element': [procedure['name']], 'stime': [status['lastObservation']] } log.executeGet() #print log.response['data'] log_res = log.response['data'] if (status['lastObservation'] != 'No observation'): # Convert last Observation to string status['lastObservation'] = status['lastObservation'].strftime( "%Y-%m-%dT%H:%M:%S%z") lastValue = self.__getLastObservation(servicedb, procedure['name']) procedureData.append({ "procedure": procedure['name'], "status": status, "lastMeasure": lastValue, "exception": log_res #log.response['data'] }) jsonResult = [] for op in utils.getObsPropNamesList(servicedb, self.service): propOk = [] propNotOk = [] propVerif = [] for procedure in procedureData: if self.__containsOp(procedure, op['name']): lastValue = self.__getLastValue(procedure, op['name']) jsonProc = { "name": procedure['procedure'], "lastObservation": procedure['status']['lastObservation'], "lastMeasure": lastValue['values'], "oum": lastValue['uom'], "delay": procedure['status']['delay'], "cycle": procedure['status']['cycle'] } if procedure['status']['status'] == "OK": jsonProc['type'] = 'ok' propOk.append(jsonProc) elif procedure['status']['status'] == "NOT OK": code = [] if procedure['exception']: for exc in procedure['exception']: if exc['message'] in getErrorCode: code.append(getErrorCode[exc['message']]) else: code.append(0) jsonProc['code'] = code jsonProc['exceptions'] = procedure['exception'] if (self.__checkError(procedure['exception'])): propNotOk.append(jsonProc) else: jsonProc['type'] = 'verified' propVerif.append(jsonProc) else: jsonProc['exceptions'] = [{ "details": "No exceptions found" }] propNotOk.append(jsonProc) if (len(propOk) == 0): propOk.append({}) if (len(propNotOk) == 0): propNotOk.append({}) if (len(propVerif) == 0): propVerif.append({}) jsonResult.append({ "name": op['name'], "children": [{ "name": "ok", "children": propOk }, { "name": "pending", "children": propNotOk }, { "name": "verified", "children": propVerif }] }) self.setMessage("Status result") self.setData(jsonResult)
def initResource(waEnviron): path = waEnviron['path'] # --------------- # Entering istsos # --------------- pathinfo = copy.deepcopy(waEnviron['pathinfo']) resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "istsos": resource = pathinfo.pop(0) # -------------------------- # Entering istsos.operations # -------------------------- if resource == "operations": resource = pathinfo.pop(0) if resource == "status": from walib.istsos import istsos return istsos.waStatus(waEnviron) elif resource == "log": from walib.istsos import istsos return istsos.waLog(waEnviron) elif resource == "about": from walib.istsos import istsos return istsos.waAbout(waEnviron) elif resource == "validatedb": from walib.istsos import istsos return istsos.waValidatedb(waEnviron) elif resource == "initialization": from walib.istsos import istsos return istsos.waInitialization(waEnviron) # -------------------------- # Entering istsos.services # -------------------------- elif resource == "services": #print >> sys.stderr, resource if len(pathinfo)<=1: from walib.istsos.services import services return services.waServices(waEnviron) else: pathinfo.pop(0) #print >> sys.stderr, pathinfo.pop(0) # remove service name resource = pathinfo.pop(0) # --------------------------------------- # Entering istsos.services.configsections # --------------------------------------- if resource == "configsections": #print >> sys.stderr, resource if len(pathinfo)==0: from walib.istsos.services.configsections import configsections return configsections.waConfigsections(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "connection": if len(pathinfo)==0: from walib.istsos.services.configsections import connection return connection.waConnection(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "operations": resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "validatedb": from walib.istsos.services.configsections import connection return connection.waValidatedb(waEnviron) elif resource == "getobservation": from walib.istsos.services.configsections import getobservation return getobservation.waGetobservation(waEnviron) elif resource == "paths": from walib.istsos.services.configsections import paths return paths.waPaths(waEnviron) elif resource == "authority": from walib.istsos.services.configsections import authority return authority.waAuthority(waEnviron) elif resource == "identification": from walib.istsos.services.configsections import identification return identification.waIdentification(waEnviron) elif resource == "geo": from walib.istsos.services.configsections import geo return geo.waGeo(waEnviron) elif resource == "serviceurl": from walib.istsos.services.configsections import serviceurl return serviceurl.waServiceurl(waEnviron) elif resource == "provider": from walib.istsos.services.configsections import provider return provider.waProvider(waEnviron) elif resource == "urn": from walib.istsos.services.configsections import urn return urn.waUrn(waEnviron) # --------------------------------------- # Entering istsos.services.dataqualities # --------------------------------------- elif resource == "dataqualities": #print >> sys.stderr, resource from walib.istsos.services.dataqualities import dataqualities return dataqualities.waDataqualities(waEnviron) # --------------------------------------- # Entering istsos.services.procedures # --------------------------------------- elif resource == "procedures": #print >> sys.stderr, resource if len(pathinfo)<=1: from walib.istsos.services.procedures import procedures return procedures.waProcedures(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == 'operations': resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "getlist": from walib.istsos.services.procedures import procedures return procedures.waGetlist(waEnviron) elif resource == "geojson": from walib.istsos.services.procedures import procedures return procedures.waGetGeoJson(waEnviron) # --------------------------------------- # Entering istsos.services.virtualprocedures # --------------------------------------- elif resource == "virtualprocedures": #print >> sys.stderr, resource if len(pathinfo)<=1: from walib.istsos.services.virtualprocedures import virtualprocedures return virtualprocedures.waVirtualProcedures(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "operations": #print >> sys.stderr, resource resource = pathinfo.pop(0) if resource == "getlist": #print >> sys.stderr, resource from walib.istsos.services.virtualprocedures import virtualprocedures return virtualprocedures.waGetlist(waEnviron) resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == 'code': #print >> sys.stderr, resource from walib.istsos.services.virtualprocedures import code return code.waCode(waEnviron) elif resource == 'ratingcurve': #print >> sys.stderr, resource from walib.istsos.services.virtualprocedures import ratingcurve return ratingcurve.waRatingcurves(waEnviron) # --------------------------------------- # Entering istsos.services.observedproperties # --------------------------------------- elif resource == "observedproperties": #print >> sys.stderr, resource from walib.istsos.services.observedproperties import observedproperties return observedproperties.waObservedproperties(waEnviron) # --------------------------------------- # Entering istsos.services.uoms # --------------------------------------- elif resource == "uoms": #print >> sys.stderr, resource from walib.istsos.services.uoms import uoms return uoms.waUoms(waEnviron) # --------------------------------------- # Entering istsos.services.epsgs # --------------------------------------- elif resource == "epsgs": #print >> sys.stderr, resource from walib.istsos.services.epsgs import epsgs return epsgs.waEpsgs(waEnviron) # --------------------------------------- # Entering istsos.services.epsgs # --------------------------------------- elif resource == "systemtypes": #print >> sys.stderr, resource from walib.istsos.services.systemtypes import systemtypes return systemtypes.waSystemTypes(waEnviron) # --------------------------------------- # Entering istsos.services.offerings # --------------------------------------- elif resource == "offerings": #print >> sys.stderr, resource if len(pathinfo)<=1: from walib.istsos.services.offerings import offerings return offerings.waOfferings(waEnviron) else: resource = pathinfo.pop(0) # remove offering name #print >> sys.stderr, resource if resource == "operations": resource = pathinfo.pop(0) if resource == "getlist": #print >> sys.stderr, resource from walib.istsos.services.offerings import offerings return offerings.waGetlist(waEnviron) else: resource = pathinfo.pop(0) if resource == "procedures": if len(pathinfo)<=1: from walib.istsos.services.offerings.procedures import procedures return procedures.waProcedures(waEnviron) else: resource = pathinfo.pop(0) if resource == "operations": #print >> sys.stderr, resource resource = pathinfo.pop(0) if resource == "memberslist": from walib.istsos.services.offerings.procedures import procedures return procedures.waMemberslist(waEnviron) elif resource == "nonmemberslist": from walib.istsos.services.offerings.procedures import procedures return procedures.waNonmemberslist(waEnviron) # --------------------------------------- # Entering istsos.services.operations # --------------------------------------- elif resource == "operations": #print >> sys.stderr, resource resource = pathinfo.pop(0) if resource == "getobservation": #print >> sys.stderr, resource from walib.istsos.services import services return services.waGetobservation(waEnviron) elif resource == "insertobservation": #print >> sys.stderr, resource from walib.istsos.services import services return services.waInsertobservation(waEnviron) # --------------------------------------- # Entering istsos.services.logs # --------------------------------------- elif resource == "logs": from walib.istsos.services.logs import logs return logs.waLogs(waEnviron) # --------------------------------------- # Entering istsos.services.status # --------------------------------------- elif resource == "status": from walib.istsos.services.status import status return status.waStatus(waEnviron) raise Exception("Resource is not identified, check the URL")
def initResource(waEnviron): path = waEnviron['path'] # --------------- # Entering istsos # --------------- pathinfo = copy.deepcopy(waEnviron['pathinfo']) resource = pathinfo.pop(0) print >> sys.stderr, pathinfo if resource == "istsos": '''if 'user' in waEnviron and not waEnviron['user'].isAdmin(): from walib import users return users.waUserUnauthorized(waEnviron)''' resource = pathinfo.pop(0) # -------------------------- # Entering istsos.operations # -------------------------- if resource == "operations": resource = pathinfo.pop(0) if resource == "status": from walib.istsos import istsos return istsos.waStatus(waEnviron) elif resource == "log": from walib.istsos import istsos return istsos.waLog(waEnviron) elif resource == "about": from walib.istsos import istsos return istsos.waAbout(waEnviron) elif resource == "validatedb": from walib.istsos import istsos return istsos.waValidatedb(waEnviron) # --------------------------------------- # Entering istsos.operation.oat # --------------------------------------- elif resource == "oat": resource = pathinfo.pop(0) if resource == "resample": from walib.OAT import ProcessThread return ProcessThread.resamplingData(waEnviron) elif resource == "digitalfilter": from walib.OAT import ProcessThread return ProcessThread.DigitalThread(waEnviron) elif resource == "exceedance": from walib.OAT import ProcessThread return ProcessThread.ExceedanceData(waEnviron) elif resource == "he": from walib.OAT import ProcessThread return ProcessThread.HydroEventsTh(waEnviron) elif resource == "hi": from walib.OAT import ProcessThread return ProcessThread.HydroIndices(waEnviron) elif resource == "qualitymethod": from walib.OAT import ProcessThread return ProcessThread.QualityMethod(waEnviron) elif resource == "datavalue": from walib.OAT import ProcessThread return ProcessThread.DataValuesMethod(waEnviron) elif resource == "hysap": from walib.OAT import ProcessThread return ProcessThread.HydroSeparationTh(waEnviron) elif resource == "intgrate": from walib.OAT import ProcessThread return ProcessThread.IntegrateMethod(waEnviron) elif resource == "compare": from walib.OAT import ProcessThread return ProcessThread.regularization(waEnviron) elif resource == "subtract": from walib.OAT import ProcessThread return ProcessThread.regularization(waEnviron) elif resource == "fill": from walib.OAT import ProcessThread return ProcessThread.fillMethod(waEnviron) elif resource == "statistics": from walib.OAT import ProcessThread return ProcessThread.Statisticsmethod(waEnviron) elif resource == "hargreaves": from walib.OAT import ProcessThread return ProcessThread.Hargreaves(waEnviron) ''' checking if not need any more elif resource == "initialization": from walib.istsos import istsos return istsos.waInitialization(waEnviron)''' # -------------------------- # Entering istsos.services # -------------------------- elif resource == "services": #print >> sys.stderr, resource if len(pathinfo) <= 1: from walib.istsos.services import services return services.waServices(waEnviron) else: pathinfo.pop(0) resource = pathinfo.pop(0) # Entering istsos.services.configsections if resource == "configsections": #print >> sys.stderr, resource if len(pathinfo) == 0: from walib.istsos.services.configsections import configsections return configsections.waConfigsections(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "connection": if len(pathinfo) == 0: from walib.istsos.services.configsections import connection return connection.waConnection(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "operations": resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "validatedb": from walib.istsos.services.configsections import connection return connection.waValidatedb( waEnviron) elif resource == "getobservation": from walib.istsos.services.configsections import getobservation return getobservation.waGetobservation(waEnviron) elif resource == "paths": from walib.istsos.services.configsections import paths return paths.waPaths(waEnviron) elif resource == "authority": from walib.istsos.services.configsections import authority return authority.waAuthority(waEnviron) elif resource == "identification": from walib.istsos.services.configsections import identification return identification.waIdentification(waEnviron) elif resource == "geo": from walib.istsos.services.configsections import geo return geo.waGeo(waEnviron) elif resource == "serviceurl": from walib.istsos.services.configsections import serviceurl return serviceurl.waServiceurl(waEnviron) elif resource == "provider": from walib.istsos.services.configsections import provider return provider.waProvider(waEnviron) elif resource == "urn": from walib.istsos.services.configsections import urn return urn.waUrn(waEnviron) elif resource == "mqtt": from walib.istsos.services.configsections import mqtt return mqtt.waMqtt(waEnviron) # --------------------------------------- # Entering istsos.services.dataqualities # --------------------------------------- elif resource == "dataqualities": #print >> sys.stderr, resource from walib.istsos.services.dataqualities import dataqualities return dataqualities.waDataqualities(waEnviron) # --------------------------------------- # Entering istsos.services.procedures # --------------------------------------- elif resource == "procedures": #print >> sys.stderr, resource if len(pathinfo) <= 1: from walib.istsos.services.procedures import procedures return procedures.waProcedures(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == 'operations': resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "getlist": from walib.istsos.services.procedures import procedures return procedures.waGetlist(waEnviron) elif resource == "geojson": from walib.istsos.services.procedures import procedures return procedures.waGetGeoJson(waEnviron) # --------------------------------------- # Entering istsos.services.virtualprocedures # --------------------------------------- elif resource == "virtualprocedures": #print >> sys.stderr, resource if len(pathinfo) <= 1: from walib.istsos.services.virtualprocedures import virtualprocedures return virtualprocedures.waVirtualProcedures(waEnviron) else: resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == "operations": #print >> sys.stderr, resource resource = pathinfo.pop(0) if resource == "getlist": #print >> sys.stderr, resource from walib.istsos.services.virtualprocedures import virtualprocedures return virtualprocedures.waGetlist(waEnviron) resource = pathinfo.pop(0) #print >> sys.stderr, resource if resource == 'code': #print >> sys.stderr, resource from walib.istsos.services.virtualprocedures import code return code.waCode(waEnviron) elif resource == 'ratingcurve': #print >> sys.stderr, resource from walib.istsos.services.virtualprocedures import ratingcurve return ratingcurve.waRatingcurves(waEnviron) # --------------------------------------- # Entering istsos.services.observedproperties # --------------------------------------- elif resource == "observedproperties": #print >> sys.stderr, resource from walib.istsos.services.observedproperties import observedproperties return observedproperties.waObservedproperties(waEnviron) # --------------------------------------- # Entering istsos.services.uoms # --------------------------------------- elif resource == "uoms": #print >> sys.stderr, resource from walib.istsos.services.uoms import uoms return uoms.waUoms(waEnviron) # --------------------------------------- # Entering istsos.services.epsgs # --------------------------------------- elif resource == "epsgs": #print >> sys.stderr, resource from walib.istsos.services.epsgs import epsgs return epsgs.waEpsgs(waEnviron) # --------------------------------------- # Entering istsos.services.epsgs # --------------------------------------- elif resource == "systemtypes": #print >> sys.stderr, resource from walib.istsos.services.systemtypes import systemtypes return systemtypes.waSystemTypes(waEnviron) # --------------------------------------- # Entering istsos.services.offerings # --------------------------------------- elif resource == "offerings": #print >> sys.stderr, resource if len(pathinfo) <= 1: from walib.istsos.services.offerings import offerings return offerings.waOfferings(waEnviron) else: resource = pathinfo.pop(0) # remove offering name #print >> sys.stderr, resource if resource == "operations": resource = pathinfo.pop(0) if resource == "getlist": #print >> sys.stderr, resource from walib.istsos.services.offerings import offerings return offerings.waGetlist(waEnviron) else: resource = pathinfo.pop(0) if resource == "procedures": if len(pathinfo) <= 1: from walib.istsos.services.offerings.procedures import procedures return procedures.waProcedures(waEnviron) else: resource = pathinfo.pop(0) if resource == "operations": #print >> sys.stderr, resource resource = pathinfo.pop(0) if resource == "memberslist": from walib.istsos.services.offerings.procedures import procedures return procedures.waMemberslist( waEnviron) elif resource == "nonmemberslist": from walib.istsos.services.offerings.procedures import procedures return procedures.waNonmemberslist( waEnviron) # --------------------------------------- # Entering istsos.services.operations # --------------------------------------- elif resource == "operations": #print >> sys.stderr, resource resource = pathinfo.pop(0) if resource == "getobservation": from walib.istsos.services import services return services.waGetobservation(waEnviron) elif resource == "insertobservation": #print >> sys.stderr, resource from walib.istsos.services import services return services.waInsertobservation(waEnviron) elif resource == "fastinsert": print >> sys.stderr, resource from walib.istsos.services import services return services.waFastInsert(waEnviron) elif resource == "seeobservation": from walib.istsos.services import services return services.waGetobservation(waEnviron) # --------------------------------------- # Entering istsos.services.logs # --------------------------------------- elif resource == "logs": from walib.istsos.services.logs import logs return logs.waLogs(waEnviron) # --------------------------------------- # Entering istsos.services.status # --------------------------------------- elif resource == "status": from walib.istsos.services.status import status return status.waStatus(waEnviron) elif resource == "oat": from walib.istsos.services import services print >> sys.stderr, resource return services.resampling(waEnviron) elif resource == "user": from walib import users return users.waUsers(waEnviron) raise Exception("Resource is not identified, check the URL")