一种定制IPMItool功能函数的方法

文档序号:9843935阅读:682来源:国知局
一种定制IPMItool功能函数的方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体地说是一种实用性强、定制IPMltool功能函数的方法。
【背景技术】
[0002]IPMKIntelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用IPMI监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI最大的优势在于它是独立于CPU B1S和OS的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。IPMltool是一种可用在Iinux系统下的命令行方式的IPMI平台管理工具,支持最新的IPMI 2.0规范,通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。
[0003]IPMltool程序大概的工作流程如附图1所示。首先输入IPMltool的相关参数及命令的字符串,程序将解析该字符串,将该字符串分解成接口的配置参数和命令子串,接下来使用接口配置参数配置接口,并找到与命令子串中第一个字符串对应的命令,在该命令中继续解析命令子字符串中的剩余的字符串,最后执行与剩余字符串对应的命后退出。
[0004]IPMltool编译完成后,为一个可执行程序,一次执行一个命令,执行完毕后就退出,并将结果信息显示在屏幕终端。对于某些应用来说,需要IPMItool生成实现用户所需功能的函数库,这些功能函数可被工程中上一层的接口调用,上层接口获取IPMltool的执行结果,将结果以用户希望的格式显示在终端上,对于这些应用来说使用原来的IPMltool工具就受到了局限。
[0005 ]基于此,现提供一种定制I PM 11 ο ο I功能函数的方法。

【发明内容】

[0006]本发明的技术任务是针对以上不足之处,提供一种实用性强、定制IPMltool功能函数的方法。
[0007]—种定制IPMI tool功能函数的方法,其具体实现过程为:根据用户需求的信息,创建定制函数,生成用户所需功能的函数库,上层接口调用函数库中的函数获取IPMI too I的执行结果,并将结果以用户希望的格式显示在终端上。
[0008]所述定制函数的函数名为能描述其功能的名字,函数入口参数为配置接口所需的参数;函数体为配置相关接口的语句与定制的功能函数;函数返回值为:执行成功返回0,失败返回-1。
[0009]所述定制函数的创建过程为:
首先根据用户所需求的信息,将用户定制的功能分成相对独立的模块,对某一模块创建保存相应用户信息的数据结构;
然后,根据每个模块实现的功能在IPMltool源码包中分别找到最底层的功能函数,将这些功能函数进行如下方面的改造:第一在功能函数内部,找出用户需要的信息;第二将这些信息保存在上述数据结构中;
接着将这些功能函数封装在定制函数内部,最后将这些定制函数生成可供用户调用的函数库;
上层接口通过调用定制函数实现模块功能,进而获取用户所需的信息。
[0010]所述用户需求的信息包括设备信息、机箱状态信息、机箱开关机控制信息、传感器门限信息及传感器读数信息;
相对应的,用户定制的功能分成设备信息模块、机箱状态模块、机箱开关机控制模块、传感器信息模块四个独立的部分;
对应创建的数据结构则包括可获取设备信息的数据结构模块、可获取机箱状态的数据结构模块、可获取机箱开关机控制信息的数据结构模块、可获取传感器信息的数据结构模块。
[0011 ]本发明的一种定制IPMItool功能函数的方法,具有以下优点:
本发明提供的一种定制IPMltool功能函数的方法,使得当功能函数被工程中上一层的接口调用时,上层接口获取IPMltool的执行结果,将结果以用户希望的格式显示在终端上,扩展了 IPMI too I工具的使用范围,实用性强,具有广阔的应用场景。
【附图说明】
[0012]附图1为IPMI too I工具的程序执行流程图。
[0013]附图2为单个定制函数的执行流程图。
[0014]附图3为调用函数库中某一定制函数的执行流程图。
【具体实施方式】
[0015]下面结合附图和具体实施例对本发明作进一步说明。
[0016]本发明的一种定制IPMltool功能函数的方法,其具体实现过程为:根据用户需求的信息,创建定制函数,生成用户所需功能的函数库,上层接口调用函数库中的函数获取IPMltool的执行结果,并将结果以用户希望的格式显示在终端上。
[0017]所述定制函数的函数名为能描述其功能的名字,函数入口参数为配置接口所需的参数;函数体为配置相关接口的语句与定制的功能函数;函数返回值为:执行成功返回0,失败返回-1。
[0018]所述定制函数的创建过程为:
首先根据用户所需求的信息,将用户定制的功能分成相对独立的模块,对某一模块创建保存相应用户信息的数据结构;
然后,根据每个模块实现的功能在IPMltool源码包中分别找到最底层的功能函数,将这些功能函数进行如下方面的改造:第一在功能函数内部,找出用户需要的信息;第二将这些信息保存在上述数据结构中;
接着将这些功能函数封装在定制函数内部,最后将这些定制函数生成可供用户调用的函数库;
上层接口通过调用定制函数实现模块功能,进而获取用户所需的信息。
[0019]所述用户需求的信息包括设备信息、机箱状态信息、机箱开关机控制信息、传感器门限信息及传感器读数信息;
相对应的,用户定制的功能分成设备信息模块、机箱状态模块、机箱开关机控制模块、传感器信息模块四个独立的部分;
对应创建的数据结构则包括可获取设备信息的数据结构模块、可获取机箱状态的数据结构模块、可获取机箱开关机控制信息的数据结构模块、可获取传感器信息的数据结构模块。
[0020]本方法可以定制IPMltool函数的功能,生成实现用户所需功能的函数库,这些功能函数可被工程中上一层的接口调用,上层接口获取IPMltool的执行结果,将结果以用户希望的格式显示在终端上。
[0021 ] 实施例:
首先根据用户需求的信息,包括以下几类:1PM Device类中的Get Device ID;ChassisDevice类中的Get Chassis Status,Chassis Control; Sensor Device类中的Get SensorThreshold,Get Sensor Reading,上述英文分别对应获取设备信息;获取机箱状态,机箱开关机控制;获取传感器门限,获取传感器读数。
[0022]根据以上需求信息,将实现获取需求信息的功能分成4个独立的模块:
模块1:获取设备信息get device id;
模块2:获取chassis 状态get chassis status;
模块 3:控制chassis 开关机chassis power control ;
模块4:获取sensor的状态信息get sensor Iist0
[0023]相应的为保存各个独立模块的信息,对每一个模块创建对应的数据结构,数据结构包括:
数据结构模块1:获取设备信息get device id模块;
数据结构模块2:获取chassis状态get chassis status模块;
数据结构模块3:控制chassis开关机chassis power control模块;
数据结构模块4:获取sensor的状态信息get sensor list模块。
[0024]然后,根据每个模块实现的功能在IPMItool源码包中找到最底层的功能函数,最底层的功能函数如下:
模块1:获取设备信息(get device id)的最底层函数是: intipmi_mc_get_deviceid(structipmi_intf * intf)
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1