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: