diff options
-rwxr-xr-x | bin/removable_storage_watcher.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/bin/removable_storage_watcher.py b/bin/removable_storage_watcher.py index c13439e..42113e1 100755 --- a/bin/removable_storage_watcher.py +++ b/bin/removable_storage_watcher.py @@ -5,6 +5,7 @@ import collections import copy import dbus import logging +import os import sys import gi @@ -22,6 +23,7 @@ from checkbox_support.heuristics.udisks2 import is_memory_card # noqa: E402 from checkbox_support.parsers.udevadm import CARD_READER_RE # noqa: E402 from checkbox_support.parsers.udevadm import GENERIC_RE # noqa: E402 from checkbox_support.parsers.udevadm import FLASH_RE # noqa: E402 +from checkbox_support.scripts.zapper_proxy import ControlVersionDecider from checkbox_support.udev import get_interconnect_speed # noqa: E402 from checkbox_support.udev import get_udev_block_devices # noqa: E402 @@ -877,6 +879,8 @@ def main(): dest='logging_level', help="Enable debugging") parser.add_argument('--unmounted', action='store_true', help="Don't require drive being automounted") + parser.add_argument('--zapper-usb-address', type=str, + help="Zapper's USB switch address to use") parser.set_defaults(logging_level=logging.WARNING) args = parser.parse_args() @@ -910,7 +914,21 @@ def main(): args.action, args.device, args.minimum_speed, args.memorycard) # Run the actual listener and wait till it either times out of discovers # the appropriate media changes - print("\n\n{} NOW\n\n".format(args.action.upper()), flush=True) + if args.zapper_usb_address: + zapper_host = os.environ.get('ZAPPER_ADDRESS') + if not zapper_host: + raise SystemExit( + "ZAPPER_ADDRESS environment variable not found!") + zapper_control = ControlVersionDecider().decide(zapper_host) + usb_address = args.zapper_usb_address + if args.action == "insert": + logging.info("Calling zapper to connect the USB device") + zapper_control.usb_set_state(usb_address, 'dut') + elif args.action == "remove": + logging.info("Calling zapper to disconnect the USB device") + zapper_control.usb_set_state(usb_address, 'off') + else: + print("\n\n{} NOW\n\n".format(args.action.upper()), flush=True) try: return listener.check(args.timeout) except KeyboardInterrupt: |