Skip to main content

Terraform wrapper for python

Project description

terrorform

Python wrapper for Terraform

Purpose

This library provides a thin wrapper around the Terraform build tool. Existing libraries for the same purpose were either more complicated than what I needed or defunct. The name terrorform was chosen because every other name I could think of was being squatted on in PyPi.

Package Installation and Usage

The package is available on PyPi:

python -m pip install terrorform

The library can be imported in the normal ways:

import terrorform
from terrorform import *

Examples

This library supports init, apply, and destroy workflows:

from terrorform import *

# Run full setup/teardown workflow with target directory equal to current working directory
init_resp = terrorform.init()
apply_resp = terrorform.apply()
destroy_resp = terrorform.destroy()

The library also supports top level synonyms, allowing the same workflows to be run without referencing the terrorform class:

from terrorform import *

init_resp = init()
apply_resp = apply()
destroy_resp = destroy()

Keyword arguments, boolean flags, and custom variables are passed to each workflow. No checking is performed to ensure that they are valid terraform CLI options. These parameters are split into three categories: keyword arguments, boolean flags, and custom variables:

apply_resp = terrorform.apply(
    # Terraform-specific keyword args, both global and non-global
    kw_args={
        "-chdir": "/tmp/terrorform/"
    },
    # Terraform-specific boolean flags
    boolean_flags=["-no-color"],
    # Custom variables required by your terraform scripts
    vars_dict={
        "my_custom_variable": "Hello"
    }
)

Testing

Tests are run using pytest:

python -m pytest tests.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terrorform-0.2.1.tar.gz (4.3 kB view hashes)

Uploaded Source

Built Distribution

terrorform-0.2.1-py3-none-any.whl (4.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page