Cargar tablas y vistas en línea o externas en aplicaciones Junos PyEZ
RESUMEN Importe tablas predefinidas o tablas personalizadas en línea o externas a su aplicación Junos PyEZ.
Las tablas y vistas de Junos PyEZ proporcionan una manera sencilla y eficiente de configurar dispositivos Junos o extraer información específica de la salida de comandos operativos o de los datos de configuración. Junos PyEZ proporciona un conjunto de tablas y vistas operativas predefinidas que puede utilizar en aplicaciones, o puede crear sus propias tablas y vistas operativas o de configuración personalizadas.
Puede crear tablas y vistas rápidas en línea como una cadena de varias líneas directamente en la aplicación Python, o puede crear una o más definiciones de tabla y vista en archivos externos e importar las tablas en su aplicación Python. Las tablas y vistas en línea son más fáciles de usar, pero el uso de archivos externos le permite crear una biblioteca central y reutilizable.
Para utilizar las tablas y vistas predefinidas de Junos PyEZ en su aplicación de Python, debe importar la tabla a su aplicación. Para utilizar tablas y vistas personalizadas, debe crear las definiciones de tabla y vista y, a continuación, cargar o importar las definiciones en la aplicación, dependiendo de si son internas o externas al módulo. En las secciones siguientes se describe este proceso para tablas y vistas internas y externas al módulo.
Importar tablas y vistas predefinidas de Junos PyEZ
El módulo y jnpr.junos.command el módulo de Junos PyEZ jnpr.junos.op proporcionan definiciones predefinidas de tabla y vista para algunos RPC y comandos operativos comunes. Para utilizar las tablas y vistas predefinidas de Junos PyEZ en su aplicación de Python, debe incluir las instrucciones import adecuadas en su aplicación. Junto con la importación de la clase Junos PyEZDevice, también debe importar las tablas necesarias.
En el ejemplo siguiente se importa una tabla operativa predefinida, EthPortTable, desde el jnpr.junos.op.ethport módulo:
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
Después de importar las definiciones de tabla y vista, puede usarlas como se describe en Usar tablas y vistas. En el ejemplo siguiente se recuperan los datos del RPC definido en la tabla y, a continuación, se imprime el nombre de interfaz y el estado operativo.
from jnpr.junos import Device
from jnpr.junos.op.ethport import EthPortTable
with Device(host='router1.example.net') as dev:
eth = EthPortTable(dev)
eth.get()
for item in eth:
print ("{}: {}".format(item.name, item.oper))
Para obtener más información acerca de las tablas y vistas predefinidas de Junos PyEZ, consulte Tablas operativas predefinidas de Junos PyEZ (salida estructurada).
Cargar tablas y vistas en línea
Para crear, cargar y usar tablas y vistas en línea personalizadas en su aplicación Junos PyEZ:
Después de cargar las definiciones de tabla y vista, no hay ninguna diferencia en el uso de tablas en línea o externas en el módulo. Para obtener información adicional, vea Usar tablas y vistas.
Importar tablas y vistas externas
Las definiciones de tabla y vista externas se colocan en archivos externos a la aplicación Junos PyEZ. Para crear tablas y vistas personalizadas externas e importarlas a su aplicación Junos PyEZ:
Después de cargar las definiciones de tabla y vista, no hay ninguna diferencia en el uso de tablas en línea o externas en el módulo. Para obtener información adicional, vea Usar tablas y vistas.
Usar tablas y vistas
Después de cargar o importar las definiciones de tabla y vista, puede utilizar las tablas predefinidas, personalizadas en línea o externas personalizadas de la misma manera.
Para usar una tabla:
En el ejemplo siguiente se importa una tabla externa personalizada, UserTable. La aplicación se conecta al dispositivo y llama al método Tables get() para recuperar user objetos del [edit system login] nivel jerárquico. A continuación, la aplicación imprime cada nombre de usuario y su correspondiente clase de inicio de sesión.
from jnpr.junos import Device
from myTables.ConfigTables import UserTable
with Device(host='router.example.com') as dev:
users = UserTable(dev)
users.get()
for account in users:
print("Username is {}\nUser class is {}".format(account.username, account.userclass))
Para obtener más información acerca del uso de tablas PyEZ de Junos, consulte los siguientes temas: