1# 2# Copyright (C) 2018 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the 'License'); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an 'AS IS' BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17import logging 18import time 19 20from host_controller.command_processor import base_command_processor 21 22 23class CommandSleep(base_command_processor.BaseCommandProcessor): 24 """Command processor for sleep command. 25 26 Attributes: 27 arg_parser: ConsoleArgumentParser object, argument parser. 28 command: string, command name which this processor will handle. 29 command_detail: string, detailed explanation for the command. 30 """ 31 32 command = "sleep" 33 command_detail = "Sleeps for N seconds." 34 35 # @Override 36 def SetUp(self): 37 """Initializes the parser for device command.""" 38 self.arg_parser.add_argument( 39 "seconds", 40 metavar="COMMAND", 41 nargs=1, 42 help=("an integer indicating the amount of time to sleep " 43 "in seconds")) 44 45 # @Override 46 def Run(self, arg_line): 47 """Blocks for a specified time interval.""" 48 args = self.arg_parser.ParseLine(arg_line) 49 try: 50 time.sleep(int(args.seconds[0])) 51 except ValueError as e: 52 logging.exception(e) 53 return False 54