def test_multiple_responses(self): """ Test that the add_response and all_responses mechanism is working """ plugin = self.Klass() r1 = Response(pycinga.OK, "foo") r2 = Response(pycinga.CRITICAL, "bar") r3 = Response(pycinga.OK, "baz") plugin.add_response(r1) plugin.add_response(r2) plugin.add_response(r3) assert pycinga.CRITICAL == plugin.all_responses().status assert "bar OK: foo, baz" == plugin.all_responses().message
def parseResult(self, data): failed_repls = [] for result in data: if result["status"] != "running": msg = "%s %s %s %s" % ( result["node"], result["vhost"], result["exchange"], result["status"], ) failed_repls.append(msg) if failed_repls: return Response(CRITICAL, (", ".join(failed_repls))) return Response(OK, "federation links are all up")
def test_multiple_responses_default(self): """ Test that the default parameter to all_responses is working """ plugin = self.Klass() assert pycinga.OK == plugin.all_responses().status r1 = Response(pycinga.UNKNOWN, "default test") assert r1.status == plugin.all_responses(r1).status assert r1.message == plugin.all_responses(r1).message
def parseResult(self, data): nodeData = None # for result in data: # if string.split(result['name'], '@')[1] in self.options.hostname: # nodeData = result if len(data) > 0: nodeData = data[0] if nodeData: if self.options.type == "mem": if nodeData["mem_alarm"] is True: return Response(CRITICAL, "memory alarm triggered!") self.percentage = nodeData[self.options.type + "_used"] / ( nodeData[self.options.type + "_limit"] / 100.0) if self.options.type == "disk": if nodeData["disk_free_alarm"] is True: return Response(CRITICAL, "disk alarm triggered!") self.percentage = nodeData[ self.options.type + "_free_limit"] / ( nodeData[self.options.type + "_free"] / 100.0) if self.options.type == "network_partitions": if len(nodeData["partitions"]) > 0: return Response(CRITICAL, "network partition detected!") self.percentage = len(nodeData["partitions"]) if self.options.type == "fd": self.percentage = nodeData[self.options.type + "_used"] / ( nodeData[self.options.type + "_total"] / 100.0) if self.options.type == "proc": self.percentage = nodeData[self.options.type + "_used"] / ( nodeData[self.options.type + "_total"] / 100.0) if self.options.type == "sockets": self.percentage = nodeData[self.options.type + "_used"] / ( nodeData[self.options.type + "_total"] / 100.0) return self.response_for_value( self.percentage, self.options.type + " usage is " + str(self.percentage) + " used ") return Response(WARNING, "No node data found!")
def check(self): """ returns a response and perf data for this check """ try: self.rabbit_error = 0 self.rabbit_note = "action performed successfully" if not self.testOptions(): return Response(UNKNOWN, "Incorrect check config" + self.rabbit_note) if ( not self.options.hostname or not self.options.port or not self.options.username or not self.options.password or not self.testOptions() ): return Response(UNKNOWN, "Incorrect missing options") if not self.makeUrl(): return Response(UNKNOWN, "Error with URL") response = self.parseJson(self.doApiGet()) if response is None: return Response(UNKNOWN, "The server did not respond") for queue in response: self.generateQueueUrl(queue["name"]) if self.rabbit_error > 0: return Response(CRITICAL, self.rabbit_note) data = self.parseJson(self.doApiGet()) if self.rabbit_error > 0: return Response(CRITICAL, self.rabbit_note) result = self.parseResult(data) self.setPerformanceData(data, result, queue["name"]) print result except Exception as e: return Response(UNKNOWN, "Error occurred:" + str(e))
def parseResult(self, data): for node in data: if len(node["partitions"]) != 0: return Response(CRITICAL, "Partition found %s" % node["name"]) return Response(OK, "No partitions found")
def parseResult(self, data): if len(data) == self.options.nodes: return Response(OK, "%i Nodes present" % self.options.nodes) return Response( CRITICAL, "Nodes expected %i, but found %i" % (self.options.nodes, len(data)) )
def parseResult(self, data): return Response(UNKNOWN, "No result set!")
def parseResult(self, data): if data["status"] == "ok": return Response(OK, "Response status was ok") return Response(CRITICAL, data["status"])