Suprima las excepciones RpcError que se plantean para las advertencias en las aplicaciones Junos PyEZ
Junos PyEZ le permite realizar tareas operativas y de configuración en dispositivos Junos. En una aplicación Junos PyEZ, cuando se llama a métodos específicos o se ejecutan RPCs a pedido, Junos PyEZ envía las RPCs adecuadas al dispositivo para realizar la operación o recuperar la información solicitada. Si la respuesta RPC contiene <rpc-error>
elementos con una gravedad de advertencia o superior, la aplicación Junos PyEZ genera una RpcError
excepción.
En ciertos casos, es posible que sea necesario o conveniente suprimir las RpcError
excepciones que se plantean en respuesta a las advertencias. Puede indicar a una aplicación Junos PyEZ que suprima RpcError
las excepciones que se plantean para las advertencias incluyendo el ignore_warning
argumento en la llamada al método o la invocación RPC. El ignore_warning
argumento toma un booleano, una cadena o una lista de cadenas. Puede indicar al dispositivo que ignore todas las advertencias o una o más advertencias específicas.
Puede usar el ignore_warning
argumento en los siguientes jnpr.junos.utils.config.Config
métodos de clase:
-
commit()
-
diff()
-
load()
-
pdiff()
-
rollback()
También puede usar ignore_warning
cuando recupera los datos de configuración y estado con la get()
RPC.
Ignore todas las advertencias
Para indicar a la aplicación que ignore todas las advertencias de una operación o RPC, incluya el ignore_warning=True
argumento en la llamada al método o la invocación RPC. En el siguiente ejemplo, se omiten todas las advertencias de los load()
métodos y commit()
:
from jnpr.junos import Device from jnpr.junos.utils.config import Config dev = Device(host='router1.example.com') dev.open() with Config(dev, mode='exclusive') as cu: cu.load(path='mx-config.conf', ignore_warning=True) cu.commit(ignore_warning=True) data = dev.rpc.get_configuration() print(etree.tostring(data, encoding='unicode')) dev.close()
Si incluye ignore_warning=True
y todos los <rpc-error>
elementos tienen una gravedad de advertencia, la aplicación omite todas las advertencias y no genera una RpcError
excepción. Sin embargo, cualquier <rpc-error>
elemento con niveles de gravedad más altos seguirá generando excepciones.
Ignore las advertencias específicas
Para indicar a la aplicación que ignore advertencias específicas, establezca el ignore_warning
argumento en una cadena o una lista de cadenas que contengan las advertencias que se ignorarán. Cuando ignore_warning
se establece en una cadena o una lista de cadenas, la cadena se usa como expresión regular sin distingue entre mayúsculas y minúsculas. Si una cadena solo contiene caracteres alfanuméricos, da como resultado una coincidencia de subcadena sin mayúsculas y minúsculas. Sin embargo, puede incluir cualquier patrón de expresión regular compatible con la re
biblioteca para que coincida con las advertencias.
La siguiente aplicación Junos PyEZ omite dos advertencias específicas durante la operación de confirmación. La aplicación suprime las excepciones RpcError
si todos los <rpc-error>
elementos tienen una gravedad de advertencia y cada advertencia en la respuesta coincide con una o más de las cadenas especificadas.
from jnpr.junos import Device from jnpr.junos.utils.config import Config commit_warnings = ['Advertisement-interval is less than four times', 'Chassis configuration for network services has been changed.'] dev = Device(host='router1.example.com') dev.open() with Config(dev, mode='exclusive') as cu: cu.load(path='mx-config.conf') cu.commit(ignore_warning=commit_warnings) dev.close()