Configurando uma política de eventos para passar argumentos para um script de eventos
Quando uma política de eventos invoca um script de evento, a política pode passar argumentos para o script. As seções a seguir descrevem como configurar os argumentos na política de eventos e usar os argumentos dentro do script do evento:
Configuração de argumentos de script de eventos em uma política de eventos
Você configura os argumentos de que uma política de eventos passa para um script de evento dentro da then
cláusula da política sob a event-script filename arguments
hierarquia. Você pode configurar qualquer número de argumentos para cada script de evento invocado.
[edit event-options policy policy-name then] event-script filename { arguments { argument-name argument-value; } }
Você inclui argumentos para o script como pares de nome/valor. Os valores de argumento podem incluir variáveis que contêm informações sobre o evento de acionamento ou outros eventos recebidos. O script do evento pode então fazer referência a essas informações durante a execução. Você pode usar variáveis dos seguintes formulários:
{$$.attribute-name}
— A notação do sinal de dólar duplo ($$
) representa o evento que está desencadeando uma política. Quando combinada com um nome de atributo, a variável resolve o valor do atributo associado ao evento de acionamento. Por exemplo,{$$.interface-name}
resolve o nome da interface associado ao evento de acionamento.{$event.attribute-name}
— O sinal de dólar único com o nome do evento ($event
) notação representa o evento mais recente que combinaevent
. Quando combinada com um nome de atributo, a variável resolve o valor do atributo associado a esse evento. Por exemplo,{$COSD_CHAS_SCHED_MAP_INVALID.interface-name}
resolve o nome da interface associado ao evento mais recenteCOSD_CHAS_SCHED_MAP_INVALID
em cache pelo processo eventuais.
Para um determinado evento, você pode ver uma lista de atributos de evento que você pode fazer referência ao emitir o help syslog event
comando.
user@host> help syslog event
Por exemplo, na saída de comando a seguir, suportes de texto em ângulo (< >
) mostram atributos do COSD_CHASSIS_SCHEDULER_MAP_INVALID
evento:
user@host> help syslog COSD_CHASSIS_SCHEDULER_MAP_INVALID Name: COSD_CHASSIS_SCHEDULER_MAP_INVALID Message: Chassis scheduler map incorrectly applied to interface <interface-name>: <error-message> ...
Outra maneira de ver uma lista de atributos de evento é emitir o comando do set attributes-match event?
modo de configuração no nível de [edit event-options policy policy-name]
hierarquia.
[edit event-options policy policy-name] user@host# set attributes-match event?
Por exemplo, na saída de comando a seguir, a event.attribute
lista mostra isso error-message
e interface-name
são atributos do cosd_chassis_scheduler_map_invalid
evento:
[edit event-options policy p1] user@host# set attributes-match cosd_chassis_scheduler_map_invalid? Possible completions: <from-event-attribute> First attribute to compare cosd_chassis_scheduler_map_invalid.error-message cosd_chassis_scheduler_map_invalid.interface-name
Neste set
comando, não há espaço entre o nome do evento e o ponto de interrogação (?
).
Para ver uma lista de todos os atributos de evento que você pode mencionar, emita o comando do set attributes-match ?
modo de configuração no nível de [edit event-options policy policy-name]
hierarquia.
[edit event-options policy policy-name] user@host# set attributes-match ? Possible completions: <from-event-attribute> First attribute to compare acct_accounting_ferror acct_accounting_fopen_error ...
Usando argumentos em um script de eventos
Quando uma política de eventos invoca um script de evento, o script do evento pode fazer referência a qualquer um dos argumentos aprovados pela política. Os nomes dos argumentos no script de caso devem combinar os nomes dos argumentos configurados para esse script de evento sob a [edit event-options policy policy-name then event-scripts filename arguments]
hierarquia na configuração.
Para usar os argumentos dentro de um script de evento SLAX ou XSLT, você deve incluir uma declaração de parâmetro para cada argumento. O script do evento atribui o valor de cada argumento de script ao parâmetro correspondente do mesmo nome, que pode ser mencionado em todo o script.
Sintaxe XSLT
<xsl:param name="argument-name"/>
Sintaxe SLAX
param $argument-name;
Para usar os argumentos dentro de um script de evento Python, você pode usar quaisquer meios válidos na linguagem Python. O exemplo a seguir usa o módulo Python argparse
para processar os argumentos de script. Uma parser.add_argument
declaração deve ser incluída para cada argumento passado para o script.
Sintaxe Python
import argparse def main(): parser = argparse.ArgumentParser() parser.add_argument('-argument-name', required=True) args = parser.parse_args() # to use the argument reference args.argument-name if __name__ == '__main__': main()