Olá. Há pouco tempo, a Ericsson lançou o novo sistema de gerenciamento Ericsson Network Manager (
ENM ), que já apareceu em algumas operadoras de celular. Seria interessante analisar algumas perguntas sobre como trabalhar com ele e, neste artigo, abordaremos o problema de trabalhar com a Interface Northbound, que não foi encontrada anteriormente (no OSS-RC), a API RESTful. Usaremos python e a biblioteca de solicitações.
Funções como administração de usuários, importação / exportação em massa de CM, função de rede virtual, gerenciamento de coleções, gerenciamento de células e mais estão disponíveis através da interface REST. A documentação ALEX contém descrições bastante detalhadas dos recursos dessa API sem estar vinculada a uma linguagem de programação. Como exemplo, vamos tentar se conectar ao NBI Cell Management usando a biblioteca de solicitações para python. A descrição da interface está disponível na biblioteca ALEX “Tarefas de configuração - Interface REST do Northeast CM Cell Management”.
A funcionalidade especificada permite controlar a configuração das células, os vizinhos entre eles, os vizinhos de frequência nos nós LTE, WCDMA e GSM dentro de um ENM. Também é possível gerenciar transferências tanto para ENMs vizinhas quanto para OSS-RC.
A interface RESTful está disponível no seguinte endereço:
https: // <domínio-cliente> / tarefas-de-configuração / v1 / tarefas
A estrutura da solicitação JSON é:
- URL de solicitação: "configuration-tasks / v1 / tasks"
- Tipo de solicitação: POST
- Tipo de Conteúdo: application / json
- Órgão: de acordo com a documentação para a equipe selecionada.
Em python, use o objeto Session da biblioteca de solicitações.
import requests import json from requests.packages.urllib3.exceptions import InsecureRequestWarning from requests import Session from requests.exceptions import HTTPError class enmRestSession(Session):
Nós o ponderamos com a autorização ENM necessária e algumas "configurações padrão".
def __init__(self, enm, login, password): super().__init__()
Vamos criar um método para enviar uma solicitação REST.
Adicione o encerramento automático da sessão ao ENM ao usar o gerenciador de contexto.
def __exit__(self, exc_type, exc_val, exc_tb): try:
O pequeno suplemento resultante pode ser usado em scripts para suas necessidades. Por exemplo, recebendo todas as células de um nó RNC.
def main(): param = {"name": "readCells", "fdn": "NetworkElement=RNC01"} with enmRestSession( "https://iegtbl8030-7.gtoss.eng.ericsson.se/", "login", "pass" ) as s: print(s.send_configuration_task(param).json())
Todas as consultas possíveis são descritas na biblioteca ALEX acima. Acho que não posso publicá-lo em nenhum lugar, mas tentarei responder a algumas perguntas. O código completo está disponível no
GitHub . Obrigado a todos que leram.