chore: initial baseline with P0-safety .gitignore
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
# 联软LV7000数据模型
|
||||
"""
|
||||
定义联软API返回数据的Pydantic模型。
|
||||
|
||||
核心模型:
|
||||
- TerminalBasicInfo:终端基本信息(queryDevByParams返回)
|
||||
- TerminalAllInfo:终端详细信息(getDevAllInfo返回,极详细)
|
||||
- UserInfo:用户信息(getUserInfoByAccount返回)
|
||||
- OrgInfo:组织架构信息(getAllOrgInfo返回)
|
||||
- OnlineStatus:终端在线状态(existOnlineUser返回)
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# 终端基本信息(queryDevByParams返回)
|
||||
# ==========================================================================
|
||||
|
||||
class TerminalBasicInfo(BaseModel):
|
||||
"""终端基本信息 — 最核心的映射数据源。
|
||||
|
||||
⭐ strusername + struserdes 字段直接提供员工账号→终端映射!
|
||||
这是联软相比火绒最大的优势。
|
||||
"""
|
||||
# 终端标识
|
||||
strdevname: str = Field(default="", description="计算机名")
|
||||
strdevip: str = Field(default="", description="IP地址")
|
||||
strmac: str = Field(default="", description="MAC地址")
|
||||
|
||||
# ⭐ 员工映射字段(核心价值)
|
||||
strusername: str = Field(default="", description="使用该终端的用户账号(映射金钥匙)")
|
||||
struserdes: str = Field(default="", description="用户姓名/描述")
|
||||
|
||||
# 组织信息
|
||||
strdeptname: str = Field(default="", description="所属部门名")
|
||||
|
||||
# 状态
|
||||
istatus: str = Field(default="", description="终端状态(1=在线/0=离线)")
|
||||
|
||||
# 网络
|
||||
strswitchname: str = Field(default="", description="接入交换机名")
|
||||
strifname: str = Field(default="", description="交换机接口名")
|
||||
|
||||
# 联系方式
|
||||
strmail: str = Field(default="", description="用户邮箱")
|
||||
strphone: str = Field(default="", description="用户电话")
|
||||
|
||||
# 其他
|
||||
strdomain: str = Field(default="", description="Windows域")
|
||||
strdevtype: str = Field(default="", description="设备类型")
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# 终端详细信息(getDevAllInfo返回)
|
||||
# ==========================================================================
|
||||
|
||||
class HardwareInfo(BaseModel):
|
||||
"""硬件组件信息"""
|
||||
name: str = Field(default="", description="名称")
|
||||
model: str = Field(default="", description="型号")
|
||||
vendor: str = Field(default="", description="厂商")
|
||||
capacity: str = Field(default="", description="容量")
|
||||
serial: str = Field(default="", description="序列号")
|
||||
|
||||
|
||||
class LogicalDiskInfo(BaseModel):
|
||||
"""逻辑磁盘信息(含使用率,判断磁盘满)"""
|
||||
name: str = Field(default="", description="卷标")
|
||||
file_system: str = Field(default="", description="文件系统")
|
||||
total_size: str = Field(default="", description="总量")
|
||||
free_space: str = Field(default="", description="可用空间")
|
||||
usage_percent: str = Field(default="", description="使用率")
|
||||
|
||||
|
||||
class NetworkCardInfo(BaseModel):
|
||||
"""网卡信息"""
|
||||
name: str = Field(default="", description="名称")
|
||||
is_wireless: str = Field(default="", description="是否无线")
|
||||
vendor: str = Field(default="", description="厂商")
|
||||
mac: str = Field(default="", description="MAC地址")
|
||||
|
||||
|
||||
class DisplayInfo(BaseModel):
|
||||
"""显示器信息(多屏配置排查)"""
|
||||
vendor: str = Field(default="", description="厂商")
|
||||
model: str = Field(default="", description="型号")
|
||||
serial: str = Field(default="", description="序列号")
|
||||
size: str = Field(default="", description="尺寸")
|
||||
|
||||
|
||||
class TerminalAllInfo(BaseModel):
|
||||
"""终端详细信息 — 极其详细,比火绒_info2更丰富。
|
||||
|
||||
包含:设备基础+硬件+软件+资产+网络配置。
|
||||
特别是逻辑磁盘使用率和显示器信息,是火绒没有的。
|
||||
"""
|
||||
# 设备基础
|
||||
strdevname: str = Field(default="", description="计算机名")
|
||||
strip1: str = Field(default="", description="IP地址")
|
||||
strmac: str = Field(default="", description="MAC地址")
|
||||
strnatip: str = Field(default="", description="NAT IP")
|
||||
macverdor: str = Field(default="", description="MAC厂商")
|
||||
strdevtype: str = Field(default="", description="设备类型")
|
||||
|
||||
# 组织+用户
|
||||
strdeptname: str = Field(default="", description="所属部门")
|
||||
strusername: str = Field(default="", description="用户账号⭐")
|
||||
struserdes: str = Field(default="", description="用户姓名⭐")
|
||||
|
||||
# 时间
|
||||
dtdevuptime: str = Field(default="", description="最近上线时间")
|
||||
dtdevdowntime: str = Field(default="", description="最近下线时间")
|
||||
dtdevfirstfoundtime: str = Field(default="", description="首次发现时间")
|
||||
|
||||
# 系统
|
||||
stros: str = Field(default="", description="操作系统")
|
||||
strdomain: str = Field(default="", description="Windows域")
|
||||
strserialnumber: str = Field(default="", description="序列号")
|
||||
strmainboardtype: str = Field(default="", description="主板型号")
|
||||
|
||||
# 客户端详情
|
||||
strverofuaagent: str = Field(default="", description="安全助手版本")
|
||||
istatus: str = Field(default="", description="在线状态")
|
||||
devassetno: str = Field(default="", description="设备资产号")
|
||||
devgroup: str = Field(default="", description="设备所属设备组")
|
||||
|
||||
# 硬件详情(列表)
|
||||
mainboard: list[HardwareInfo] = Field(default_factory=list, description="主板信息")
|
||||
cpu: list[HardwareInfo] = Field(default_factory=list, description="CPU信息")
|
||||
memory: list[HardwareInfo] = Field(default_factory=list, description="内存信息")
|
||||
hard_disk: list[HardwareInfo] = Field(default_factory=list, description="硬盘信息")
|
||||
logical_disk: list[LogicalDiskInfo] = Field(default_factory=list, description="逻辑磁盘")
|
||||
graphics_card: list[HardwareInfo] = Field(default_factory=list, description="显卡信息")
|
||||
network_card: list[NetworkCardInfo] = Field(default_factory=list, description="网卡信息")
|
||||
display: list[DisplayInfo] = Field(default_factory=list, description="显示器信息")
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# 用户信息(getUserInfoByAccount返回)
|
||||
# ==========================================================================
|
||||
|
||||
class UserInfo(BaseModel):
|
||||
"""用户信息"""
|
||||
deptid: str = Field(default="", description="部门ID")
|
||||
userid: str = Field(default="", description="用户ID")
|
||||
useraccount: str = Field(default="", description="用户账号")
|
||||
username: str = Field(default="", description="用户姓名")
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# 组织架构信息(getAllOrgInfo返回)
|
||||
# ==========================================================================
|
||||
|
||||
class OrgDeptInfo(BaseModel):
|
||||
"""部门信息"""
|
||||
deptid: str = Field(default="", description="部门ID")
|
||||
deptname: str = Field(default="", description="部门名称")
|
||||
parentid: str = Field(default="", description="父部门ID")
|
||||
users: list[UserInfo] = Field(default_factory=list, description="部门下用户列表")
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# 终端在线状态(existOnlineUser返回)
|
||||
# ==========================================================================
|
||||
|
||||
class OnlineStatus(BaseModel):
|
||||
"""终端在线状态"""
|
||||
username: str = Field(default="", description="用户名")
|
||||
ip: str = Field(default="", description="IP地址")
|
||||
is_online: bool = Field(default=False, description="是否在线")
|
||||
|
||||
|
||||
# ==========================================================================
|
||||
# 软件信息(querysoftwarebydev返回)
|
||||
# ==========================================================================
|
||||
|
||||
class SoftwareInfo(BaseModel):
|
||||
"""软件安装信息"""
|
||||
name: str = Field(default="", description="软件名称")
|
||||
version: str = Field(default="", description="版本")
|
||||
vendor: str = Field(default="", description="厂商")
|
||||
install_date: str = Field(default="", description="安装日期")
|
||||
|
||||
|
||||
class TerminalSoftwareInfo(BaseModel):
|
||||
"""终端安装软件信息"""
|
||||
strdevname: str = Field(default="", description="计算机名")
|
||||
strdevip: str = Field(default="", description="IP地址")
|
||||
strmac: str = Field(default="", description="MAC地址")
|
||||
strusername: str = Field(default="", description="用户账号")
|
||||
softwares: list[SoftwareInfo] = Field(default_factory=list, description="软件列表")
|
||||
Reference in New Issue
Block a user