用于Cisco收发器模块组(TMG)兼容性矩阵的PythonAPI客户端库

pytmg的Python项目详细描述


pyTMG公司

Cisco的Transceiver Module Group (TMG) Compatibility Matrix的PythonAPI客户端库。

快速链接

安装

要安装此库,请执行以下命令:

pip install pytmg

入门

下面的指南通过python3解释器演示了这个库的基本用法。在本指南的末尾,显示了一个示例Python脚本,它演示了Python脚本上下文中的等效命令。

首先,从pyTMG导入并实例化“TMG”类。

^{pr2}$

这个库的大多数用例涉及搜索适用于特定Cisco产品的收发器信息。search_device()函数允许用户轻松完成此任务。在下面的示例中,我们将搜索与Cisco Nexus 93180YC-EX设备兼容的所有收发器,该设备的型号为“N9K-C93180YC-EX”。

>>> result = tmg.search_device("N9K-C93180YC-EX")
>>> type(result)
<class 'pytmg.TMGResult.TMGResult'>

此函数返回一个表示查询结果的TMGResult对象。中的TMGNetworkDevice对象列表中包含与查询匹配的网络设备模型TMGResult.network_设备属性。

>>> dir(result)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__','__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__','__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__','__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'network_devices', 'result', 'total_count']
>>> type(result.network_devices)
<class 'list'>
>>> print(result.network_devices)
[<pytmg.TMGNetworkDevice.TMGNetworkDevice object at 0x0000028311C6FDD8>]

每个TMGNetworkDevice对象表示有关所查询产品的一般信息,以及该特定产品支持的收发器。支持的收发器可通过“收发器”属性访问,该属性是TMGTransceiver对象的列表。下面的输出显示,在Nexus 93180YC-EX设备上支持217个收发器。

>>> device = result.network_devices[0]
>>> type(device)
<class 'pytmg.TMGNetworkDevice.TMGNetworkDevice'>
>>> dir(device)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__',
 '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'network_family_data_sheet', 'product_family', 'product_id', 'result', 'transceivers']
>>> print(device.network_family_data_sheet)
https://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/datasheet-c78-742282.html
>>> print(device.product_family)
N9300
>>> print(device.product_id)
N9K-C93180YC-EX
>>> type(device.transceivers)
<class 'list'>
>>> print(len(device.transceivers))
217

每个TMGTransceiver对象表示查询的产品支持的收发器。此外,每个对象都包含有关如何支持收发器的信息,例如必要的网络操作系统、最低软件版本和允许收发器按预期工作的物理属性(例如温度、范围等)。

>>> transceiver = device.transceivers[0]
>>> type(transceiver)
<class 'pytmg.TMGTransceiver.TMGTransceiver'>
>>> dir(transceiver)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__',
 '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_clean_aci_soft_release', '_clean_nxos_soft_release', '_clean_soft_release', 'breakout_mode', 'cable_type', 'clean_soft_release_min_ver', 'connector_type', 'data_rate', 'description', 'digital_diagnostic', 'dom_support', 'end_of_sale', 'form_factor', 'media', 'network_device_notes', 'network_model_id', 'note_count', 'os_type', 'product_family', 'product_family_id', 'product_id', 'product_model_id', 'reach', 'release_id', 'result', 'soft_release_dom', 'soft_release_min_ver', 'state', 'state_message', 'temperature_range', 'tmg_id', 'transceiver_business_unit', 'transceiver_model_data_sheet', 'transceiver_notes', 'transmission_standard', 'type', 'updated_by', 'updated_on', 'version', 'version_id']

以下输出显示,列表中的第一个支持收发器适用于Nexus 93180YC-EX设备以ACI模式部署的场景,并且从ACI软件11.3开始支持(2)

>>> print(transceiver.os_type)
ACI
>>> print(transceiver.soft_release_min_ver)
ACI-N9KDK9-11.3(2)

下面是演示这个库的基本用法的Python脚本。具体来说,此脚本标识NX-OS操作系统支持的所有40G收发器型号:

frompytmgimportTMGtmg=TMG.TMG()print("Searching for device...")result=tmg.search_device("N9K-C93180YC-EX")print("Device results returned!")fordeviceinresult.network_devices:print("Device model number: {}".format(device.product_id))print("List of supported transceivers: ")fortransceiverindevice.transceivers:iftransceiver.os_type=="NX-OS"andtransceiver.data_rate=="40 Gbps":print(" - {}".format(transceiver.product_id))

此脚本的输出如下:

Searching for device...
Device results returned!
Device model number: N9K-C93180YC-EX
List of supported transceivers:
 - QSFP-40G-SR4
 - QSFP-40G-SR4
 - QSFP-40G-CSR4
 - QSFP-40G-CSR4
 - QSFP-40G-SR4-S
 - QSFP-40G-SR4-S
 - FET-40G
 - FET-40G
 - QSFP-40G-SR-BD
 - QSFP-40G-SR-BD
 - QSFP-4X10G-LR-S
 - QSFP-40G-LR4-S
 - QSFP-40GE-LR4
 - QSFP-40G-LR4
 - QSFP-40G-ER4
 - WSP-Q40GLR4L
 - QSFP-4SFP10G-CU5M
 - QSFP-4SFP10G-CU3M
 - QSFP-4SFP10G-CU1M
 - QSFP-4X10G-AC7M
 - QSFP-4X10G-AC10M
 - QSFP-H40G-CU5M
 - QSFP-H40G-CU3M
 - QSFP-H40G-CU1M
 - QSFP-H40G-ACU7M
 - QSFP-H40G-ACU10M
 - QSFP-4X10G-AOC1M
 - QSFP-4X10G-AOC3M
 - QSFP-4X10G-AOC5M
 - QSFP-4X10G-AOC7M
 - QSFP-4X10G-AOC10M
 - QSFP-H40G-AOC1M
 - QSFP-H40G-AOC2M
 - QSFP-H40G-AOC3M
 - QSFP-H40G-AOC5M
 - QSFP-H40G-AOC7M
 - QSFP-H40G-AOC10M
 - QSFP-H40G-AOC15M
 - QSFP-H40G-AOC20M
 - QSFP-40G-BD-RX
 - QSFP-40G-BD-RX
 - QSFP-H40G-AOC25M
 - QSFP-H40G-AOC30M

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

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局