社区为DNA中心SDK开发了Python CLI companion
dnacentercli的Python项目详细描述
用于Cisco DNA中心API的命令行接口。
dnacentercli是为使用DNA中心api而构建的CLI。在
安装
要安装dnacentercli,需要安装python和pip。 输入以下命令后:
$ pip install dnacentercli
该项目有几个依赖项:
- click>;=7.0
- dnacentersdk>;=1.3.0.post2
Note:dnacentercli从python 3开始工作
什么是DNA中心?在
“A better way to control your network. Cisco DNA Center is the network management and command center for Cisco DNA, your intent-based network for the enterprise.”
有关更多信息,请访问DNA Center官方网站。在
使用
DNA中心CLI依赖并积极使用DNA Center SDK。 然而,它们在用法上有一些不同。在
API版本
Cisco DNA Center SDK包装了DNA中心API(版本:1.2.10和1.3.0), 使用version参数控制要使用的API版本。在
dnacenter CLI通过使用–DNA version或-v选项来分离版本。在
验证
dnacentersdk创建DNACenterAPI“连接对象”默认为从环境变量和配置值中提取。 同样的情况也发生在DNA中心CLI上。在
您可以使用--help请求帮助,并查看所选版本上可用的选项和命令列表:
^{pr2}$注意:
为了避免出现以下错误:
> HTTPSConnectionPool(host='128.107.71.199', port=443): Max retries exceeded with url: /dna/system/api/v1/auth/token (Caused by SSLError (SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)')))
包括verify选项并将其设置为False:--verify False
访问DNA中心API
您需要对访问其他DNA中心API(如客户端、网络或PnP)进行身份验证。在
您可以在前面的命令选项之后使用--help请求特定的API帮助,该选项将列出端点(作为命令):
$ dnacentercli -v '1.2.10' --base_url https://128.107.71.199:443 --verify False networks --help
进行API调用
每个DNA中心sdkapi调用参数都是DNA中心CLI选项。在
使用dnacentersdk进行以下调用
fromdnacentersdkimportDNACenterAPIapi=DNACenterAPI(username="devnetuser",password="Cisco123!",base_url="https://sandboxdnac2.cisco.com:443",version='1.2.10',verify=True)api.networks.get_overall_network_healt(timestamp='1568008500000',headers={'__runsync':True})
与
$ dnacentercli -v '1.2.10' --username devnetuser --password Cisco123! \ > --base_url https://sandboxdnac2.cisco.com:443 --verify True \ > networks get-overall-network-health \ > --timestamp "1568008500000" --headers '{"__runsync": true}'
注意:
对于JSON字符串,不同平台之间存在差异。在
在基于*nix的系统和命令行上,以下是有效的JSON字符串表示:
$ dnacentercli -v '1.2.10' networks get-overall-network-health \ --timestamp "1568008500000" --headers '{"__runsync": true}'
在Windows及其命令行上,以下是有效的JSON字符串表示:
dnacentercli -v '1.2.10' networks get-overall-network-health ^ --timestamp "1568008500000" --headers '{\"__runsync\": true}'
小心点。在
多个选项
在某些情况下,参数类型是一个列表。要记录所有值,必须多次提供参数。在
例如:
$ dnacentercli -v '1.2.10' devices add-device --ipaddress '10.20.10.1' --ipaddress '10.30.10.1'
贝尔
要在微调器完成(或API调用结束)时激活蜂鸣,请将--beep选项添加到API调用中。 如果present为on,否则为off,--beep选项为布尔标志。在
漂亮的印花
要精确打印JSON响应,请在API调用中添加选项-pp或--pretty_printINTEGER,其中整数是缩进。在
API调用的调试和JSON响应都流式传输到标准输出(stdout)。在
例如:
$ dnacentercli -v '1.2.10' devices get-device-list --family 'Unified AP' --hostname 'T1-9' -pp 2{"response": [{"apManagerInterfaceIp": "10.10.20.51", "associatedWlcIp": "10.10.20.51", "bootDateTime": null, "collectionInterval": "NA", "collectionStatus": "Managed", "errorCode": "null", "errorDescription": null, "family": "Unified AP", "hostname": "T1-9", ... "memorySize": "NA", "platformId": "AIR-AP1141N-A-K9", "reachabilityFailureReason": "NA", "reachabilityStatus": "Reachable", "role": "ACCESS", "roleSource": "AUTO", "serialNumber": "1140K0009", ... "snmpContact": "", "snmpLocation": "default-location", "softwareType": null, ... "tagCount": "0", "tunnelUdpPort": "16666", "type": "Cisco 1140 Unified Access Point", "upTime": "195days 11:11:32.270", "waasDeviceMode": null }], "version": "1.0"}
例外情况
所有dnacentersdk异常都流到标准错误(stderr)中。 在退出程序之前,它将打印回溯(限于1个元素)、异常名称及其描述。在
版权所有(c)2019 Cisco和/或其附属公司。
- 项目
标签: