Junos-eznc

Latest version: v2.7.2

Safety actively analyzes 682361 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 10

2.0.0

Not secure
Console connection using PyEZ

Now PyEZ will support Console (Telnet/Serial) connection apart from SSH
1. Telnet Connection
- Over managment ip
- Over Console Server ip/port
2. Serial Connection
Example:

python
from jnpr.junos import Device
from lxml import etree

with Device(host='console-srv-ip', user='xxx', password='xxxx', mode='telnet', port='7011', gather_facts=True) as dev:
print dev.facts
op = dev.rpc.get_interface_information(interface_name='fxp0')
print etree.tostring(op)


Python >=3.4 support


$ python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from jnpr.junos import Device
>>> dev = Device('xxxx', user='xxxx', password='xxxx')
>>> dev.open()
>>> print (dev.facts)


Configuration Tables to Define and Configure Structured Resources

Example:

Python
from jnpr.junos import Device
from jnpr.junos.resources.interface import InterfaceTable

dev = Device(host='xx.xx.xx.xx', user='xxx', gather_facts=False)
dev.open()

intf = InterfaceTable(dev)

intf.name = "ge-1/1/5"
intf.unit_name = 0
intf.disable = True
intf.mode = "trunk"
intf.vlan_list = [510, 520, 530]
intf.native_vlan = 510
intf.desc = "l2-interface created"
intf.append()
intf.set()


JSON Config load

For devices >=16.1, user can also load JSON config apart from xml/set/text

Example:

python
from jnpr.junos import Device

dev = Device(host='xx.xxx.xxx.xx', user='xxxx', password='xxxx', gather_facts=False)
dev.open()

cnf = """{
"configuration" : {
"system" : {
"services" : {
"telnet" : [null]
}
}
}
}"""

cu = Config(dev)
op = cu.load(cnf, format='json')
print etree.tostring(op)
dev.close()


FTP Utility

Option to use FTP utility to transfer files in addition to existing SCP.

python
from jnpr.junos import Device
from jnpr.junos.utils.ftp import FTP

dev = Device(host='xx.xxx.xxx.xx', user='xxxx', password='xxxx', gather_facts=False)
dev.open()

with FTP(dev) as ftp:
ftp.put('/var/tmp/test.txt', '/var/tmp/test.txt')

dev.close()


Multi RPC error

If the config being loaded got more then 1 error/warning, PyEZ will give all error details to the user

python
from jnpr.junos import Device
from jnpr.junos.utils.config import Config

dev = Device(host='xx.xxx.xxx.xx', user='xxxx', password='xxxx', gather_facts=False)
dev.open()

cnf = \
"""set interfaces xe-0/0/10 ether-options 802.3ad ae10
et interfaces xe-0/0/11 ether-options 802.3ad ae11
set interfaces xe-0/0/12 ether-options 802.3ad lcap force-up
set interfaces xe-0/0/14 ether-options 802.3ad ae14"""
cu = Config(dev)
try:
cu.load(cnf, format='set')
cu.commit()
except Exception as ex:
print ex.errs
print ex



Output

[{'source': None, 'message': 'syntax error', 'bad_element': 'ether-options', 'severity': 'error'},
{'source': None, 'message': 'unknown command', 'bad_element': 'et', 'severity': 'error'},
{'source': None, 'message': 'syntax error', 'bad_element': 'ether-options', 'severity': 'error'},
{'source': None, 'message': 'syntax error', 'bad_element': 'ether-options', 'severity': 'error'}]

ConfigLoadError(severity: error, bad_element: ether-options, message: error: syntax error
error: unknown command
error: syntax error
error: syntax error)

Bug fixes
- dev.cli "invalid command" returned even in case of proper command. 498 492
- StartShell utility to work on Occam and root users.
- StartShell run function to return Tuple of last_ok & command output
- Many other bug fixes.

1.3.1

Not secure
Bugs Fixed:
- Not to suppress exception under Config util context manager.

1.3.0

Not secure
Feature addition:
- support "private" and "dynamic" database access 301 458

We should be able to use Config as context manager where we can specify mode from
private/exclusive/dynamic/batch/ephemeral.

python
mode can be private/dynamic/exclusive/batch
with Config(dev, mode='private') as cu:
cu.load('set system services netconf traceoptions file test.log', format='set')
cu.pdiff()
cu.commit()


Feature enhancements:
- Support for Feature Velocity releases 442
- Multiple RPC support 338 453
- Merged Table/View pull requests from user. 441
- Facts gathering to raise only warning in case of exception 459

Bugs Fixed:
- Raise RpcTimeoutError in commit_check 437
- Config load not throwing RpcTimeoutError 443 444
- Prevented AttributeError upon XML comment 448 447
- Facts gathering fix for QFX and other specific software releases 450 463

1.2.3

Not secure
Bugs Fixed:
- Software upgrade for multi RE and multi VC 429
- single chassis (EX8208 1EA-2RE) software installation was broken.
- Facts gathering on VMx & Qfabric 313
- SCP & SW progress to print proper log messages 422, 421
- TXP facts broken 417
- Prefer explicitly defined ssh_private_key_file to sshconfig 418

Feature enhancements:
- Implement context manager for Device 433
- JSON as format option to RPC calls for Junos >= 14.2
- Merged Table/View pull requests from users.

1.2.2

Not secure
Bugs Fixed:
- Suppress paramiko logger warnings 363
- A few places warnings similar to `No handlers could be found for logger "paramiko.transport"` would be displayed.
- Device password setter did not work 400
- `dev.password = 'newpass'`
- Facts gather for EX8200 standalone failing 402
- JSON dump of RPC XML failing when contents include XML comment 406
- SCP logger not enabled by default 362

1.2.1

Not secure
Bugs Fixed:
- Unable to use get() multiple times with Tables
- Add increased timeout value for remote_checksum
- Ability to set options in CfgTable definition
- Domain Fact
- Put RPC inside try block
- Search inherited version of config
- Update support of swver fact for Junos 15.1

Page 7 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.