所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

CloudEngine 8800, 7800, 6800, 5800 V200R003C00 配置指南-设备管理

本文档介绍了设备管理的配置,具体包括查看设备状态、硬件管理、信息中心配置、NTP配置、以太时钟同步配置、故障管理配置、节能管理、性能管理、维护助手配置和OPS配置。
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
OPS脚本制作及示例模板

OPS脚本制作及示例模板

目前,系统中集成了Python语言的运行环境,可以运行Python脚本。Python脚本中需要根据开放的RESTful API来定义向系统发送HTTP请求的方法。Python脚本运行时,通过向系统发送HTTP请求,来实现对系统的管理。

以下的Python示例模板以“获取设备启动信息”功能为例,介绍如何制作Python脚本,通过Python脚本发送HTTP请求来获取设备启动信息。
说明:
  • 当用户使用OPS功能时,需要用户熟悉Python语言并正确编写Python脚本。

  • 以下Python脚本仅为模板示例,用户可以根据实际需要进行修改。

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import traceback
import httplib
import string

# 定义调用RESTful API的类,该类中定义了一些方法来执行建立HTTP连接时的操作。该部分无需修改,用户可以直接使用。
# 该部分可以直接调用,用户不需要修改。
class OPSConnection(object):
    """Make an OPS connection instance."""

    # 初始化类,创建一个HTTP连接。
    def __init__(self, host, port = 80):
        self.host = host
        self.port = port
        self.headers = {
            "Content-type": "text/xml",
            "Accept":       "text/xml"
            }
        self.conn = None

    # 关闭HTTP连接。
    def close(self):
        """Close the connection"""
        self.conn.close()

    # 创建设备资源操作。
    def create(self, uri, req_data):
        """Create operation"""
        ret = self.rest_call("POST", uri, req_data)
        return ret

    # 删除设备资源操作。
    def delete(self, uri, req_data):
        """Delete operation"""
        ret = self.rest_call("DELETE", uri, req_data)
        return ret

    # 查询设备资源操作。
    def get(self, uri, req_data = None):
        """Get operation"""
        ret = self.rest_call("GET", uri, req_data)
        return ret

    # 修改设备资源操作。
    def set(self, uri, req_data):
        """Set operation"""
        ret = self.rest_call("PUT", uri, req_data)
        return ret

    # 类内部调用的方法。
    def rest_call(self, method, uri, req_data):
        """REST call"""
        print('|---------------------------------- request: ----------------------------------|')
        print('%s %s HTTP/1.1\n' % (method, uri))
        if req_data == None:
            body = ""
        else:
            body = req_data
            print(body)
        if self.conn:
            self.conn.close()
        self.conn = httplib.HTTPConnection(self.host, self.port)

        self.conn.request(method, uri, body, self.headers)
        response = self.conn.getresponse()
        response.status = httplib.OK    # stub code
        ret = (response.status, response.reason, response.read())
        print('|---------------------------------- response: ---------------------------------|')
        print('HTTP/1.1 %s %s\n\n%s' % ret)
        print('|------------------------------------------------------------------------------|')
        return ret

# 定义获取系统启动信息的函数。
def get_startup_info(ops_conn):

    # 指定系统启动信息的URI。URI为Resetful API中定义的管理对象,不同的管理对象有不同的URI。
    # 用户需要根据实际需求对URI进行修改,关于设备支持的URI可参考RESTful API。
    uri = "/cfg/startupInfos/startupInfo"

    # 指定发送的请求内容。该部分内容与URI相对应,不同的URI对应不同的请求内容。
    # 用户需要根据实际使用的URI对请求内容进行修改,关于请求内容的格式可参考RESTful API。
    req_data = \
'''<?xml version="1.0" encoding="UTF-8"?>
<startupInfo>
</startupInfo>
'''
    
    # 执行一个GET操作请求。uri和req_data为请求URI和请求内容。ret为请求是否成功的标识,rsp_data为请求执行后系统的响应数据,关于响应数据的格式可参考RESTful API。
    # 此处系统启动信息的响应数据类似于下面所示。用户可以通过解析响应数据来获取系统启动信息。
    '''
    <?xml version="1.0" encoding="UTF-8"?>
    <rpc-reply>
      <data>
        <cfg xmlns="http://www.huawei.com/netconf/vrp" format-version="1.0" content-version="1.0">
          <startupInfos>
            <startupInfo>
              <position>6</position>
              <nextStartupFile>flash:/vrpcfg.cfg</nextStartupFile>
              <configedSysSoft>flash:/system-software.cc</configedSysSoft>
              <curSysSoft>flash:/system-software.cc</curSysSoft>
              <nextSysSoft>flash:/system-software.cc</nextSysSoft>
              <curStartupFile>flash:/vrpcfg.cfg</curStartupFile>
              <curPatchFile>NULL</curPatchFile>
              <nextPatchFile>NULL</nextPatchFile>
            </startupInfo>
          </startupInfos>
        </cfg>
      </data>
    </rpc-reply>
    '''
    # 用户可以根据实际需求对请求类型get()进行修改,例如修改为set()或者create()。
    ret, _, rsp_data = ops_conn.get(uri, req_data)
    if ret != httplib.OK:
        return None

    return rsp_data

    # main()函数定义脚本运行时需要执行的操作,用户可根据实际需求进行修改。
def main():
    """The main function."""

    # host表示环路地址,目前RESTful API仅支持设备内部调用,即取值为“localhost”。
    host = "localhost"
    try:
        # 建立HTTP连接。
        ops_conn = OPSConnection(host)
        # 调用获取系统启动信息的函数。
        rsp_data = get_startup_info(ops_conn)
        # 关闭HTTP连接。
        ops_conn.close()
        return

    except:
        errinfo = traceback.format_exc()
        print(errinfo)
        return

if __name__ == "__main__":
    main()

翻译
下载文档
更新时间:2019-05-05

文档编号:EDOC1100004379

浏览量:8703

下载量:333

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页