Как мне отредактировать то же самое, чтобы получить статистику интерфейса? Какие теги нужно использовать? Как мне узнать?
В вашем примере используется стандартная операция <get-config>
, которая извлекает только конфигурацию, а не рабочее состояние. Если вы хотите получить последний, вам нужно использовать <get/>
, который извлекает как данные конфигурации, так и данные о состоянии.
<?xml version="1.0" encoding="utf-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="${TIMESTAMP}">
<get>
<filter>
<interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg"/>
</filter>
</get>
</rpc>
Для него нет параметра <source>
, так как он всегда получает текущую конфигурацию и рабочее состояние. Самый простой способ познакомиться с NETCONF — прочитать его спецификацию.
Я изменил строку, содержащую пространство имен, на какую-то случайную строку, например 'http://a.b.c.d/check', и это не удалось. Почему?
Если под «неудачным» вы имели в виду, что получили <rpc-error>
, это было бы нестандартным поведением. Вы должны были получить пустой ответ <data/>
, так как нет узлов, соответствующих вашему фильтру. Фильтр требует точного соответствия.
<?xml version="1.0" encoding="utf-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="163">
<data/>
</rpc-reply>
Хранилища данных NETCONF в значительной степени зависят от пространств имен, поскольку это решает наиболее распространенные проблемы с именами. Например, если у вас есть два модуля и они содержат элементы верхнего уровня с именем «my-config», у вас не возникнет проблем, поскольку они однозначно идентифицируются пространствами имен модулей: {uri:a}my-config
и {uri:b}my-config
.
В вашем примере вы запросили {http://a.b.c.d/check}interface-configurations
, которого просто не существует. Неважно, совпадает ли часть interface-configuration
(локальное имя), потому что вы запросили конкретное interface-configuration
из определенного пространства имен.
Пространства имен (отчасти) похожи на домашние адреса. Джонов Смитов может быть много, но вы можете обратиться к конкретному, указав его полный адрес. Если вы попросите местную почту отправить посылку только на имя «Джон Смит» без адреса, почта не поймет, кого вы имели в виду.
Примечание: если вы имели в виду, что изменили строку urn:ietf:params:xml:ns:netconf:base:1.0
, то проблема та же. Вы попытались выполнить какую-то операцию, неизвестную серверу. Однако в этом случае произойдет сбой с ответом об ошибке.
person
predi
schedule
06.10.2016