我的python脚本如下:
#!/usr/bin/env python3
# coding: utf-8
import warnings,json,re
from ncclient import manager
warnings.simplefilter("ignore", DeprecationWarning)
def netconf_connect(jsonstr):
def my_unknown_host_cb(host, figerprint):
return True
account = jsonstr['account']
host = account['ip']
port = account['port']
user = account['userName']
password = account['password']
device = account['name']
timeout = 300
return manager.connect(host=host, port=port, username=user,password=password, unknown_host_cb=my_unknown_host_cb, allow_agent=False, look_for_keys=False,device_params={'name': device}, manager_params={'timeout': timeout})
def queryRule(jsonstr):
xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
<SrcZoneList>
<SrcZoneItem/>
</SrcZoneList>
<DestZoneList>
<DestZoneItem/>
</DestZoneList>
<SrcAddrList>
<SrcAddrItem/>
</SrcAddrList>
<DestAddrList>
<DestAddrItem/>
</DestAddrList>
<ServObjList>
<ServObjItem/>
</ServObjList>
<Enable/>
<Log/>
<Counting/>
<SessAgingTimeSw/>
<SessPersistAgingTimeSw/>
<AllRulesCount/>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""
with netconf_connect(jsonstr) as m:
print(m.get(('subtree', xml)))
if __name__ == '__main__':
func = 'queryRule'
jsOninfo='''{"account":{"password":"xxxx","port":xxx,"ip":"x.x.x.x","name":"h3c","userName":"xxxx"}}'''
jsOninfo= re.sub('\"{',"{",jsoninfo)
jsOninfo= re.sub('}\"',"}",jsoninfo)
jsOninfo= re.sub(r'\\','',jsoninfo)
jsOnstr= json.loads(jsoninfo)
if func == 'queryRule':
queryRule(jsonstr)
我的报错截图如下
奇怪的是,这个脚本今天之前一直都可以使用
1. 当我修改xml变量的内容时:
xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""
是可以正常返回结果的
2. 我又修改xml内容
xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"4.单独查询DestZoneList也是没有问题的
xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
<DestZoneList>
<DestZoneItem/>
</DestZoneList>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""
请问这是什么情况
无
(0)
难道安全策略有中文字符?你这个就超纲了,建议联系400
(0)
400会受理这种二次开发的问题吗
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
400会受理这种二次开发的问题吗