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 -h

Python:

import terraform_usage as tfu
help(tfu)

Execution example:

python </path/to>/terraform_usage -o abdahmad -t $TFE_TOKEN -k "*abdahmad-*" -m advanced -f abdahmad.csv -s 2023-11-01 -e 2023-11-30

Run parameters:
Organization: abdahmad
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

  • basic
    • 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.7.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

terraform_usage-2.1.7-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: terraform_usage-2.1.7.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/5.4.109+

File hashes

Hashes for terraform_usage-2.1.7.tar.gz
Algorithm Hash digest
SHA256 738f2d28a3ae06b916fb3ef50444ac7ca56875de88150550504080b1853652a7
MD5 84508f2580763456a5c8f1511dd18483
BLAKE2b-256 e6662ef67027832c72d55693ddf665fbc111939a4cc72ca2c78484df9ad2d9c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: terraform_usage-2.1.7-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/5.4.109+

File hashes

Hashes for terraform_usage-2.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0b34178ac4de65d0e763307d42b02fbce3e091725fc94820cf32e42b5ddc0847
MD5 c4e334729b2fa7ec8f8c564f63172ff2
BLAKE2b-256 7de8baad7ff65f5fa75ad8a1232e83b9989fcc6b97e707d4e77466aa8818cdd9

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