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):
        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.0.tar.gz (6.5 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.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

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

Hashes for jmq_krill-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9051ea00ae5a6e33c0b36a3c07e2d22b7b16b9f1b43b353fc3392d3a39a3859e
MD5 cd248d19ce8dae5483a4da278c961cd4
BLAKE2b-256 d18d93e557a9a14ecbfe33f91c46690fae9ad99d1ab120c9acdab162d5262fed

See more details on using hashes here.

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

Hashes for jmq_krill-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46ca298dab2e079d227355407c90385a5fc24e504f9fb0e1958007ba3a86cda1
MD5 70fc7f79135c4996d87feb33433def5c
BLAKE2b-256 d85fbf809f3459d6fea2b4f88e353876e721cd95b7e1ef3d693e8d2b454958df

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