jmq_krill
Paquete de Integración Krill con Python
Descripción
jmq_krill es un cliente en Python para interactuar con la API de Krill realizado para aGIS TELCO, facilitando:
- Autenticación y gestión de tokens.
- Consultas de CPEs por topología.
- Obtención de información en tiempo real de un CPE.
- Recuperación del estado de ONUs en una OLT específica.
- Paginación automática de resultados de monitoring.
- Recuperación de estados parciales paginados.
Instalación
Instala el paquete desde PyPI:
pip install jmq_krill
O clona el repositorio y construye en modo editable:
git clone https://github.com/juaquicar/jmq_krill.git
cd jmq_krill
pip install -e .
Requisitos
- Python 3.6 o superior
- Dependencias definidas en
requirements.txt(actualmente solorequests)
Uso
from jmq_krill.krill_api import PyJMQKrill, APIError
client = PyJMQKrill(
host="https://api.tudominio.com",
username="usuario",
password="contraseña"
)
try:
# Autenticación
token = client.login()
print(f"Token obtenido: {token}")
# Ejemplo: obtener CPEs por topología
cpes = client.get_cpes_by_gen_equipos("topologia-uuid")
print(cpes)
# Ejemplo: información de un CPE específico
cpe_id = 238
info = client.get_cpe_info(cpe_id)
print(info)
# Ejemplo: estado de ONUs en una OLT
status = client.get_cpes_by_olt("olt-name", frame="0", slot="05", port="00")
print(status)
# Ejemplo: paginación de monitoring
all_cpes = client.get_cpes_monitoring()
print(f"Total CPEs: {len(all_cpes)}")
# Ejemplo: CPEs paginados:
print("Consultando via ITERACION parcial")
contador = 0
pagina = 0
for page in client.iter_cpes_monitoring_pages(limit=100, cpe_registration_host="oltCorral"):
print(f"Recibida página con {len(page)} CPEs")
contador += len(page)
pagina += 1
for cpe in page:
# Procesa la página en caliente, guarda en BD, sincroniza, etc.
print(cpe.get("name"))
print(f"Recibidos {contador} CPEs en total en {pagina} paginas.")
except APIError as e:
print("Error en API:", e)
Ejemplos
En el directorio Examples/ encontrarás archivos JSON con respuestas de la API para:
Example_get_cpe_info.jsonExample_get_cpes_by_gen_equipos.jsonExample_get_cpes_by_olt.jsonExample_get_cpes_monitoring.json
También hay un script de ejemplo en tests/Example.py.
Tests
Los tests unitarios están en tests/TestUnittest.py. Para ejecutarlos:
pytest tests
Estructura de proyecto
├── Examples
│ ├── Example_get_cpe_info.json
│ ├── Example_get_cpes_by_gen_equipos.json
│ ├── Example_get_cpes_by_olt.json
│ ├── Example_get_cpes_monitoring.json
│ ├── Example-Piloto.py
│ └── Example.py
├── jmq_krill
│ ├── __init__.py
│ ├── krill_api.py
│ └── __pycache__
├── LICENSE
├── MANIFEST.in
├── pyproject.toml
├── README.md
├── requirements.txt
├── tests
│ └── TestUnitest.py
Contribuyendo
- Haz un fork del repositorio.
- Crea una rama (
git checkout -b feature/nueva-funcionalidad). - Realiza tus cambios y añade tests.
- Abre un Pull Request describiendo tu propuesta.
Instalar proyecto en modo editable
pip3 install -e .
Licencia
Este proyecto está bajo la licencia MIT. Véase el archivo LICENSE para más detalles.
Enlaces
Metadata
Release files for jmq-krill 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jmq_krill-0.2.1.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jmq_krill-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.4 kB
Release files / jmq_krill-0.2.1.tar.gz
| Download URL | jmq_krill-0.2.1.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7fcab17bb6ab05114b50762caeeeb41398334c86b131cfbb71d92d03d89c7b3
|
|
BLAKE2b-256 checksum How to use checksums |
b624863100f3480a5f33c26c024de5f047771eab21da42dd9447e09bb0d20211
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / jmq_krill-0.2.1-py3-none-any.whl
| Download URL | jmq_krill-0.2.1-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b2816624cf869c2100b1948c2ad861ccea40abaf7a6feef214ff8e5817152d9
|
|
BLAKE2b-256 checksum How to use checksums |
73bae08730523f3e18fe05d71e55e01d177581c88a3d923c43c1ab8212954cb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|