import logging
import threading
import common
from autotest_lib.site_utils.rpm_control_system import rpm_controller
from autotest_lib.site_utils.rpm_control_system import utils
# Format Appears as: [Date] [Time] - [Msg Level] - [Message]
LOGGING_FORMAT = '%(asctime)s - %(levelname)s - %(message)s'
def test_in_order_requests():
"""Simple integration testing."""
rpm = rpm_controller.WebPoweredRPMController(
'chromeos-rack8e-rpm1')
info_1 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack8e-hostbs1',
powerunit_hostname='chromeos-rack8e-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='')
info_2 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack8e-hostbs2',
powerunit_hostname='chromeos-rack8e-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='')
info_3 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack8e-hostbs3',
powerunit_hostname='chromeos-rack8e-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='')
rpm.queue_request(info_1, 'OFF')
rpm.queue_request(info_2, 'OFF')
rpm.queue_request(info_3, 'CYCLE')
def test_parrallel_webrequests():
"""Simple integration testing."""
rpm = rpm_controller.WebPoweredRPMController(
'chromeos-rack8e-rpm1')
info_1 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack8e-hostbs1',
powerunit_hostname='chromeos-rack8e-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='')
info_2 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack8e-hostbs2',
powerunit_hostname='chromeos-rack8e-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='')
threading.Thread(target=rpm.queue_request,
args=(info_1, 'OFF')).start()
threading.Thread(target=rpm.queue_request,
args=(info_2, 'ON')).start()
def test_parrallel_sshrequests():
"""Simple integration testing."""
rpm = rpm_controller.SentryRPMController('chromeos-rack8-rpm1')
info_1 = utils.PowerUnitInfo(
device_hostname='chromeos-rack8-hostbs1',
powerunit_hostname='chromeos-rack8-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='.A14')
info_2 = utils.PowerUnitInfo(
device_hostname='chromeos-rack8-hostbs2',
powerunit_hostname='chromeos-rack8-rpm1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='.A11')
threading.Thread(target=rpm.queue_request,
args=(info_1, 'CYCLE')).start()
threading.Thread(target=rpm.queue_request,
args=(info_2, 'CYCLE')).start()
# The following test are disabled as the
# outlets on the rpm are in actual use.
# rpm2 = SentryRPMController('chromeos2-row2-rack3-rpm1')
# threading.Thread(target=rpm2.queue_request,
# args=('chromeos2-row2-rack3-hostbs', 'ON')).start()
# threading.Thread(target=rpm2.queue_request,
# args=('chromeos2-row2-rack3-hostbs2', 'ON')).start()
# threading.Thread(target=rpm2.queue_request,
# args=('chromeos2-row1-rack7-hostbs1', 'ON')).start()
def test_in_order_poerequests():
"""Simple integration testing for poe controller."""
poe_controller = rpm_controller.CiscoPOEController(
'chromeos1-poe-switch1')
info_1 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack4-host1bs-servo',
powerunit_hostname='chromeos1-poe-switch1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='fa33')
info_2 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack4-host2bs-servo',
powerunit_hostname='chromeos1-poe-switch1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='fa34')
poe_controller.queue_request(info_1, 'OFF')
poe_controller.queue_request(info_1, 'ON')
poe_controller.queue_request(info_2, 'CYCLE')
def test_parrallel_poerequests():
"""Simple integration testing for poe controller."""
poe_controller = rpm_controller.CiscoPOEController(
'chromeos1-poe-switch1')
info_1 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack4-host1bs-servo',
powerunit_hostname='chromeos1-poe-switch1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='fa33')
info_2 = utils.PowerUnitInfo(
device_hostname='chromeos1-rack4-host2bs-servo',
powerunit_hostname='chromeos1-poe-switch1',
powerunit_type=utils.PowerUnitInfo.POWERUNIT_TYPES.RPM,
hydra_hostname=None,
outlet='fa34')
threading.Thread(target=poe_controller.queue_request,
args=(info_1, 'CYCLE')).start()
threading.Thread(target=poe_controller.queue_request,
args=(info_2, 'CYCLE')).start()
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG, format=LOGGING_FORMAT)
# The tests in this file are disabled since most of the ports are
# in actual use now. If you are going to run them, make sure
# to choose unused hosts/ports.
# test_in_order_requests()
# test_parrallel_webrequests()
# test_parrallel_sshrequests()
# test_in_order_poerequests()
# test_parrallel_poerequests()