在Python的ENM Ericsson中使用REST

你好 不久前,爱立信发布了新的爱立信网络管理器( ENM )管理系统,该系统已经出现在一些移动运营商中。 分析有关使用它的一些问题将很有趣,在本文中,我们将涉及使用Northbound Interface的问题,该问题以前(在OSS-RC中)没有遇到过,即RESTful API。 我们将使用python和请求库。

通过REST接口可以使用诸如用户管理,CM批量导入/导出,虚拟网络功能,集合管理,单元管理等功能。 ALEX文档包含对该API功能的相当详细的描述,而与编程语言无关。 例如,让我们尝试使用python请求库连接到NBI Cell Management。 接口说明在ALEX库“配置任务-CM单元管理REST北向接口”中可用。

通过指定的功能,您可以控制一个ENM中的节点LTE,WCDMA和GSM上小区的配置,它们之间的邻居,频率邻居。 还可以管理向相邻ENM和向OSS-RC的切换。
RESTful接口位于以下地址:

https:// <客户域> /配置任务/ v1 /任务

JSON请求的结构为:
  • 请求网址:“配置任务/ v1 /任务”
  • 请求类型:POST
  • 内容类型:application / json
  • 正文:根据所选团队的文档。

在python中,使用请求库中的Session对象。

import requests import json from requests.packages.urllib3.exceptions import InsecureRequestWarning from requests import Session from requests.exceptions import HTTPError class enmRestSession(Session): 

我们使用所需的ENM授权和一些“默认设置”对其进行加权。

  def __init__(self, enm, login, password): super().__init__() #  /        self.enm = enm if enm[-1] == "/" else f"{enm}/" #   self.headers.update({"Content-Type": "application/json"}) #   https  self.verify = False #    requests.packages.urllib3.disable_warnings(InsecureRequestWarning) #    ENM login_str = f"{enm}login?IDToken1={login}&IDToken2={password}" rest_response = self.post(login_str) #      if rest_response.status_code != requests.codes.ok: raise HTTPError() 

让我们做一个发送REST请求的方法。

  #        request_body def send_configuration_task(self, request_body): url = f"{self.enm}configuration-tasks/v1/tasks" #    POST    URL resp = self.post(url, data=json.dumps(request_body)) return resp 

使用上下文管理器时,将自动会话关闭添加到ENM。

  def __exit__(self, exc_type, exc_val, exc_tb): try: #      logout self.get(f"{self.enm}logout") finally: super().__exit__(self, exc_type, exc_val, exc_tb) 

生成的小型加载项可以根据需要用于脚本中。 例如,接收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()) 

上面的ALEX库中描述了所有可能的查询。 我认为我无法在任何地方发布它,但我会尝试回答一些问题。 完整代码可在GitHub上获得 。 感谢所有阅读的人。

Source: https://habr.com/ru/post/zh-CN465691/


All Articles