Пример #1
0
 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))
Пример #2
0
 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))
Пример #3
0
    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()
Пример #4
0
 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()))
Пример #5
0
    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())
Пример #6
0
 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()))
Пример #7
0
    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
Пример #8
0
    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
Пример #9
0
    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())
Пример #10
0
 def replyPrepare(self):
     """Actions that the probe must perform in order to be ready for the test"""
     self.process = TestServices.popen(self.cmd)
Пример #11
0
 def replyPrepare(self):
     """Actions that the probe must perform in order to be ready for the test"""
     self.process = TestServices.popen(self.cmd)
Пример #12
0
 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))