def executeGet(self): if self.service == "default": raise Exception("offerings operation can not be done for 'default' service instance.") else: self.setData(utils.getOfferingNamesList( databaseManager.PgDB(self.serviceconf.connection['user'], self.serviceconf.connection['password'], self.serviceconf.connection['dbname'], self.serviceconf.connection['host'], self.serviceconf.connection['port'] ),self.service)) if self.response['total']>0: self.setMessage("Offerings names of service \"%s\" successfully retrived" % self.service) else: self.setMessage("There aren't Offerings for service \"%s\"" % self.service)
def executeGet(self): if self.service == "default": raise Exception("offerings operation can not be done for 'default' service instance.") else: self.setData( utils.getOfferingNamesList( databaseManager.PgDB( self.serviceconf.connection["user"], self.serviceconf.connection["password"], self.serviceconf.connection["dbname"], self.serviceconf.connection["host"], self.serviceconf.connection["port"], ), self.service, ) ) if self.response["total"] > 0: self.setMessage('Offerings names of service "%s" successfully retrived' % self.service) else: self.setMessage('There aren\'t Offerings for service "%s"' % self.service)
def executeGet(self): """ Execute GET request investigating set-up services @note: This method creates a C{self.data} object in the form of a list of dictionaries as below: >>> template = { "service" : None, "offerings" : None, "procedures" : None, "observedProperties" : None, "featuresOfInterest" : None, "getCapabilities" : None, "describeSensor" : None, "getObservations" : None, "registerSensor" : None, "insertObservation" : None, "getFeatureOfInterest" : None, "availability" : "up" } """ services = utils.getServiceList( self.waconf.paths["services"], listonly=True) if self.user and not self.user.isAdmin(): servicesAllowed = [] for item in services: if self.user.allowedService(item): servicesAllowed.append(item) services = servicesAllowed data = [] for service in services: srv = {} srv["service"] = service # get service configuration defaultcfgpath = os.path.join( self.waconf.paths["services"], "default.cfg") servicecfgpath = "%s.cfg" % os.path.join( self.waconf.paths["services"], service, service) config = configManager.waServiceConfig( defaultcfgpath, servicecfgpath) # test if service is active (check answer to GetCapabilities) if config.serviceurl["default"] is True: urlget = config.serviceurl["url"] + "/" + service else: urlget = config.serviceurl["url"] request = ("?request=getCapabilities&" "section=serviceidentification&service=SOS") srv["availability"] = utils.verifyxmlservice( urlget+request, self.waEnviron) # test if connection is valid connection = config.get("connection") try: servicedb = databaseManager.PgDB( connection['user'], connection['password'], connection['dbname'], connection['host'], connection['port'] ) srv["database"] = "active" except: srv["database"] = "not connectable" srv["offerings"] = None srv["procedures"] = None srv["observedProperties"] = None srv["featuresOfInterest"] = None try: #count offerings srv["offerings"] = len( utils.getOfferingNamesList(servicedb, service)) except: srv["offerings"] = None try: #count procedures srv["procedures"] = len( utils.getProcedureNamesList( servicedb, service, offering=None)) except: srv["procedures"] = None try: #count observed properties srv["observedProperties"] = len( utils.getObsPropNamesList( servicedb, service, offering=None)) except: srv["observedProperties"] = None try: #count features of interest srv["featuresOfInterest"] = len( utils.getFoiNamesList(servicedb, service, offering=None)) except: srv["featuresOfInterest"] = None #get available requests requests_ON = config.parameters["requests"].split(",") for operation in [ "getcapabilities", "describesensor", "getobservation", "getfeatureofinterest", "insertobservation", "registersensor"]: if operation in requests_ON: srv[operation] = True else: srv[operation] = False data.append(srv) self.setData(data) self.setMessage("Serverstatus request successfully executed")
def executeGet(self): """ Execute GET request investigating set-up services @note: This method creates a C{self.data} object in the form of a list of dictionaries as below: >>> template = {"service" : None, "offerings" : None, "procedures" : None, "observedProperties" : None, "featuresOfInterest" : None, "getCapabilities" : None, "describeSensor" : None, "getObservations" : None, "registerSensor" : None, "insertObservation" : None, "getFeatureOfInterest" : None, "availability" : "up" } """ services = utils.getServiceList(self.waconf.paths["services"],listonly=True) data = [] for service in services: srv = {} srv["service"] = service #get service configuration #------------------------------------------------------------------- defaultcfgpath = os.path.join(self.waconf.paths["services"],"default.cfg") servicecfgpath = os.path.join(self.waconf.paths["services"],service,service)+".cfg" config = configManager.waServiceConfig(defaultcfgpath,servicecfgpath) #test if service is active (check answer to GetCapabilities) #------------------------------------------------------------------- if config.serviceurl["default"] == True: urlget = config.serviceurl["url"] + "/" + service else: urlget = config.serviceurl["url"] request = "?request=getCapabilities§ion=serviceidentification&service=SOS" srv["availability"] = utils.verifyxmlservice(urlget+request) #test if connection is valid #------------------------------------------------------------------- connection = config.get("connection") try: servicedb = databaseManager.PgDB(connection['user'], connection['password'], connection['dbname'], connection['host'], connection['port'] ) srv["database"] = "active" except: srv["database"] = "not connectable" srv["offerings"] = None srv["procedures"] = None srv["observedProperties"] = None srv["featuresOfInterest"] = None try: #count offerings #------------------------------------------------------------------- srv["offerings"] = len(utils.getOfferingNamesList(servicedb,service)) except: srv["offerings"] = None try: #count procedures #------------------------------------------------------------------- srv["procedures"] = len(utils.getProcedureNamesList(servicedb,service,offering=None)) except: srv["procedures"] = None try: #count observed properties #------------------------------------------------------------------- srv["observedProperties"] = len(utils.getObsPropNamesList(servicedb,service,offering=None)) except: srv["observedProperties"] = None try: #count features of interest #------------------------------------------------------------------- srv["featuresOfInterest"] = len(utils.getFoiNamesList(servicedb,service,offering=None)) except: srv["featuresOfInterest"] = None #get available requests #------------------------------------------------------------------- requests_ON = config.parameters["requests"].split(",") for operation in ["getcapabilities","describesensor","getobservation", "getfeatureofinterest","insertobservation","registersensor"]: if operation in requests_ON: srv[operation]=True else: srv[operation]=False data.append(srv) self.setData(data) self.setMessage("Serverstatus request successfully executed")