docs: def execute(self, input_data):
          ''' Execute '''
  
          # Get the bro script path (workers/bro/__load__.bro)
          script_path = self.bro_script_dir
  
          # Create a temporary directory
          with self.goto_temp_directory() as temp_dir:
  
              # Get the pcap inputs (filenames)
              print 'pcap_bro: Setting up PCAP inputs...'
              filenames = self.setup_pcap_inputs(input_data)
              command_line = ['bro']
              for filename in filenames:
                  command_line += ['-C', '-r', filename]
              if script_path:
                  command_line.append(script_path)
  
              # Execute command line as a subprocess
              print 'pcap_bro: Executing subprocess...'
              self.subprocess_manager(command_line)
  
              # Scrape up all the output log files
              gsleep()
              print 'pcap_bro: Scraping output logs...'
              my_output = {}
              for output_log in glob.glob('*.log'):
  
                  # Store the output into workbench, put the name:md5 in my output
                  output_name = os.path.splitext(output_log)[0] + '_log'
                  with open(output_log, 'rb') as bro_file:
                      raw_bytes = bro_file.read()
                      my_output[output_name] = self.workbench.store_sample(raw_bytes, output_name, 'bro')
  
              # Scrape any extracted files
              gsleep()
              print 'pcap_bro: Scraping extracted files...'
              my_output['extracted_files'] = []
              for output_file in glob.glob('extract_files/*'):
  
                  # Store the output into workbench, put md5s in the 'extracted_files' field
                  output_name = os.path.basename(output_file)
                  with open(output_file, 'rb') as extracted_file:
                      if output_name.endswith('exe'):
                          type_tag = 'exe'
                      else:
                          type_tag = output_name[-3:]
                      raw_bytes = extracted_file.read()
                      my_output['extracted_files'].append(self.workbench.store_sample(raw_bytes, output_name, type_tag))
  
          # Construct back-pointers to the PCAPs
          if 'sample' in input_data:
              my_output['pcaps'] = [input_data['sample']['md5']]
          else:
              my_output['pcaps'] = input_data['sample_set']['md5_list']
  
          # Return my output
          return my_output