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.11.0.tar.gz (342.9 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.11.0-py3-none-any.whl (382.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pypnm_docsis_cmts-0.3.11.0.tar.gz
  • Upload date:
  • Size: 342.9 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.11.0.tar.gz
Algorithm Hash digest
SHA256 ecd75bf6bbda418a4faff9b2f7c1d4d42c320e426085c377af30894f584abe1a
MD5 27f9ba2eaee407992b9c70e53007ded1
BLAKE2b-256 23f74ac5271b4998c2b0b7726ba438c2c74676fe08e9f01afd60cbaf00b1dcfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypnm_docsis_cmts-0.3.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef4046047db360fba3a475cd5585696f8730cf7bbf322c90ec83e4559b127f02
MD5 bb3a16aa813bf19c3ed2421124910c8f
BLAKE2b-256 71a4cab7322dace69bed7964bf28453dc95967c50823d500c81e0eb4369fab12

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