Junos-eznc

Latest version: v2.7.1

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

Scan your dependencies

Page 6 of 10

2.1.3

Not secure
Features Added:
- Ephemeral config support 707
- Add a srx_cluster_redundancy_group fact. 711

Bugs Fixed:
- ignore_warning fails when single <rpc-error> that is first child of <rpc-reply>. 712
- mode='telnet' did not logout non-cli user 713
- JSONLoadError was thrown when load valid JSON config 717/718
- Fix XML normalization feature when using NETCONF over console. 719/720
- Handle differences in |display xml rpc 722

2.1.2

Not secure
Bugs Fixed:
- Doc badge was pointing to older version 694
- Fix new-style fact gathering for SRX clusters. 697/698
- Properly handle SW upgrades on multi-RE and/or multi-chassis systems when using new-style fact gathering. 700
- Raise JSONLoadError if json config is malformed 706
- Handle ConnectClosedError exception for lock() and unlock() 708

2.1.1

Not secure
Bugs Fixed:
- Fix regressions caused by `ignore_warning`. 691

2.1.0

Not secure
Features Added:
- Enhanced fact gathering. Facts are now gathered "on demand." Additional facts are added.
The definition of facts and return values are properly documented. 638
- Support for YANG get RPCs. 672
- Add an `ignore_warning` argument to suppress `RpcError` exceptions for warnings. 672/685
- Enhanced the `sw.install()` method with basic ISSU and NSSU support using the issu and nssu
boolean arguments. 606/630/632
** NSSU support has not yet been tested and should currently be considered experimental.
- Provide a master property and a re_name property for Device. 682
- Enhanced `reboot()` method to take an `all_re` boolean parameter which controls if only the connected
Routing Engine, or all Routing Engines, are rebooted. 613
- Enhanced the warning message produced by the `cli()` method to recommend the corresponding
`dev.rpc.<method>()` call. 603
- Add support for `update` parameter to configuration `load()` method. 681
- Added `directory_usage` to utils 629/631/636
- Adding support for NFX/JDM fact gathering. 652/659
- Connected property. 664

Bugs Fixed:
- Updated the interface-name glob pattern to correctly match `et-<x>/<y>/<z>` interfaces
in several tables and views. 609
- Take care of special chars on screen during console connection. 610
- Address issue with fact gathering stopping when it encounters a problem. 615
- Minor typos fixed in `RuntimeError` exception message and in comments. 621
- Added `console_has_banner` parameter. 622
- Add CentOS Support to install instructions 623
- Key value is needed in `_IsisAdjacencyLogTable` 627
- Improved functionality and documentation of Docker build. 637/673/674/677
- added remote port ID to lldp.yml (OP) 645
- Fix documentation for `rollback()` 647
- Fix for fact gathering pprint. 660/661
- update ospf view, add bgp/inventory 665
- Updated doc string for close function 686
- Add Travis builds for Python 3.5 and 3.6 687
- StartShell.run to take this as None for non returning commands 680
- Modify ignore_warning return value to mimic normal RPC return value. 688

2.0.1

Not secure
- StartShell to take timeout (30 second by default) as paramter

python
from jnpr.junos.utils.start_shell import StartShell
with StartShell(dev, timeout=60) as ss:
print ss.run("rtsockmon -t")[1]

- Proper exception handling in case of Console connection 595
- Fix: Config.lock() return exception when normalize is on
- Added microbadge badge for the Docker image 593
- Fix: print dev for Console conn was printing object not Device(....) 591

python
>>> from jnpr.junos import Device
>>> dev = Device('xxx', user='xxx', password='xxx', mode='telnet', port='23', gather_facts=True)
>>> dev.open()
Device(xxx)

- Fix: To take care of special chars with StartShell->run function call 589
- Fix: ssh private key file to be considered for scp util 586

python
dev = Device('xx.xx.xx.xx', user='xxxx', ssh_private_key_file='/Users/user/userkey')
dev.open()
print dev.facts

with SCP(dev) as obj:
obj.put('/var/tmp/test.txt', '/var/home/user')

- Added Dockerfile to enable automated image builds on project commits 585

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.

Page 6 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.