*** Settings *** Documentation Schneider Power Distribution Unit (PDU) library Library Telnet Library SSHLibrary Resource ../../lib/pdu/pdu.robot *** Keywords *** Login To Schneider PDU Via SSH [Documentation] Open PDU connection and login via SSH. Validate Prereq SSHLibrary.Open Connection ${PDU_IP} prompt=apc> ${connection_status}= Run Keyword And Return Status ... SSHLibrary.Login ${PDU_USERNAME} ${PDU_PASSWORD} Return From Keyword ${connection_status} Login To Schneider PDU Via Telnet [Documentation] Open PDU connection and login via telnet. Validate Prereq Telnet.Open Connection ${PDU_IP} Telnet.Write \n Telnet.Read Until User Name : Telnet.Write ${PDU_USERNAME} Telnet.Read Until Password${SPACE}${SPACE}: Telnet.Write ${PDU_PASSWORD} Set Prompt apc> Telnet.Read Until Prompt Telnet.Write ? Telnet.Read Until Prompt Power Cycle [Documentation] Perform PDU power cycle. # Sample output from schneider PDU console # Schneider Electric Network Management Card AOS v6.9.6 # (c) Copyright 2020 All Rights Reserved RPDU 2g APP v6.9.6 # ------------------------------------------------------------------------------- # Name : apc566BF4 Date : 07/07/2022 # Contact : Unknown Time : 01:18:18 # Location : Unknown User : Super User # Up Time : 0 Days 12 Hours 17 Minutes Stat : P+ N4+ N6+ A+ # ------------------------------------------------------------------------------- # IPv4 : Enabled IPv6 : Enabled # Ping Response : Enabled # ------------------------------------------------------------------------------- # HTTP : Disabled HTTPS : Enabled # FTP : Disabled Telnet : Disabled # SSH/SCP : Enabled SNMPv1 : Disabled # SNMPv3 : Disabled # ------------------------------------------------------------------------------- # Super User : Enabled RADIUS : Disabled # Administrator : Disabled Device User : Disabled # Read-Only User : Disabled Network-Only User : Disabled # Type ? for command listing # Use tcpip command for IP address(-i), subnet(-s), and gateway(-g) # apc>? # System Commands: # --------------------------------------------------------------------------- # For command help: command ? # ? about alarmcount boot bye cd # cipher clrrst console date delete dir # dns eapol email eventlog exit firewall # format ftp help lang lastrst ledblink # logzip netstat ntp ping portspeed prompt # pwd quit radius reboot resetToDef session # smtp snmp snmptrap snmpv3 system tcpip # tcpip6 user userdflt web whoami xferINI # xferStatus # Device Commands: # --------------------------------------------------------------------------- # alarmList bkLowLoad bkNearOver bkOverLoad bkReading bkPeakCurr # bkRestrictn devStartDly energyWise olAssignUsr olCancelCmd olDlyOff # olDlyOn olDlyReboot olGroups olName olOff olOffDelay # olOn olOnDelay olRbootTime olReboot olStatus olUnasgnUsr # phLowLoad phNearOver phOverLoad phReading phPeakCurr phRestrictn # prodInfo userAdd userDelete userList userPasswd # apc>olReboot 3,4,5,6,7,8 # E000: Success # Enter command olOn & verify success. ${connection_status}= Login To Schneider PDU Via SSH IF '${connection_status}' == '${False}' Set Suite Variable ${lib_name} Telnet Login To Schneider PDU Via Telnet ELSE Set Suite Variable ${lib_name} SSHLibrary END @{outlets}= Split String ${PDU_SLOT_NO} separator=, FOR ${outlet} IN @{outlets} Run Keyword ${lib_name}.Write olReboot ${outlet} ${output}= Run Keyword ${lib_name}.Read Until Prompt Should Contain ${output} Success msg=Device Command Failed END