Cargue tablas y vistas en línea o externas en aplicaciones de Junos PyEZ
Importe tablas predefinidas o tablas personalizadas en línea o externas a su aplicación Junos PyEZ.
Las tablas y vistas de Junos PyEZ ofrecen 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. También puede crear sus propias tablas y vistas operativas o de configuración personalizadas.
Puede crear tablas y vistas en línea rápidas como una cadena de varias líneas directamente en la aplicación Python. Como alternativa, puede crear una o varias definiciones de tabla y vista en archivos externos e importar las tablas a la aplicación de 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 que son tanto internas como externas al módulo.
Importar tablas y vistas predefinidas de Junos PyEZ
El módulo y jnpr.junos.command el módulo PyEZ jnpr.junos.op de Junos proporcionan definiciones predefinidas de tabla y vista para algunos RPC y comandos operativos comunes. Para usar las tablas y vistas predefinidas de Junos PyEZ en su aplicación de Python, debe incluir las instrucciones de importación adecuadas en su aplicación. Además de importar la clase PyEZ Device de Junos, también debe importar las tablas necesarias.
En el ejemplo siguiente se importa una tabla operativa predefinida, EthPortTable, del 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 de la RPC definida 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='router.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:
Una vez cargadas las definiciones de tabla y vista, no hay diferencia en la forma en que se utilizan las tablas en línea o externas en el módulo. Para obtener más información, consulte Uso de tablas y vistas.
Importar tablas y vistas externas
Las definiciones de tabla y vista externas se colocan en archivos externos a su aplicación Junos PyEZ. Para crear tablas y vistas personalizadas externas e importarlas a su aplicación Junos PyEZ:
Una vez cargadas las definiciones de tabla y vista, no hay diferencia en la forma en que se utilizan las tablas en línea o externas en el módulo. Para obtener más información, consulte Uso de tablas y vistas.
Usar tablas y vistas
Después de cargar o importar las definiciones de tabla y vista, puede utilizar las tablas predefinidas, en línea personalizadas 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 de get() Table para recuperar user objetos del [edit system login] nivel de jerarquía. Luego, la aplicación imprime cada nombre de usuario y su clase de inicio de sesión correspondiente.
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 sobre el uso de las tablas PyEZ de Junos, consulte los siguientes temas: