webhook2lambda2sqs.terraform_runner module¶
-
class
webhook2lambda2sqs.terraform_runner.
TerraformRunner
(config, tf_path)[source]¶ Bases:
object
-
_args_for_remote
()[source]¶ Generate arguments for ‘terraform remote config’. Return None if not present in configuration.
Returns: list of args for ‘terraform remote config’ or None Return type: list
-
_get_outputs
()[source]¶ Return a dict of the terraform outputs.
Returns: dict of terraform outputs Return type: dict
-
_run_tf
(cmd, cmd_args=[], stream=False)[source]¶ Run a single terraform command via
run_cmd()
; raise exception on non-zero exit status.Parameters: Returns: command output
Return type: Raises: Exception on non-zero exit
-
_set_remote
(stream=False)[source]¶ Call
_args_for_remote()
; if the return value is not None, execute ‘terraform remote config’ with those arguments and ensure it exits 0.Parameters: stream (bool) – whether or not to stream TF output in realtime
-
_setup_tf
(stream=False)[source]¶ Setup terraform; either ‘remote config’ or ‘init’ depending on version.
-
_taint_deployment
(stream=False)[source]¶ Run ‘terraform taint aws_api_gateway_deployment.depl’ to taint the deployment resource. This is a workaround for https://github.com/hashicorp/terraform/issues/6613
Parameters: stream (bool) – whether or not to stream TF output in realtime
-
_validate
()[source]¶ Confirm that we can run terraform (by calling its version action) and then validate the configuration.
-
apply
(stream=False)[source]¶ Run a ‘terraform apply’
Parameters: stream (bool) – whether or not to stream TF output in realtime
-