Skip to main content

DOCSIS CMTS tools built on the PyPNM toolkit

Project description

PyPNM-CMTS Logo

PyPNM-CMTS - CMTS Operations Toolkit for PyPNM (Under Development)

Repo version PyPI version Python CI Ubuntu CI MacOS Ubuntu License: Apache-2.0

PyPNM-CMTS extends the PyPNM toolkit with CMTS-focused automation, validation, and operational workflows. It installs pypnm-docsis as the base library and adds CMTS capabilities on top.

Table of contents

Choose your path

Path Description
Use PyPNM-CMTS as a library Install pypnm-docsis-cmts into an existing Python environment.
Run the full repo Clone the repo and use the CLI + tools stack.

Getting started

Install from PyPI (library only)

If you only need the library, install from PyPI:

pip install pypnm-docsis-cmts

1) Clone

git clone https://github.com/PyPNMApps/PyPNM-CMTS.git
cd PyPNM-CMTS

2) Install

Run the installer:

./install.sh

Optional: use a custom venv directory:

./install.sh .env-dev

Optional: development install with extra tooling:

./install.sh --development

The development install attempts to install gitleaks using the system package manager, and falls back to a GitHub release download if the package is unavailable.

Optional: update from the latest GA or hot-fix tag:

./install.sh --update-ga
./install.sh --update-hot-fix

Optional: update pypnm-docsis in the active venv:

./install.sh --update-development-pypnm-docsis
./install.sh --update-development-pypnm-docsis v1.4.2.0

Without a tag, the installer upgrades to the latest prerelease. With a tag or version, it installs that exact pypnm-docsis release.

Cleanup and uninstall:

./install.sh --clean
./install.sh --uninstall

3) Activate the virtual environment

If you used the installer defaults, activate the .env environment:

source .env/bin/activate

4) Run the CLI

pypnm-cmts --version

5) Run the FastAPI service

pypnm-cmts serve

The service binds to 127.0.0.1:8080 by default and reads CMTS adapter settings from system.json. Use pypnm-cmts config-menu to set the CMTS hostname and SNMP communities, or pass --cmts-hostname/--read-community overrides at runtime.

For development-only debug routes under /ops/debug, start the service with:

pypnm-cmts serve --debug

To keep the service running after logout, launch it in the background:

pypnm-cmts serve --run-background

Optional explicit log and pidfile paths:

pypnm-cmts serve --run-background \
  --background-log-file /var/log/pypnm-cmts.log \
  --background-pidfile /var/run/pypnm-cmts.pid

Tested CMTS platforms

Vendor Model Status
Casa Systems C100G TBD
Cisco CBR8 TBD
CommScope RMD TBD
Harmonic CableOS Cloud-Native TBD

Documentation

  • Docs are being assembled; see docs/ as the starting point.
  • CLI examples

SNMP notes

  • SNMPv2c is supported
  • SNMPv3 is currently stubbed and not yet supported

CableLabs specifications & MIBs

License

Apache License 2.0 and NOTICE

Maintainer

Maurice Garcia

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

pypnm_docsis_cmts-0.3.14.0.tar.gz (351.5 kB view details)

Uploaded Source

Built Distribution

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

pypnm_docsis_cmts-0.3.14.0-py3-none-any.whl (391.9 kB view details)

Uploaded Python 3

File details

Details for the file pypnm_docsis_cmts-0.3.14.0.tar.gz.

File metadata

  • Download URL: pypnm_docsis_cmts-0.3.14.0.tar.gz
  • Upload date:
  • Size: 351.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pypnm_docsis_cmts-0.3.14.0.tar.gz
Algorithm Hash digest
SHA256 56a0fe6fa7162ce45cdbba4f614da980d0ce5245e0fa787e11dbe0ae7c57354a
MD5 6b1b697f40adf3d61d1c7afc60332c6c
BLAKE2b-256 3fc70f0d2bb253135dabca4eeace75a8c0a05de6d0d9108c304e9d22230fb749

See more details on using hashes here.

File details

Details for the file pypnm_docsis_cmts-0.3.14.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pypnm_docsis_cmts-0.3.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f96d1a4fe7fd366b6f3fcc01f573139d00aae0a1a1bba4e0f9fef1373b6ed32b
MD5 729f6b6c626cbcaa6ce25bde882105e6
BLAKE2b-256 3e9a5ee10a46c0c354fc8852c5bba6e975318ce85fa8988d1173d60fbf67affa

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