""" 华为设备接口配置模板 支持配置接口IP、状态、带宽、描述等操作 """ def configure_interface_ip(interface: str, ip_address: str, subnet_mask: str) -> str: """ 配置接口IP地址 Args: interface: 接口名称,如 GigabitEthernet0/0/1 ip_address: IP地址 subnet_mask: 子网掩码 Returns: 配置命令字符串 """ commands = [ "system-view", f"interface {interface}", f"ip address {ip_address} {subnet_mask}", "undo shutdown", "quit" ] return "\n".join(commands) def configure_interface_state(interface: str, state: str = "up") -> str: """ 配置接口状态 Args: interface: 接口名称,如 GigabitEthernet0/0/1 state: 接口状态,up或down Returns: 配置命令字符串 """ commands = [ "system-view", f"interface {interface}" ] if state.lower() == "up": commands.append("undo shutdown") elif state.lower() == "down": commands.append("shutdown") commands.append("quit") return "\n".join(commands) def configure_interface_description(interface: str, description: str) -> str: """ 配置接口描述 Args: interface: 接口名称,如 GigabitEthernet0/0/1 description: 接口描述 Returns: 配置命令字符串 """ commands = [ "system-view", f"interface {interface}", f"description {description}", "quit" ] return "\n".join(commands) def configure_interface_speed(interface: str, speed: str) -> str: """ 配置接口速率 Args: interface: 接口名称,如 GigabitEthernet0/0/1 speed: 速率,如10, 100, 1000, auto Returns: 配置命令字符串 """ commands = [ "system-view", f"interface {interface}", f"speed {speed}", "quit" ] return "\n".join(commands) def configure_interface_duplex(interface: str, duplex: str) -> str: """ 配置接口双工模式 Args: interface: 接口名称,如 GigabitEthernet0/0/1 duplex: 双工模式,full, half, auto Returns: 配置命令字符串 """ commands = [ "system-view", f"interface {interface}", f"duplex {duplex}", "quit" ] return "\n".join(commands) def show_interface(interface: str = None) -> str: """ 显示接口信息 Args: interface: 接口名称,如 GigabitEthernet0/0/1,为None时显示所有接口 Returns: 显示命令字符串 """ if interface: return f"display interface {interface}" else: return "display interface brief" def show_ip_interface(interface: str = None) -> str: """ 显示接口IP信息 Args: interface: 接口名称,如 GigabitEthernet0/0/1,为None时显示所有接口 Returns: 显示命令字符串 """ if interface: return f"display ip interface {interface}" else: return "display ip interface brief"