OPS API示例
命令行事件订阅
result1_value, result2_description = ops.cli.subscribe(tag, pattern, enter=False, sync=True, async_skip=False, sync_wait=30)
参数说明
参数
参数说明
取值
tag
用于标识条件。
字符串形式,不区分大小写,长度范围是1~12,由字母、数字和下划线组成,以字母开头。tag不能为””、None、and、or以及andnot,不能包含\0。
pattern
指定匹配命令的正则表达式。
字符串形式,取值范围是1~128个字符,不能包含\0。
enter
指定匹配正则表达式的时间。
布尔型,取值如下:
- True:表示按回车键后立刻匹配正则表达式。
- False:表示命令中缩写的关键字以完整的形式进行匹配。
缺省值是False。
sync
指定命令行触发执行动作后,是否等待脚本执行结束。
布尔型,取值如下:
- True:表示等待。
- False:表示不等待。
缺省值是True。
async_skip
在sync取值为False时,指定是否跳过原有命令执行。
布尔型,取值如下:
- True:表示跳过。
- False:表示不跳过。
缺省值是False。
sync_wait
在sync取值为True时,指定命令行同步等待脚本执行的时间。
整数形式,取值范围是1~2147483647,单位是秒。缺省值是30秒。
路由变更事件订阅
result1_value, result2_description = ops.route.subscribe(tag, network, maskLen, minLen=None, maxLen=None, neLen=None, optype=all, protocol=all)
参数说明
参数
参数说明
取值
tag
用于标识条件。
字符串形式,不区分大小写,长度范围是1~12,由字母、数字和下划线组成,以字母开头。tag不能为””、None、and、or以及andnot,不能包含\0。
network
指定路由前缀。
点分十进制形式。
maskLen
指定掩码长度。
整数形式,取值范围是0~32。
minLen
指定掩码长度匹配范围的下限。
整数形式,必须大于等于maskLen的值。缺省值是None,表示掩码长度匹配范围的下限是0。
maxLen
指定掩码长度匹配范围的上限。
整数形式,必须大于等于minLen的值。缺省值是None,表示掩码长度匹配范围的上限是0。
neLen
指定不匹配的掩码长度。
整数形式,必须大于等于minLen的值,小于等于maxLen的值。缺省值是None,表示不匹配的掩码长度是0。
optype
指定路由事件变更类型。
枚举类型,取值如下:
- add:新增路由。
- delete:删除路由。
- modify:修改路由。
- all:全部变化。
缺省值是all。
protocol
指定路由协议属性。
字符串形式,缺省值为all,表示所有路由协议。
- direct:直连路由
- static:静态路由
- ospf:OSPF路由
- isis:IS-IS路由
- bgp:BGP路由
- rip:RIP路由
- unr:用户网络路由
打开命令行通道
result1_handle, result2_description = ops.cli.open()
第一个返回值:命令行句柄。None表示错误,其他值为命令行句柄。第二个返回值:失败原因(仅当第一个返回值为None时返回)。
使用说明
脚本中打开的命令行通道,用户级别为15。
脚本中打开命令行通道后,才能向设备下发执行命令。
一个脚本中只能创建一个命令行通道,再创建第二个命令行通道时,将返回失败。
每打开一个命令行通道,消耗一个VTY资源。通过display users命令可以看到该VTY资源被Assistant: Name占用。当设备上剩余的VTY资源少于等于3个时,打开命令行通道失败。因此,脚本中,创建命令行通道并执行完命令后,需要通过关闭命令行通道接口(ops.cli.close(fd))及时关闭命令行通道,节省VTY资源。
执行命令行命令和关闭命令行通道接口使用打开命令行通道接口的第一个返回值作为输入参数。因此使用打开命令行通道接口时,必须指定返回值
Original: https://www.cnblogs.com/darkchen/p/15411569.html
Author: 奔波的驱魔人
Title: 华为OPS,自定义命令,动态执行命令
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714607/
转载文章受原作者版权保护。转载请注明原作者出处!