Skip to main content

jmq_krill

Paquete de Integración Krill con Python

PyPI version License

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 solo requests)

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.json
  • Example_get_cpes_by_gen_equipos.json
  • Example_get_cpes_by_olt.json
  • Example_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

  1. Haz un fork del repositorio.
  2. Crea una rama (git checkout -b feature/nueva-funcionalidad).
  3. Realiza tus cambios y añade tests.
  4. 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)

Source distribution for jmq-krill 0.2.1
File Size Uploaded
jmq_krill-0.2.1.tar.gz 6.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jmq-krill 0.2.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page