Каков стандартный способ генерирования запросов XML RPC NETCONF из модели данных YANG - PullRequest
2 голосов
/ 03 апреля 2012

Я пытаюсь найти лучший способ создания запросов XML RPC для отправки на устройство с тегами NETCONF.

Мы знаем, как должен выглядеть запрос, поэтому я простожесткое кодирование XML-RPC-запроса XML с заполнителями в нем.Эти заполнители могут быть заменены фактическим вводом позже.

Например:

<rpc message-id="">
  <get-config>
    <source>
      <running/>
    </source>
    <filter type="subtree" base_path="">
      <wing-stats>
        <device>
          <lldp>
            <dev_id/>
            <local_port/>
            <neighborId/>
            <Neighbor_port_id/>
          </lldp>
          <mac>@device_mac</mac>
        </device>
      </wing-stats>
    </filter>
  </get-config>
</rpc>

Здесь, в этом примере, @device_mac будет заменен при отправке запроса.Но кое-что, как я чувствовал, я жестко кодирую XML запроса.Есть ли лучший способ создания XML-запроса?

Данные Netconf будут смоделированы с использованием файлов YANG / YIN.Есть ли способ использовать эти файлы для генерации части запроса NETCONF по крайней мере?

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Bala,

Я бы сказал, что есть два способа сделать это: вы можете использовать любой из доступных наборов инструментов, управляемых моделью даты, и я знаю, что по крайней мере один из них генерирует ориентированный на модельAPI и скрыть подробные манипуляции XML (DOM).Второе направление - использовать отображение YANG на DSDL, определенное в RFC 6110 , как реализовано инструментом pyang .Теперь последний требует, чтобы ваши инструменты могли работать с DSDL , что по сути является комбинацией Relax NG и Schematron .

Надеюсь, этопомогает.

0 голосов
/ 31 декабря 2015

Я бы сказал, что все зависит от вашего контекста. Если ваше приложение предназначено для поддержки этой конкретной модели и данного конкретного rpc только , то, вероятно, было бы излишним использовать какой-либо более сложный, независимый от модели API для такого небольшого варианта использования.

С другой стороны, если ваше приложение должно поддерживать множество моделей и rpcs или даже если оно должно поддерживать новые модели, добавленные во время выполнения, то вам определенно следует изучить решения, которые могут быть применены к любой модели, такой как упомянутые Carl.

...