Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Definir tabelas operacionais do Junos PyEZ para analisar a saída estruturada

RESUMO Crie tabelas personalizadas que selecionem itens específicos da saída RPC XML para extrair informações operacionais de um dispositivo Junos.

Tabelas operacionais (op) junos PyEZ para dados de extração de saída estruturados da saída XML de um RPC executado em um dispositivo Junos. Isso permite recuperar e revisar rapidamente as informações de estado operacional relevantes para o dispositivo.

Tabelas do Junos PyEZ são formatadas usando YAML. As definições da Tabela op podem incluir uma série de parâmetros necessários e opcionais, que são resumidos na Tabela 1.

Tabela 1: Parâmetros nas tabelas de operações do Junos PyEZ para saída estruturada

Nome do parâmetro da tabela

Parâmetro da tabela

Descrição

Nome da tabela

Identificador definido pelo usuário para a Tabela.

Comando RPC

rpc

Solicite o nome da tag do RPC para execução.

Argumentos padrão do RPC

args

(Opcional) Opções e argumentos de comando padrão para o RPC.

Chave de argumento opcional do RPC

args_key

(Opcional) Faça referência ao primeiro argumento opcional de um comando quando esse argumento não requer uma palavra-chave específica.

Se você não incluir esta propriedade, você deve especificar a palavra-chave, ou nome da opção, para argumentos opcionais que estão incluídos na lista de argumentos do get() método quando você recuperar os dados operacionais.

Item da tabela

item

Expressão XPath em relação ao elemento de nível superior dentro do <rpc-reply> elemento que seleciona os itens para extrair dos dados.

Esses itens se tornam a referência para a visão associada.

Chave do item da tabela

key

(Opcional) Expressão XPath ou uma lista de expressões XPath que seleciona a tag ou as tags cujos valores identificam exclusivamente o item da Tabela para itens que não usam o <name> elemento como identificador ou para casos em que as chaves compostas são necessárias.

Se o item usar o <name> elemento para o identificador, você pode omitir essa propriedade.

Vista da tabela

view

Visualização usada para extrair dados de campo dos itens da Tabela.

Considere a seguinte Tabela de operações do Junos PyEZ, EthPortTableque está incluída na distribuição Junos PyEZ. A Tabela extrai informações de estado operacional para interfaces Ethernet no dispositivo alvo:

As seções a seguir discutem os diferentes componentes da Tabela.

Nome da tabela

O nome da Tabela é um identificador definido pelo usuário para a Tabela. O arquivo ou string YAML pode conter uma ou mais tabelas. O início do documento YAML deve ser deixado justificado. Por exemplo:

Comando RPC (rpc)

Tabelas op Junos PyEZ para extração de saída estruturada informações específicas da saída XML de um RPC. Você deve incluir a rpc propriedade na definição da Tabela de operações para especificar o RPC a ser executado em um dispositivo.

O rpc valor é a tag de solicitação Junos XML para um comando. Por exemplo, o nome da tag de solicitação para o show interfaces comando é get-interface-information.

A tag de solicitação pode ser encontrada usando um dos seguintes métodos:

  • Anexando a opção | display xml rpc após o comando no Junos OS CLI

  • Execução do método de instância display_xml_rpc('command', format='text') Junos PyEZ Device

  • Encontrando o comando e a tag correspondente no Junos XML API Explorer

Argumentos padrão do RPC (args)

A propriedade opcional args define as opções de comando padrão e os argumentos para o RPC. Estes são listados como pares de valor-chave que são incorporados em args. Um argumento padrão é usado quando você liga para o get() método em seu script e não fornece um argumento que substitui esse padrão.

Se uma opção for apenas uma bandeira que não exija um valor específico, você pode incluí-la na lista de argumentos definindo o valor da opção na True definição da Tabela. Por exemplo, o show interfaces media comando mapeia a tag de solicitação get-interface-information com o argumento media: True. Se uma opção exigir um valor, defina o valor do argumento para o valor que você deseja usar como padrão.

Nota:

Se o nome da opção na interface de linha de comando (CLI) do Junos OS estiver hifenizado, você deve alterar quaisquer traços no nome para sublinhar.

Por padrão, o Junos PyEZ normaliza todas as chaves e valores da Tabela, o que elimina todo o whitespace líder e trailing e substitui sequências de caracteres whitespace internos por um único espaço. Para desativar a normalização de uma Tabela, inclua normalize: False na lista de argumentos.

Chave de argumento opcional RPC (args_key)

Você usa a propriedade opcional args_key nos casos em que um comando CLI toma um primeiro argumento opcional que não exige que você especifique explicitamente um nome de opção ou palavra-chave. No exemplo a seguir, o show interfaces comando toma um nome de interface como um argumento opcional:

A args_key propriedade permite que você use esse argumento opcional ao recuperar dados operacionais sem precisar especificar explicitamente a palavra-chave ou o nome da opção.

Se você incluir a args_key propriedade em sua definição de Tabela, você pode especificar o valor do argumento, mas omitir o nome da opção quando recuperar os dados.

Se você omitir a args_key propriedade em sua definição de Tabela, você deve especificar explicitamente o nome da opção se quiser incluir este parâmetro quando recuperar os dados.

Item da tabela (item)

A propriedade da Tabela item , que é necessária em todas as definições da Tabela de operações, identifica os dados a serem extraídos da saída RPC. O item valor é uma expressão XPath em relação ao elemento de alto nível dentro da <rpc-reply> tag que seleciona os elementos desejados. Esses itens se tornam a referência para a visão associada.

O exemplo a seguir mostra uma amostra, saída de comando CLI truncada:

Para selecionar os <physical-interface> elementos dessa saída, inclua a item propriedade e especifique o XPath que seleciona o elemento. Neste caso, o <physical-interface> elemento é uma criança direta do elemento de alto nível <interface-information> , e a expressão XPath para o item valor é apenas o nome do elemento.

Esses itens se tornam a referência para a visão associada.

Diferentes dispositivos podem emitir diferentes elementos de saída para o mesmo RPC. Como resultado, o XPath do item pode variar dependendo do sistema. A item propriedade oferece suporte ao uso do operador de tubulação (|) para especificar um "ou" implícito para selecionar entre vários nós possíveis. Quando a item propriedade inclui este operador, a key propriedade deve usar uma lista. Por exemplo:

Chave de item da tabela (chave)

A propriedade opcional key é uma expressão XPath ou uma lista de expressões XPath que seleciona quais tags ou tags são usadas para identificar de forma exclusiva um item de Tabela para aqueles itens que não usam o <name> elemento como identificador ou para casos em que você queira usar chaves compostas.

Na saída de comando a seguir, cada <physical-interface> elemento é identificado exclusivamente por seu <name> elemento infantil:

Se a propriedade da Tabela item selecionar os <physical-interface> elementos, você pode omitir a key propriedade da definição da Tabela se quiser usar o <name> elemento como chave por padrão.

Por outro lado, considere a seguinte show route brief saída de comando:

Ao selecionar os route-table/rt elementos, não há elemento correspondente <name> que identifique exclusivamente cada entrada de rota. Quando o <name> identificador está ausente, a key propriedade pode especificar qual tag ou tags identificam cada item com exclusividade. Neste caso, você pode identificar cada route-table/rt item com exclusividade usando <rt-destination> como chave.

Além disso, a partir do Junos PyEZ Release 2.3.0, uma Tabela pode definir key: Null para indicar que uma chave não é necessária. Neste caso, a Tabela e a Visualização retornam os dados como um simples diagrama em vez de um aninhado com chaves.

Os itens de tabela podem ser definidos por uma chave que consiste em um único elemento ou vários elementos. As chaves de um único elemento usam uma expressão XPath simples para o valor da key propriedade. As chaves compósitos são definidas por uma lista de expressões XPath. Considere a definição da Tabela a seguir:

A chave principal para esta definição da Tabela pode ser semelhante à seguinte:

Se uma chave composta de componentes fizer referência a um elemento ausente, o Junos PyEZ substituirá o valor na chave por None.

Nota:

O key imóvel deve usar uma lista quando a item propriedade incluir o operador de tubulação ( |).

A key propriedade também oferece suporte ao operador de tubulação ( |), que permite que a Tabela selecione entre vários nós possíveis. O operador permite que você use a mesma Tabela mesmo nos casos em que diferentes sistemas emitem diferentes elementos de saída para o mesmo RPC. Por exemplo, o LLDPNeighborTable, que é mostrado aqui para referência, pode selecionar o lldp-local-interface elemento ou lldp-local-port-id como sua chave:

Quando a key propriedade usa o | operador, cada chave presente na resposta do RPC é adicionada à lista de chaves. O operador pode ser usado para especificar um "ou" implícito e é útil em situações em que diferentes nomes de tags estão presentes para diferentes tipos de configurações ou versões. Por exemplo, se o RPC retornar lldp-local-interface como identificador para um dispositivo e o mesmo RPC retornar lldp-local-port-id do identificador para outro dispositivo, a Tabela selecionará automaticamente a chave apropriada.

Vista da tabela (visualização)

A view propriedade associa a definição da Tabela a uma visão específica. Uma vista mapeia os nomes de campo definidos pelo usuário para elementos nos itens de Tabela selecionados usando expressões XPath. Você pode personalizar a Visualização para selecionar apenas os elementos necessários dos itens da Tabela.