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.

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.12.0.tar.gz (344.7 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.12.0-py3-none-any.whl (383.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pypnm_docsis_cmts-0.3.12.0.tar.gz
Algorithm Hash digest
SHA256 53d39061487c9ca51ed62a630459450f64ba0308dc45652b1501f849f8848615
MD5 50c9ab500503800c71323743e48b16a4
BLAKE2b-256 2b46cd9f2a34b7d78768f2299514b416878ca6e67841572567730125535562ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypnm_docsis_cmts-0.3.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c0c61326289e7670b96f33254e3e484a8bbfb2dcf27dda6d2a0a0d36c540917
MD5 5d883bf36cc0dfacf45f3d3f573bc285
BLAKE2b-256 6ba14cac4e0d13bc74e177ebf1f4e418b5259e995bd0c3f077271ab7a8d00ad2

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