Skip to main content

Paquete de Integración Krill con Python para aGIS

Project description

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

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

jmq_krill-0.2.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jmq_krill-0.2.1-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file jmq_krill-0.2.1.tar.gz.

File metadata

  • Download URL: jmq_krill-0.2.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jmq_krill-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b7fcab17bb6ab05114b50762caeeeb41398334c86b131cfbb71d92d03d89c7b3
MD5 a6500dceb8c3d123b79283f646f0ab04
BLAKE2b-256 b624863100f3480a5f33c26c024de5f047771eab21da42dd9447e09bb0d20211

See more details on using hashes here.

File details

Details for the file jmq_krill-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: jmq_krill-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jmq_krill-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3b2816624cf869c2100b1948c2ad861ccea40abaf7a6feef214ff8e5817152d9
MD5 cc16d059c6eb2bae748b0dd48790e5c7
BLAKE2b-256 73bae08730523f3e18fe05d71e55e01d177581c88a3d923c43c1ab8212954cb5

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