1import logging 2import threading 3 4import common 5 6from autotest_lib.site_utils.rpm_control_system import rpm_controller 7from autotest_lib.site_utils.rpm_control_system import utils 8 9 10# Format Appears as: [Date] [Time] - [Msg Level] - [Message] 11LOGGING_FORMAT = '%(asctime)s - %(levelname)s - %(message)s' 12 13 14def test_in_order_requests(): 15 """Simple integration testing.""" 16 rpm = rpm_controller.WebPoweredRPMController( 17 'chromeos-rack8e-rpm1') 18 info_1 = utils.PowerUnitInfo( 19 device_hostname='chromeos1-rack8e-hostbs1', 20 powerunit_hostname='chromeos-rack8e-rpm1', 21 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 22 hydra_hostname=None, 23 outlet='') 24 info_2 = utils.PowerUnitInfo( 25 device_hostname='chromeos1-rack8e-hostbs2', 26 powerunit_hostname='chromeos-rack8e-rpm1', 27 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 28 hydra_hostname=None, 29 outlet='') 30 info_3 = utils.PowerUnitInfo( 31 device_hostname='chromeos1-rack8e-hostbs3', 32 powerunit_hostname='chromeos-rack8e-rpm1', 33 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 34 hydra_hostname=None, 35 outlet='') 36 rpm.queue_request(info_1, 'OFF') 37 rpm.queue_request(info_2, 'OFF') 38 rpm.queue_request(info_3, 'CYCLE') 39 40 41def test_parrallel_webrequests(): 42 """Simple integration testing.""" 43 rpm = rpm_controller.WebPoweredRPMController( 44 'chromeos-rack8e-rpm1') 45 info_1 = utils.PowerUnitInfo( 46 device_hostname='chromeos1-rack8e-hostbs1', 47 powerunit_hostname='chromeos-rack8e-rpm1', 48 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 49 hydra_hostname=None, 50 outlet='') 51 info_2 = utils.PowerUnitInfo( 52 device_hostname='chromeos1-rack8e-hostbs2', 53 powerunit_hostname='chromeos-rack8e-rpm1', 54 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 55 hydra_hostname=None, 56 outlet='') 57 threading.Thread(target=rpm.queue_request, 58 args=(info_1, 'OFF')).start() 59 threading.Thread(target=rpm.queue_request, 60 args=(info_2, 'ON')).start() 61 62 63def test_parrallel_sshrequests(): 64 """Simple integration testing.""" 65 rpm = rpm_controller.SentryRPMController('chromeos-rack8-rpm1') 66 info_1 = utils.PowerUnitInfo( 67 device_hostname='chromeos-rack8-hostbs1', 68 powerunit_hostname='chromeos-rack8-rpm1', 69 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 70 hydra_hostname=None, 71 outlet='.A14') 72 info_2 = utils.PowerUnitInfo( 73 device_hostname='chromeos-rack8-hostbs2', 74 powerunit_hostname='chromeos-rack8-rpm1', 75 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 76 hydra_hostname=None, 77 outlet='.A11') 78 threading.Thread(target=rpm.queue_request, 79 args=(info_1, 'CYCLE')).start() 80 threading.Thread(target=rpm.queue_request, 81 args=(info_2, 'CYCLE')).start() 82 83 # The following test are disabled as the 84 # outlets on the rpm are in actual use. 85 # rpm2 = SentryRPMController('chromeos2-row2-rack3-rpm1') 86 # threading.Thread(target=rpm2.queue_request, 87 # args=('chromeos2-row2-rack3-hostbs', 'ON')).start() 88 # threading.Thread(target=rpm2.queue_request, 89 # args=('chromeos2-row2-rack3-hostbs2', 'ON')).start() 90 # threading.Thread(target=rpm2.queue_request, 91 # args=('chromeos2-row1-rack7-hostbs1', 'ON')).start() 92 93 94def test_in_order_poerequests(): 95 """Simple integration testing for poe controller.""" 96 poe_controller = rpm_controller.CiscoPOEController( 97 'chromeos1-poe-switch1') 98 info_1 = utils.PowerUnitInfo( 99 device_hostname='chromeos1-rack4-host1bs-servo', 100 powerunit_hostname='chromeos1-poe-switch1', 101 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 102 hydra_hostname=None, 103 outlet='fa33') 104 info_2 = utils.PowerUnitInfo( 105 device_hostname='chromeos1-rack4-host2bs-servo', 106 powerunit_hostname='chromeos1-poe-switch1', 107 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 108 hydra_hostname=None, 109 outlet='fa34') 110 poe_controller.queue_request(info_1, 'OFF') 111 poe_controller.queue_request(info_1, 'ON') 112 poe_controller.queue_request(info_2, 'CYCLE') 113 114 115def test_parrallel_poerequests(): 116 """Simple integration testing for poe controller.""" 117 poe_controller = rpm_controller.CiscoPOEController( 118 'chromeos1-poe-switch1') 119 info_1 = utils.PowerUnitInfo( 120 device_hostname='chromeos1-rack4-host1bs-servo', 121 powerunit_hostname='chromeos1-poe-switch1', 122 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 123 hydra_hostname=None, 124 outlet='fa33') 125 info_2 = utils.PowerUnitInfo( 126 device_hostname='chromeos1-rack4-host2bs-servo', 127 powerunit_hostname='chromeos1-poe-switch1', 128 powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM, 129 hydra_hostname=None, 130 outlet='fa34') 131 threading.Thread(target=poe_controller.queue_request, 132 args=(info_1, 'CYCLE')).start() 133 threading.Thread(target=poe_controller.queue_request, 134 args=(info_2, 'CYCLE')).start() 135 136 137if __name__ == '__main__': 138 logging.basicConfig(level=logging.DEBUG, format=LOGGING_FORMAT) 139# The tests in this file are disabled since most of the ports are 140# in actual use now. If you are going to run them, make sure 141# to choose unused hosts/ports. 142# test_in_order_requests() 143# test_parrallel_webrequests() 144# test_parrallel_sshrequests() 145# test_in_order_poerequests() 146# test_parrallel_poerequests() 147