def _call(self, options, parsed_globals): if options.start_time: try: start_time_in_ms = utils.iso8601_to_epoch(options.start_time) except ValueError as e: raise ValueError('%s. You must pass a valid start time to ' ' --start-time' % e) else: start_time_in_ms = None if options.end_time: try: end_time_in_ms = utils.iso8601_to_epoch(options.end_time) except ValueError as e: raise ValueError('%s. You must pass a valid end time to ' ' --end-time' % e) else: end_time_in_ms = None log_stream_name = None # Verify the existence of log stream params = dict(logGroupName=options.log_group_name, limit=1, logStreamNamePrefix=options.log_stream_name) log_streams_response = self.logs.describe_log_streams(**params) if log_streams_response and log_streams_response.get('logStreams'): for log_stream in log_streams_response.get('logStreams'): if log_stream.get('logStreamName') == options.log_stream_name: log_stream_name = options.log_stream_name break if log_stream_name is None: # Raise exception so correct ret code is set raise ValueError('The specified log stream does not exist.') logger.debug('Going to start event puller...') threads = [] stop_flag = Event() queue = Queue.Queue(self.QUEUE_SIZE) puller = EventsPuller(stop_flag, queue, self.logs, options.log_group_name, options.log_stream_name, start_time_in_ms, end_time_in_ms, options.follow, int(options.pull_delay)) puller.start() threads.append(puller) logger.debug('Going to start event renderer...') renderer = EventsRenderer(stop_flag, queue, options.output_format) renderer.start() threads.append(renderer) self._wait_on_exit(stop_flag) for thread in threads: thread.join()
def _call(self, options, parsed_globals): if options.start_time: try: start_time_in_ms = utils.iso8601_to_epoch(options.start_time) except ValueError as e: raise ValueError('%s. You must pass a valid start time to ' ' --start-time' % e) else: start_time_in_ms = None if options.end_time: try: end_time_in_ms = utils.iso8601_to_epoch(options.end_time) except ValueError as e: raise ValueError('%s. You must pass a valid end time to ' ' --end-time' % e) else: end_time_in_ms = None interleaved = True if options.interleaved is not None and options.interleaved is True else False logger.debug('Going to start event puller...') threads = [] stop_flag = Event() queue = Queue.Queue(self.QUEUE_SIZE) puller = EventsPuller(stop_flag, queue, self.logs, options.log_group_name, options.log_stream_names, options.filter_pattern, start_time_in_ms, end_time_in_ms, interleaved) puller.start() threads.append(puller) logger.debug('Going to start event renderer...') renderer = EventsRenderer(stop_flag, queue, options.output_format) renderer.start() threads.append(renderer) self._wait_on_exit(stop_flag) for thread in threads: try: thread.join() except: pass