コード例 #1
0
def get_traceroute_parsed_output(device, prefix):
    """ Get parsed output of traceroute command
        Args:
            device ('obj'): Device object
            prefix ('str'): Prefix address
        Returns:
            Dictionary: Parsed output of traceroute command
        Raises:
            None
    """

    try:
        output = device.traceroute(addr=prefix)
    except SubCommandFailure as e:
        log.info("Could not find any traceroute information")
        return False

    parser_obj = Traceroute(device=device)
    try:
        parsed_ouput = parser_obj.parse(output=output)
    except SchemaEmptyParserError as e:
        log.info("Could find any traceroute information for prefix {address}".
                 format(address=prefix))
        return None

    return parsed_ouput
コード例 #2
0
def get_traceroute_parsed_output(device,
                                 addr,
                                 vrf=None,
                                 proto=None,
                                 ingress=None,
                                 source=None,
                                 dscp=None,
                                 numeric=None,
                                 timeout=None,
                                 probe=None,
                                 minimum_ttl=None,
                                 maximum_ttl=None,
                                 port=None,
                                 style=None):
    """ Get parsed output of traceroute command
        Args:
            device ('obj'): Device object
            addr ('str'): Destination address
            proto ('str'): Protocol(ip/ipv6)
            ingress ('str'): Ingress traceroute
            source ('str'): Source address or interface
            dscp ('int'): DSCP Value
            numeric ('str'): Numeric display
            timeout ('int'): Timeout in seconds
            probe ('int'): Probe count
            minimum_ttl ('int'): Minimum Time to Live
            maximum_ttl ('int'): Maximum Time to Live
            port ('int'): Port Number
            style ('str'): Loose, Strict, Record, Timestamp, Verbose

        Returns:
            Dictionary: Parsed output of traceroute command
        Raises:
            None
    """
    # kwargs is used to pass args that aren't "None" to traceroute()
    kwargs = {k: v for k, v in locals().items() if v}
    kwargs.pop('device')
    if vrf:
        kwargs.pop('vrf')
        kwargs['command'] = 'traceroute vrf {}'.format(vrf)
    try:
        output = device.traceroute(**kwargs)
    except SubCommandFailure as e:
        log.info("Could not find any traceroute information")
        return False

    parser_obj = Traceroute(device=device)
    try:
        parsed_ouput = parser_obj.parse(output=output)
    except SchemaEmptyParserError as e:
        log.info("Could find any traceroute information for prefix {address}".
                 format(address=addr))
        return None

    return parsed_ouput
コード例 #3
0
 def test_traceroute_golden6(self):
     self.maxDiff = None
     obj = Traceroute(device=self.device)
     parsed_output = obj.parse(output=self.golden_output6)
     self.assertEqual(parsed_output, self.golden_parsed_output6)
コード例 #4
0
 def test_traceroute_empty(self):
     obj = Traceroute(device=self.device)
     with self.assertRaises(SchemaEmptyParserError):
         parsed_output = obj.parse(output=self.empty_output)