Paquete de Integración Krill con Python para aGIS
Project description
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):
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jmq_krill-0.2.0.tar.gz.
File metadata
- Download URL: jmq_krill-0.2.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9051ea00ae5a6e33c0b36a3c07e2d22b7b16b9f1b43b353fc3392d3a39a3859e
|
|
| MD5 |
cd248d19ce8dae5483a4da278c961cd4
|
|
| BLAKE2b-256 |
d18d93e557a9a14ecbfe33f91c46690fae9ad99d1ab120c9acdab162d5262fed
|
File details
Details for the file jmq_krill-0.2.0-py3-none-any.whl.
File metadata
- Download URL: jmq_krill-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46ca298dab2e079d227355407c90385a5fc24e504f9fb0e1958007ba3a86cda1
|
|
| MD5 |
70fc7f79135c4996d87feb33433def5c
|
|
| BLAKE2b-256 |
d85fbf809f3459d6fea2b4f88e353876e721cd95b7e1ef3d693e8d2b454958df
|