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.13.0.tar.gz (349.4 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.13.0-py3-none-any.whl (388.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pypnm_docsis_cmts-0.3.13.0.tar.gz
  • Upload date:
  • Size: 349.4 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.13.0.tar.gz
Algorithm Hash digest
SHA256 1b8ef1af11fc22d4ff7d7bf49a32dd6a798c5a8eb4bbc6e1764a684167125cfd
MD5 66fa32d517febe7f94b267159254df5c
BLAKE2b-256 0eebab5db25ad0c9f5d7ce007aa6c6940aae8669632f276e7b14d3d8e7f02e7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypnm_docsis_cmts-0.3.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd7032d011d716138574c4435d7719b48285adba1695ad8db7b29ab63d27bf41
MD5 942ba1a9d6cb4c778ed30989088dc50b
BLAKE2b-256 ddfa0b571825b3952a00fc13baf1e31fedc82b3566c582bc4851ed97f5bb5250

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