社区为DNA中心SDK开发了Python CLI companion

dnacentercli的Python项目详细描述


用于Cisco DNA中心API的命令行接口。

dnacentercli是为使用DNA中心api而构建的CLI。在

安装

要安装dnacentercli,需要安装python和pip。 输入以下命令后:

$ pip install dnacentercli

该项目有几个依赖项:

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选项为布尔标志。在

{id10}$

漂亮的印花

要精确打印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和/或其附属公司。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置