Skip to content

Commit

Permalink
Develop (#11)
Browse files Browse the repository at this point in the history
- Handle netconf 1.1 devices that have chunk sizes of 1
- Ensure results are "pretty printed"
- Above two items were worked out with thanks to Hugo Tinoco! PS - this has been tested on Nokia devices now too!
- Hopefully improved asyncssh "echo checker" (see _check_echo) method in async_channel for details
- Update CI to use 3.9 instead of 3.9-dev (and update deprecated set-env)
- Remove transport session locks
  • Loading branch information
carlmontanari authored Oct 11, 2020
1 parent c23f1b5 commit ba506e3
Show file tree
Hide file tree
Showing 35 changed files with 905 additions and 381 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/commit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
max-parallel: 9
matrix:
os: [ubuntu-latest, macos-latest]
version: [3.6, 3.7, 3.8, 3.9-dev]
version: [3.6, 3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: set up python ${{ matrix.version }}
Expand All @@ -41,9 +41,9 @@ jobs:
# not super friendly looking, but easy way to get major.minor version so we can easily exec only the specific
# version we are targeting with nox, while still having versions like 3.9.0a4
run: |
echo "::set-env name=FRIENDLY_PYTHON_VERSION::$(python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")"
- name: install libxml2 and libxslt seems to only be needed for 3.9 dev image for some reason
if: matrix.os == 'ubuntu-latest' && matrix.version == '3.9-dev'
echo "FRIENDLY_PYTHON_VERSION=$(python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")" >> $GITHUB_ENV
- name: install libxml2 and libxslt seems to only be needed for 3.9 image for some reason
if: matrix.os == 'ubuntu-latest' && matrix.version == '3.9'
run: |
sudo apt install libxml2-dev
sudo apt install libxslt-dev
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: set up python 3.8
- name: set up python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.8
python-version: 3.9
- name: setup publish env
run: |
python -m pip install --upgrade pip
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/weekly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
max-parallel: 1
matrix:
os: [ubuntu-latest]
version: [3.8]
version: [3.9]
steps:
- uses: actions/checkout@v2
- name: set up python ${{ matrix.version }}
Expand All @@ -35,7 +35,7 @@ jobs:
max-parallel: 9
matrix:
os: [ubuntu-latest, macos-latest]
version: [3.6, 3.7, 3.8, 3.9-dev]
version: [3.6, 3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: set up python ${{ matrix.version }}
Expand All @@ -46,9 +46,9 @@ jobs:
# not super friendly looking, but easy way to get major.minor version so we can easily exec only the specific
# version we are targeting with nox, while still having versions like 3.9.0a4
run: |
echo "::set-env name=FRIENDLY_PYTHON_VERSION::$(python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")"
- name: install libxml2 and libxslt seems to only be needed for 3.9 dev image for some reason
if: matrix.os == 'ubuntu-latest' && matrix.version == '3.9-dev'
echo "FRIENDLY_PYTHON_VERSION=$(python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")" >> $GITHUB_ENV
- name: install libxml2 and libxslt seems to only be needed for 3.9 image for some reason
if: matrix.os == 'ubuntu-latest' && matrix.version == '3.9'
run: |
sudo apt install libxml2-dev
sudo apt install libxslt-dev
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,41 @@
CHANGELOG
=========

# 2020.10.10
- Handle netconf 1.1 devices that have chunk sizes of 1
- Ensure results are "pretty printed"
- Above two items were worked out with thanks to Hugo Tinoco! PS - this has been tested on Nokia devices now too!
- Hopefully improved asyncssh "echo checker" (see _check_echo) method in async_channel for details
- Update CI to use 3.9 instead of 3.9-dev (and update deprecated set-env)
- Remove transport session locks


# 2020.09.23
- Strip server capabilities so we don't save capabilities with newlines/whitespace
- Add `validate` and `delete_config` methods


# 2020.09.18
- Fix some pins for dev requirements
- Add 3.9-dev to actions
- Fix `scrapli-asycnssh` not in setup.py `install_requires`
- Retest everything! In general, just get this updated/ready for `nornir-scrapli`!


# 2020.07.26
- Update to match scrapli core -- moved to updated timeout decorator, fixed a test to match a better exception message


# 2020.07.12
- Minor improvements to response recording (should be a tick faster)
- Update decorators for async things to use the improved `async_operation_timeout` in scrapli 2020.07.12
- Set `strip_namespaces` to `False` for `AsyncNetconfScrape` for consistency/sanity
- Update a few dev pins, update required pins to ensure no major lxml updates break things


# 2020.07.04
- First real release??? :)


# 2020.04.19
- Initial pypi release... very beta still
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ scrapli_netconf aims to be fully RFC compliant at some point, but at the moment
- [More Examples](#more-examples)
- [Documentation](#documentation)
- [scrapli_netconf: What is it](#scrapli-what-is-it)
- [Related Scrapli Libraries](#related-scrapli-libraries)
- [Supported Platforms](#supported-platforms)
- [Advanced Installation](#advanced-installation)
- [Basic Usage](#basic-usage)
Expand Down Expand Up @@ -151,6 +152,19 @@ A great question to ask right now is: "why"! The primary driver is to get `nccli
for netconf operations.


# Related Scrapli Libraries

This repo is the "netconf" component scrapli project, however there are other libraries/repos in the scrapli family
-- here is a list/link to all of the other scrapli things!

- [scrapli](https://github.com/carlmontanari/scrapli) -- the "core" project
- [scrapli_paramiko](https://github.com/scrapli/scrapli_paramiko) -- the paramiko transport driver
- [scrapli_ssh2](https://github.com/scrapli/scrapli_ssh2) -- the ssh2-python transport driver
- [scrapli_asyncssh](https://github.com/scrapli/scrapli_asyncssh) -- the asyncssh transport driver
- [nornir_scrapli](https://github.com/scrapli/nornir_scrapli) -- scrapli's nornir plugin
- [scrapli_stubs](https://github.com/scrapli/scrapli_stubs) -- scrapli type stubs


# Supported Platforms

At this time scrapli_netconf is a base implementation of netconf 1.0 and netconf 1.1 (note that scrapli is not 100
Expand All @@ -161,6 +175,9 @@ At this time scrapli_netconf is a base implementation of netconf 1.0 and netconf
- Cisco IOS-XR (tested on: 6.5.3) with Netconf 1.1
- Juniper JunOS (tested on: 17.3R2.10) with Netconf 1.0

In addition to the above devices, there has been testing on various versions of Juniper SRX, QFX, and MX platforms on
~18ish+ code, as well as Cisco NCS devices on 6.6.2+ code, and finally there has been limited testing on Nokia devices.


# Advanced Installation

Expand Down
Loading

0 comments on commit ba506e3

Please sign in to comment.