def doTest(self): """Does the actual test""" for target in self.targets: targetIp = TestServices.getProbeIpById(target) if self.options.protocol == self.PROTO_TCP: attempts = 0 telnetCli = 'sh -c "echo A | telnet -e A {ip} {port}"' while ('Connected' not in TestServices.runCmd(telnetCli.format(ip = targetIp, port = self.options.port))[0].decode() and attempts < self.MAX_ATTEMPTS): attempts += 1 time.sleep(.5) self.outputs[target] = TestServices.runCmd(self.cmd.format(ip = targetIp))
def doTest(self): """Does the actual test""" for target in self.targets: targetIp = TestServices.getProbeIpById(target) if self.options.protocol == self.PROTO_TCP: attempts = 0 telnetCli = 'sh -c "echo A | telnet -e A {ip} {port}"' while ('Connected' not in TestServices.runCmd( telnetCli.format(ip=targetIp, port=self.options.port))[0].decode() and attempts < self.MAX_ATTEMPTS): attempts += 1 time.sleep(.5) self.outputs[target] = TestServices.runCmd( self.cmd.format(ip=targetIp))
def doTest(self): self.logger.info("Starting test") self.stats = {} self.psuccess = {} self.perrors = {} self.threads = [] for target in self.targets: try: probeIp = TestServices.getProbeIpById(target) if self.parallelPing: t = Thread(target = self.makeAPing, args = [target, probeIp], name = "Ping-%s" % probeIp) self.threads.append(t) t.start() else: self.makeAPing(target, probeIp) except PingFail as e: # TODO: self.stats[target] = e ? self.perrors[target] = e self.psuccess[target] = True except (PingParseError, Exception) as e: self.psuccess[target] = False self.perrors[target] = TestError(e) if self.parallelPing: for t in self.threads: t.join()
def makePing(cls, ip, **options): opts = {} opts.update(cls.DEFAULT_OPTIONS) opts.update(options) opstr = '' for opt, val in opts.items(): opstr += cls._addOption(opt, val) stdout, stderr, code = TestServices.runCmd(cls._ping_cmd.format(opts = opstr, ip = ip)) # if isSweep: # return cls._parseSweepPing(str(stdout.decode())) return cls._parsePing(str(stdout.decode()))
def parseOptions(self): parser = argparse.ArgumentParser(description = "Parses the broadcast test options") parser.add_argument('--port', type = int, metavar = 'port', default = self.port) parser.add_argument('--timeout', metavar = 'timeout', default = self.timeout, type = float) try: opts = parser.parse_args(self.opts) self.targets = TestServices.getIdAllOtherProbes() self.options = opts except (argparse.ArgumentError, SystemExit): raise TestArgumentError(parser.format_usage())
def makePing(cls, ip, **options): opts = {} opts.update(cls.DEFAULT_OPTIONS) opts.update(options) opstr = '' for opt, val in opts.items(): opstr += cls._addOption(opt, val) stdout, stderr, code = TestServices.runCmd( cls._ping_cmd.format(opts=opstr, ip=ip)) # if isSweep: # return cls._parseSweepPing(str(stdout.decode())) return cls._parsePing(str(stdout.decode()))
def doTest(self): self.logger.info("Unicast : Starting test") try: self.socket.settimeout(self.options.timeout) self.socket.connect((TestServices.getProbeIpById(self.targets[0]), self.options.port)) self.logger.info("Unicast : Sending message") self.socket.sendall(self.messageSend.encode(self.ENCODING)) self.logger.info("Unicast : Waiting for response message") response = self.socket.recv(len(self.messageReply)) self.logger.info("Unicast : Message received") if response.decode(self.ENCODING) == self.messageReply: self.success = True except socket.timeout: self.success = False
def parseOptions(self): parser = argparse.ArgumentParser( description="Parses the broadcast test options") parser.add_argument('--port', type=int, metavar='port', default=self.port) parser.add_argument('--timeout', metavar='timeout', default=self.timeout, type=float) try: opts = parser.parse_args(self.opts) self.targets = TestServices.getIdAllOtherProbes() self.options = opts except (argparse.ArgumentError, SystemExit): raise TestArgumentError(parser.format_usage())
def replyPrepare(self): """Actions that the probe must perform in order to be ready for the test""" self.process = TestServices.popen(self.cmd)
def doTest(self): """Does the actual test""" for target in self.targets: targetIp = TestServices.getProbeIpById(target) self.outputs[target] = TestServices.runCmd(self.cmd.format(ip = targetIp))