Skip to main content

Library for Huawei, Nokia network device API interactions

Project description

PyNetCom

pynetcom is a library designed for connecting to network switches and routers from various vendors via REST API and CLI, as well as for interacting with management systems such as Huawei NCE and Nokia NSP. The library allows you to execute commands, retrieve inventory data, and obtain alarm lists.

Features

  • Connect to network devices using REST API and CLI.
  • Interact with management systems (e.g., Huawei NCE, Nokia NSP).
  • Retrieve inventory data.
  • Obtain alarm lists.
  • Convenient token management for authorization.
  • Automatic token refresh upon expiration.

Installation

You can install the package using pip:

pip install pynetcom

Development

To set up the development environment:

# Install development dependencies
pip install setuptools wheel twine

# Install the package locally
pip install .

# Create wheel and source 
pip install build twine
python -m build

Running Examples

To run examples, follow these steps:

  1. Clone the repository:

    git clone <repository_url>
    cd pynetcom
    
  2. Set up a virtual environment:

    python -m venv .venv
    
  3. Activate the virtual environment:

    • On Windows:

      .venv\Scripts\activate
      
    • On macOS/Linux:

      source .venv/bin/activate
      
  4. Add your configuration data to config.py:

    cp examples/config.example.py examples/config.py
    vi examples/config.py
    
    API_NCE_USER =  "your_nce_api_user"
    API_NCE_PASS = "your_nce_password"
    API_NCE_HOST = "https://your_nce_hostip:26335"
    
    API_NSP_USER =  "your_nsp_api_user"
    API_NSP_PASS = "your_nsp_password"
    API_NSP_HOST = "https://your_nsp_host"
    
  5. Run an example script:

    python examples/huawei_nce.py
    

Usage

Here is an example of how to use the library:

from pynetcom import RestNCE

# Initialize connection to NCE
nce = RestNCE(API_NCE_HOST, API_NCE_USER, API_NCE_PASS)

# Get subnets from NCE
nce.send_request("/restconf/v2/data/huawei-nce-resource-inventory:subnets")
items = nce.get_data()
print(items)

For additional info see examples/ folder

License

This project is licensed under the MIT License - see the LICENSE file for details.

Warning

Library use nsp_token.txt and nce_token.txt to store tokens. Make sure that your have write permission to it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynetcom-0.1.3.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynetcom-0.1.3-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file pynetcom-0.1.3.tar.gz.

File metadata

  • Download URL: pynetcom-0.1.3.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for pynetcom-0.1.3.tar.gz
Algorithm Hash digest
SHA256 dc6e993229648373045075db43f3d407cf4682b15dd0ffc0e7a82bbb45cc652a
MD5 78455a6ae567cba7a9b057db803cc347
BLAKE2b-256 757b701ee3208f00841f0e7c1a9602f4f89f40ab7e340043e91e8b091f9eb5b8

See more details on using hashes here.

File details

Details for the file pynetcom-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pynetcom-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for pynetcom-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 92f2e6f99ae8a9ffcaa13746d1f6f7b141cdd3588750a51be2d63e6197e07a68
MD5 36c52c63479307fbab8009ede134f32f
BLAKE2b-256 db6147bc9faccce652b636eee802772f0c89aaf101307aaf3eb59596819140b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page