Как запрашивать несколько элементов конфигурации одновременно?

#python #xml #netconf #ncclient

#python #xml #netconf #ncclient

Вопрос:

У меня возникли проблемы с запросом нескольких элементов конфигурации с помощью NCCLIENT (0.6.9). Не могли бы вы, пожалуйста, помочь мне найти правильный синтаксис? Мне нужно запросить все эти элементы в одном вызове, чтобы воспроизвести ошибку.

Приведенный ниже фильтр возвращает ошибку:

 lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 14, column 1

FILTER = '''
<devm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0"
format-version="1.0">
    <ports>
      <port>
        <ethernetPort>
          <negotiation/>
          <speed/>
          <duplex/>
        </ethernetPort>
      </port>
    </ports>
</devm>
<evc xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0"
format-version="1.0">
    <bds>
      <bd>
        <bdId/>
        <bdDesc/>
        <servicePoints>
          <servicePoint>
            <ifName/>
          </servicePoint>
        </servicePoints>
      </bd>
    </bds>
</evc>
<ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0"
format-version="1.0">
    <interfaces>
      <interface>
        <ifName/>
        <ifIndex/>
        <ifClass/>
        <ifPhyType/>
        <ifParentIfName/>
        <ifNumber/>
        <ifDescr/>
        <ifTrunkIfName/>
        <ifAdminStatus/>
        <ifLinkProtocol/>
       <ifMtu/>
        <ipv4Config>
          <am4CfgAddrs>
            <am4CfgAddr>
              <ifIpAddr/>
              <subnetMask/>
               </am4CfgAddr>
          </am4CfgAddrs>
        </ipv4Config>
        <ipv6Config>
          <am6CfgAddrs>
            <am6CfgAddr>
              <ifIp6Addr/>
              <addrPrefixLen/>
            </am6CfgAddr>
          </am6CfgAddrs>
        </ipv6Config>
      </interface>
    </interfaces>
</ifm>
<nvo3 xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0"
format-version="1.0">
    <nvo3Vni2Bds>
      <nvo3Vni2Bd>
        <vniId/>
        <bdId/>
      </nvo3Vni2Bd>
    </nvo3Vni2Bds>
    <nvo3Nves>
      <nvo3Nve>
        <ifName/>
        <srcAddr/>
        <srcIpv6Addr/>
        <vniMembers>
          <vniMember/>
        </vniMembers>
      </nvo3Nve>
    </nvo3Nves>
</nvo3>'''
 

Однако работает запрос с одним модулем — такой, как показано ниже:

 FILTER = '''
<devm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0"
format-version="1.0">
    <ports>
      <port>
        <ethernetPort>
          <negotiation/>
          <speed/>
          <duplex/>
        </ethernetPort>
      </port>
    </ports>
</devm>'''
 

Комментарии:

1. «Большой» xml недопустим, а меньший допустим.

2. Не могли бы вы помочь мне настроить большой, чтобы он работал?

3. Я полагаю, что есть программное обеспечение huawei, которое генерирует этот файл. Файл, вероятно, отлично сгенерирован программным обеспечением. поэтому возьмите копию, созданную программным обеспечением.