1*** Settings *** 2Documentation Schneider Power Distribution Unit (PDU) library 3 4Library Telnet 5Library SSHLibrary 6Resource ../../lib/pdu/pdu.robot 7 8*** Keywords *** 9Login To Schneider PDU Via SSH 10 [Documentation] Open PDU connection and login via SSH. 11 12 Validate Prereq 13 SSHLibrary.Open Connection ${PDU_IP} prompt=apc> 14 ${connection_status}= Run Keyword And Return Status 15 ... SSHLibrary.Login ${PDU_USERNAME} ${PDU_PASSWORD} 16 Return From Keyword ${connection_status} 17 18 19Login To Schneider PDU Via Telnet 20 [Documentation] Open PDU connection and login via telnet. 21 22 Validate Prereq 23 Telnet.Open Connection ${PDU_IP} 24 25 Telnet.Write \n 26 Telnet.Read Until User Name : 27 Telnet.Write ${PDU_USERNAME} 28 29 Telnet.Read Until Password${SPACE}${SPACE}: 30 Telnet.Write ${PDU_PASSWORD} 31 32 Set Prompt apc> 33 Telnet.Read Until Prompt 34 Telnet.Write ? 35 Telnet.Read Until Prompt 36 37 38Power Cycle 39 [Documentation] Perform PDU power cycle. 40 41 # Sample output from schneider PDU console 42 43 # Schneider Electric Network Management Card AOS v6.9.6 44 # (c) Copyright 2020 All Rights Reserved RPDU 2g APP v6.9.6 45 # ------------------------------------------------------------------------------- 46 # Name : apc566BF4 Date : 07/07/2022 47 # Contact : Unknown Time : 01:18:18 48 # Location : Unknown User : Super User 49 # Up Time : 0 Days 12 Hours 17 Minutes Stat : P+ N4+ N6+ A+ 50 # ------------------------------------------------------------------------------- 51 # IPv4 : Enabled IPv6 : Enabled 52 # Ping Response : Enabled 53 # ------------------------------------------------------------------------------- 54 # HTTP : Disabled HTTPS : Enabled 55 # FTP : Disabled Telnet : Disabled 56 # SSH/SCP : Enabled SNMPv1 : Disabled 57 # SNMPv3 : Disabled 58 # ------------------------------------------------------------------------------- 59 # Super User : Enabled RADIUS : Disabled 60 # Administrator : Disabled Device User : Disabled 61 # Read-Only User : Disabled Network-Only User : Disabled 62 63 64 # Type ? for command listing 65 # Use tcpip command for IP address(-i), subnet(-s), and gateway(-g) 66 67 # apc>? 68 # System Commands: 69 # --------------------------------------------------------------------------- 70 # For command help: command ? 71 72 # ? about alarmcount boot bye cd 73 # cipher clrrst console date delete dir 74 # dns eapol email eventlog exit firewall 75 # format ftp help lang lastrst ledblink 76 # logzip netstat ntp ping portspeed prompt 77 # pwd quit radius reboot resetToDef session 78 # smtp snmp snmptrap snmpv3 system tcpip 79 # tcpip6 user userdflt web whoami xferINI 80 # xferStatus 81 82 # Device Commands: 83 # --------------------------------------------------------------------------- 84 # alarmList bkLowLoad bkNearOver bkOverLoad bkReading bkPeakCurr 85 # bkRestrictn devStartDly energyWise olAssignUsr olCancelCmd olDlyOff 86 # olDlyOn olDlyReboot olGroups olName olOff olOffDelay 87 # olOn olOnDelay olRbootTime olReboot olStatus olUnasgnUsr 88 # phLowLoad phNearOver phOverLoad phReading phPeakCurr phRestrictn 89 # prodInfo userAdd userDelete userList userPasswd 90 91 # apc>olReboot 3,4,5,6,7,8 92 # E000: Success 93 94 # Enter command olOn <Outlet number> & verify success. 95 96 ${connection_status}= Login To Schneider PDU Via SSH 97 98 IF '${connection_status}' == '${False}' 99 Set Suite Variable ${lib_name} Telnet 100 Login To Schneider PDU Via Telnet 101 ELSE 102 Set Suite Variable ${lib_name} SSHLibrary 103 END 104 105 @{outlets}= Split String ${PDU_SLOT_NO} separator=, 106 FOR ${outlet} IN @{outlets} 107 Run Keyword ${lib_name}.Write olReboot ${outlet} 108 ${output}= Run Keyword ${lib_name}.Read Until Prompt 109 Should Contain ${output} Success msg=Device Command Failed 110 END