Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Use tabelas de configuração do Junos PyEZ para recuperar dados de configuração

Tabelas e visualizações de configuração do Junos PyEZ oferecem uma maneira simples e eficiente de extrair informações específicas do banco de dados de configuração selecionado de um dispositivo Junos. Depois de carregar ou importar a definição de Tabela em seu módulo Python, você pode recuperar os dados de configuração.

Tabelas de configuração do Junos PyEZ que especificam a get propriedade só podem recuperar dados de configuração. Tabelas que especificam a set propriedade podem configurar recursos em dispositivos Junos, bem como recuperar dados da mesma maneira que tabelas que especificam a get propriedade.

Para recuperar informações de um dispositivo específico, você deve criar uma instância de Tabela e associá-la ao Device objeto que representa o dispositivo alvo. Por exemplo:

As seções a seguir discutem como recuperar e manipular os dados:

Recuperar itens de configuração

A Tabela get de configuração ou set a propriedade identifica os dados a serem extraídos da configuração. Por exemplo, a definição da tabela de amostra a seguir extrai elementos user no nível de hierarquia de [edit system login] configuração:

Você recupera os dados de configuração em seu script Python ligando para o get() método e fornecendo quaisquer argumentos desejados.

Se a definição da Tabela incluir o required_keys parâmetro, você deve incluir pares de valor-chave para cada chave necessária na lista de argumentos do get() método. A definição da Tabela a seguir exige que a lista de argumentos do get() método inclua um user argumento com um valor que corresponda ao valor de um name elemento no nível hierárquicos [edit system login user] :

get() No método, você deve incluir a chave necessária na lista de argumentos; caso contrário, o código oferece uma exceção ao ValueError. O exemplo a seguir solicita os dados de configuração para o usuário chamado "operador":

Nota:

Se o nome do argumento for hifenizado, você deve alterar qualquer traço no nome para sublinhar. O valor do argumento, no entanto, é uma corda e, como tal, pode conter hífens.

Você pode incluir o argumento do get() método namesonly=True para devolver dados de configuração que contêm apenas chaves de nome no nível de hierarquia especificado na get propriedade da set sua definição de Tabela.

Por exemplo, suponha que get seja definido para recuperar dados de configuração no interfaces/interface nível de hierarquia, e você inclui o namesonly=True argumento no get() método quando você recupera os dados em seu script Junos PyEZ. Neste caso, o método devolve apenas os valores nos <name> elementos que são filhos diretos do interfaces/interface nível hierárquico. As informações em elementos que são irmãos do <name> elemento não são devolvidas, e os dados para <name> elementos em níveis mais baixos na hierarquia não são devolvidos.

Especifique o banco de dados de configuração

Por padrão, as tabelas de configuração do Junos PyEZ recuperam dados do banco de dados de configuração do candidato. Quando você liga para o get() método no script Python para recuperar os dados da Tabela, você pode especificar que o método deve, em vez disso, devolver dados do banco de dados de configuração comprometido, passando o options argumento e incluindo o 'database':'committed' item no options diagrama.

Especifique as opções de herança e grupo

Você pode controlar as opções de herança e grupo ao recuperar dados de configuração usando o options argumento na lista de argumentos do get() método. O options argumento requer um argumento e, por padrão, é definido o seguinte valor, que aplica herança e grupos para os dados de configuração devolvidos:

Se você não redefinir o options argumento em seu script Python, ele usa automaticamente o padrão.

A opção inherit especifica como os dados de configuração exibem declarações definidas em grupos de configuração e intervalos de interface. Por padrão, a opção 'inherit':'inherit' está incluída, e os dados de configuração incluem elementos de tag herdados de grupos ou intervalos de interface definidos pelo usuário dentro dos elementos de tag herdados em vez de exibir os <groups>elementos<apply-groups><apply-groups-except>, ou <interface-range> elementos separadamente. Para aplicar a herança, mas também incluir elementos de tag para declarações definidas no junos-defaults grupo, use 'inherit':'defaults' no options argumento.

Para desativar a herança, definir o valor do nípedes para uma corda vazia.

Incluindo os dados de configuração e 'groups':'groups' as 'inherit':'inherit' opções, os dados de configuração também indicam o grupo de configuração do qual os elementos são herdados. Um elemento herdado de um determinado grupo inclui o junos:group="source-group" atributo em sua tag de abertura, conforme mostrado no exemplo a seguir:

Para fornecer acesso aos atributos na definição de Visualização, você pode incluir a sintaxe XPath apropriada no mapeamento de campo. O exemplo a seguir define o ifgroup campo e o mapeia para o junos:group atributo do elemento da <name> interface:

O Junos PyEZ também fornece o group operador, que é um método de atalho para acessar o junos:group atributo de um elemento. O exemplo a seguir define o ifgroup campo, que é mapeado para o name elemento com o group operador. Quando você acessa ifgroup dentro do seu script, ele faz referência ao valor do junos:group atributo associado ao elemento da <name> interface.

Se um elemento não for herdado de um grupo, o valor de um campo que faz referência ao group atributo é None.

Itens da tabela de acesso

Depois de recuperar os itens de configuração, você pode tratá-los como um níquete Python, que permite que você use métodos na biblioteca Python padrão para acessar e manipular os itens.

Para ver a lista de chaves de itens correspondentes aos nomes dos itens de configuração, ligue para o keys() método.

Você pode verificar se uma chave específica está presente nos itens da Tabela usando o operador Python in .

Para ver uma lista dos campos ou valores associados a cada chave, ligue para o values() método. O values() método retorna uma lista de tuples com os pares de valor de nome para cada campo que foi definido no View.

Para ver a lista completa de itens, incluindo chaves e valores, ligue para o items() método.

Iterar através de uma mesa

As tabelas oferecem suporte à iteração, que permite que você faça loop por cada item de configuração da mesma forma que você faria loop por uma lista ou um pouco de informações. Com isso, é fácil formatar e publicar rapidamente os campos desejados.

A definição da Tabela a seguir extrai os system/login/user itens dos dados de configuração:

O aplicativo Junos PyEZ a seguir passa pelos user itens e imprime o nome e a classe de cada usuário:

Os username campos e userclass os campos, definidos no UserView, correspondem aos valores e name class elementos, respectivamente, nos dados de configuração. A saída inclui o nome e a classe do usuário.

Embora o UserView defina um username campo que mapeia o name elemento, por padrão, cada item View tem uma name propriedade que faz referência à chave que identifica esse item com exclusividade. Assim, você também pode usar user.name neste exemplo para fazer referência ao valor do name elemento.