docstr: Run Terraform with an optional set of targets and clusters
  
  Args:
      options (argparse.Namespace): Parsed arguments from manage.py
      config (CLIConfig): Loaded StreamAlert config
  
  Returns:
      bool: False if errors occurred, True otherwise
docstr_tok: ["Run","Terraform","with","an","optional","set","of","targets","and","clusters","Args",":","options","(","argparse.Namespace",")",":","Parsed","arguments","from","manage.py","config","(","CLIConfig",")",":","Loaded","StreamAlert","config","Returns",":","bool",":","False","if","errors","occurred",",","True","otherwise"]
code: def handler(cls, options, config):
      """Run Terraform with an optional set of targets and clusters
  
      Args:
          options (argparse.Namespace): Parsed arguments from manage.py
          config (CLIConfig): Loaded StreamAlert config
  
      Returns:
          bool: False if errors occurred, True otherwise
      """
      if not terraform_generate_handler(config=config):
          return False
  
      # Will create log tables only when file_format set to "json" and return erlier if
      # log tables creation failed.
      # This capabity will be faded out in the future release.
      if get_data_file_format(
          config
      ) == "json" and not create_log_tables(config=config):
          return
  
      target_modules, valid = _get_valid_tf_targets(
          config, options.target
      )
      if not valid:
          return False
  
      return terraform_runner(
          config, targets=target_modules if target_modules else None
      )
  
imports: from fnmatch import fnmatch
  import json
  import os
  from streamalert.shared.config import firehose_alerts_bucket
  from streamalert.shared.logger import get_logger
  from streamalert.shared.utils import get_data_file_format
  from streamalert_cli.athena.handler import create_table, create_log_tables
  from streamalert_cli.helpers import check_credentials, continue_prompt, run_command
  from streamalert_cli.manage_lambda.deploy import deploy
  from streamalert_cli.terraform.generate import terraform_generate_handler
  from streamalert_cli.terraform.helpers import terraform_check, terraform_runner
  from streamalert_cli.utils import add_clusters_arg, CLICommand, set_parser_epilog, UniqueSortedListAction
label_desc: Use image node_id 2 for calling the TerraformBuildCommand obj's underlying member method code with example usage: obj.handler(cls, options, config) and returns: terraform_runner, False, False