Skip to main content

Get Terraform Workspace and Run usage statistics.

Project description

Overview

A Python module to call the Terraform Cloud API and retrieve data for total and applied Runs of Workspaces.

Usage

Installation:

pip3 install terraform-usage
# or
python3 -m pip install terraform-usage

Usage instructions are in the script built-in help document. Run the following to see options and default parameters.

Bash:

python </oath/to>/terraform_usage.py -h

Python:

import terraform_usage as tfu
help(tfu)

Execution example:

python terraform_usage.py -o ni-prod -t $TFE_TOKEN -k "*abdahmad-*" -m advanced -f abdahmad.csv -s 2023-11-01 -e 2023-11-30

Run parameters:
Organization: ni-prod
Keyword: *abdahmad-*
Filename: abdahmad.csv
Start date: 2023-11-01
End date: 2023-11-30
Mode: advanced
API URL: https://app.terraform.io/api/v2
Page size: 50
Delay: 1.0
-------
Getting page 1 of Workspaces.
Found 3 Workspaces.
Getting Run data for Workspace ids-aws-abdahmad-dev.
Getting page 1 of Runs.
Getting Run data for Workspace ids-aws-abdahmad-prod.
Getting page 1 of Runs.
Getting Run data for Workspace ids-aws-abdahmad-test.
Getting page 1 of Runs.
Creating CSV file abdahmad.csv.
Writing data to abdahmad.csv.

Output in CSV file example:

workspace,all_runs,successful_applies,total_time
abdahmad-dev,4,0,53
abdahmad-prod,0,0,0
abdahmad-test,0,0,0

Execution Modes

  • Simple
    • Function
      • Get total number of Runs and successful Applies for all time.

    • Available filters
      • Workspace name pattern

    • Pros and cons
      • Faster execution

      • Less details

  • Advanced
    • Function
      • Get total number of Runs, successful Applies, and total Run time.

    • Available filters
      • Workspace name pattern

      • Start date

      • End date

    • Pros and cons
      • Potentially slower execution for a large number of Workspaces and Runs.

      • More details

Error Handling

  • Error: Skipping run due to missing attribute(s).
    • A Run is missing a timestamp for a status. Normally caused by Runs stuck in Pending state, which should be discarded if they aren’t meant to complete, successfully or otherwise.

  • Error: One or more Python exceptions.
    • Multiple possible causes. One of the most common is due to the script hitting the Terraform Cloud API rate limit (30 requests per second). There is a safeguard that slows down execution to avoid this.

API Documentation

https://developer.hashicorp.com/terraform/cloud-docs/api-docs

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

terraform_usage-2.1.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

terraform_usage-2.1.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file terraform_usage-2.1.1.tar.gz.

File metadata

  • Download URL: terraform_usage-2.1.1.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.0 Linux/6.2.0-1016-azure

File hashes

Hashes for terraform_usage-2.1.1.tar.gz
Algorithm Hash digest
SHA256 1c1e6ac4592eee728441276f1f8b52629337654dd65440f2f48afe5e0a54e490
MD5 7646ebbbd6ad7dc8a06d70214a18d033
BLAKE2b-256 a9cb4b70e8363e0f70f9a3547055f576d332122c9b7cc6730f1f4a1817a16fef

See more details on using hashes here.

File details

Details for the file terraform_usage-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: terraform_usage-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.0 Linux/6.2.0-1016-azure

File hashes

Hashes for terraform_usage-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4cf06429182efe61abfee25207cac3b123a47e0e75820e33911a161434d8d0d6
MD5 32df0eae9d447563e52d7257c26acacc
BLAKE2b-256 3c5fac72b1a4fdb85a889a282cb3ec8ea4878456b417615f0e3addd22b7218ef

See more details on using hashes here.

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