smbios方法目录 - KPTest框架开放资料

Skip to content

# smbios方法目录

1. get_dmidecode
> 描述：

    1
    2
    3

    方法功能：

    命令格式：

> 参数：

    1
    2
    3

    code            (list): -t的参数，
    is_raise        (bool): 不能parse的是否raise
    is_hex          (bool): 是否获取16进制数据输出

> 返回值：

    1
    2

    result          (bool): 操作是否成功
    smbios_info     (dict): 命令返回值

> 异常：

    1

> 举例：

    1

2. get_dmi_mem_size
> 描述：

    1
    2
    3

    方法功能：

    命令格式：

> 参数：

    1

    code        (str): dmidecode -t的参数

> 返回值：

    1

    mem_size    (int): 内存大小，单位为MB

> 异常：

    1
    2

    KPTestException(f"SMBIOS不支持使用-t {code}获取内存信息")
    KPTestException(f"dmidecode -t {code_type}返回值中不含{key}")

> 举例：

    1

3. get_dmi_slot_bdf
> 描述：

    1
    2
    3

    方法功能：获取dmidecode -t统计的标卡的bdf号

    命令格式：dmidecode -t 9| grep -A7 "Current Usage: In Use" | grep "Bus Address"

> 参数：

    1

    None

> 返回值：

    1

    bdf_info_list   (list) : 查询到的标卡bdf号的信息回显

> 异常：

    1

    KPTestException("获取标卡的bdf号失败")

> 举例：

    1

    lspci_info = self.os_host.smbios.get_dmi_slot_bdf

4. get_dmi_eth_bdf
> 描述：

    1
    2
    3

    方法功能：获取dmidecode -t统计的板载网卡的bdf号

    命令格式：dmidecode -t 41| grep -A3 "Ethernet" | grep "Bus Address"

> 参数：

    1

    None

> 返回值：

    1

    bdf_info_list   (list) : 查询到的标卡bdf号的信息回显

> 异常：

    1

    KPTestException("获取板载卡的bdf号失败")

> 举例：

    1

    lspci_info = self.os_host.smbios.get_dmi_slot_bdf

5. is_dev_in_smbios
> 描述：

    1
    2
    3

    方法功能：

    命令格式：

> 参数：

    1
    2

    bus_num            (str) : 设备bdf
    dmi_list           (list): dmidecode 获取的列表

> 返回值：

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13

    found              (bool): 是否找到设备 True or False
    dev_type           (str) : 若找到返回所在类型，否则返回空
    dev_info           (dict): 详细的设备信息
    {
    'Status': 'Enabled',
    'Handle': '0x0023',
    'Type Instance': '1',
    'DMIType': '41',
    'Reference Designation': 'Embedded Raid Card',
    'DMISize': '11 bytes',
    'Type': 'SAS Controller',
    'Bus Address': '0000:1c:00.0'
    }

> 异常：

    1

    None

> 举例：

    1

6. get_dmi_processor_info
> 描述：

    1
    2
    3

    方法功能：

    命令格式：

> 参数：

    1

    cpu_blacklist   (set|list|tuple): 黑名单CPU版本

> 返回值：

    1
    2
    3
    4
    5

    cpu_info        (dict)          : CPU信息，包含如下信息
    cpu_version     (str): CPU版本
    cpu_num         (int): CPU数量
    core_num        (int): CPU总核心数
    cpu_thread      (int): CPU总线程数

> 异常：

    1

    KPTestException("dmidecode does not contain 'Processor Information'")

> 举例：

    1

7. check_dmi_type
> 描述：

    1
    2
    3

    方法功能：

    命令格式：

> 参数：

    1

> 返回值：

    1

    None

> 异常：

    1

    KPTestException(f"dmidecode type {index} {name} does not satisfy criterion [{re_match}]")

> 举例：

    1

8. get_dmi_core_count
> 描述：

    1
    2
    3

    方法功能：获取dmidecode -t processor中CPU数量和CPU核心数信息

    命令格式：dmidecode -t 4

> 参数：

    1

    field_name          (str) :要获取的字段名

> 返回值：

    1
    2
    3
    4
    5

    cpu_info            (dict): CPU信息，包含如下信息
    {
    dmi_cpu_num     (int): CPU数量
    dmi_core_count  (int): 每个CPU核心数
    }

> 异常：

    1

    KPTestException("dmidecode does not contain 'Processor Information'")

> 举例：

    1

    self.host.smbios.get_dmi_core_count()

9. cache_dmidecode
> 描述：

    1
    2
    3

    方法功能：

    命令格式：

> 参数：

    1

> 返回值：

    1
    2
    3
    4
    5
    6
    7

    ret_dict         (dict): 三级缓存cache值
    {
    l1_cache     (int): 一级缓存cache值
    l2_cache     (int): 二级缓存cache值
    l3_cache     (int): 三级缓存cache值
    info_cache   (str): cpu cache信息
    }

> 异常：

    1
    2

    raise KPTestException("dmidecode does not contain 'Cache Information'")
    raise KPTestException("获取cpu cache信息有误,dmidecode获取的当前信息为 L1 Cache:%s,L2 Cache:%s, L3 Cache:%s")

> 举例：

    1

    self.host.smbios.cache_dmidecode()