使用zeep调用SolarWinds N-central添加客户报5000 Query failed求助
错误原因
T_KeyPair类型的实例仅能存储一组键值对,初始化只能传入2个参数(键、值),你传入3个参数自然会触发参数数量不匹配的报错。- 接口要求
Settings参数接收的是键值对对象组成的列表,你之前仅传入了单个T_KeyPair实例,未封装为列表。 - 你使用的键名
customer_name不符合官方要求,且缺少必填参数parentid,这是触发5000 Query failed报错的核心原因。
正确代码示例
def addcustomer(request): client = Client('http://server-name.com/dms/services/ServerEI?wsdl') settings_type = client.get_type('ns0:T_KeyPair') # 每个配置项单独创建T_KeyPair实例 customer_name = settings_type('customername', '你的客户名称') parent_id = settings_type('parentid', '上级组织的ID') # 可选参数按需添加,示例加邮编 postal_code = settings_type('zip/postalcode', '100000') # 把所有键值对实例放入列表 settings_list = [customer_name, parent_id, postal_code] # 调用接口时传入列表作为Settings参数 response = client.service.CustomerAdd(Username=USER, Password=PASS, Settings=settings_list) return render(request, 'ncentral/addcustomer.html', locals())
补充说明
- 必须填写官方标注的两个必填项:
customername(客户名称)、parentid(上级ID) - 其余可选参数按照上述格式,创建对应的
T_KeyPair实例后加入settings_list即可 - 国家代码参数需要传入两位ISO 3166-1 alpha-2标准的国家编码,例如中国传入
CN、美国传入US - 许可证类型参数
licensetype可选值为Professional或Essential,不传默认使用Essential
内容的提问来源于stack exchange,提问作者Ankit Arora
相关产品推荐
相关产品推荐

