JSNAPY: есть ли способ проверить атрибуты узла xpath

Я пытаюсь определить, как тестировать атрибуты узла, которые иногда использует junos. В этом конкретном случае я хочу найти все сеансы BGP, которые не работают от 20 недель до 1 года. Значение секунд содержится в атрибуте узла, но я не смог понять, как получить к нему доступ для теста.

Я пробовал различные методы, используя весь явный xpath, вплоть до того, что у меня есть ниже в коде.

Вот xpath, к которому я пытаюсь получить доступ (отредактировано для краткости):

<rpc-reply xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos">
    <bgp-information xmlns="http://xml.juniper.net/junos/18.2R3/junos-routing">
        <bgp-peer junos:style="terse" heading="Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...">
            <elapsed-time junos:seconds="263788">3d 1:16:28</elapsed-time>
        </bgp-peer>
    </bgp-information>
</rpc-reply>
test_bgp_summ:
  - rpc: get-bgp-summary-information
  - iterate:
      xpath: /bgp-information/bgp-peer
      id: ./peer-address
      tests:
        - in-range: //@junos:seconds, 12096000, 31449600
          err: ""
          info: 'Peer session <{{id_0}}> is likely stale'

person aelliott    schedule 18.10.2019    source источник


Ответы (1)


Вам нужно включить узел истекшего времени в свой тест:

show_bgp_sum:
  - command: show bgp summary
  - iterate:
      xpath: '//bgp-information/bgp-peer'
      id: ./peer-address
      tests:
        - exists: elapsed-time/@seconds
          err: "elpased-time doesn't exist"
          info: "Elapsed-time is: <{{post['elapsed-time/@seconds']}}>"

и вывод:

                   "passed": [
                        {
                            "actual_node_value": "1309804", 
                            "id": {
                                "./peer-address": "10.10.12.100"
                            }, 
                            "message": "Elapsed-time is: <1309804>", 
                            "post": {
                                "elapsed-time/@seconds": "1309804"
                            }, 
                            "pre": {
                                "elapsed-time/@seconds": "1309802"
                            }
                        }, 
person Doppleganger    schedule 27.11.2019