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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c1e6ac4592eee728441276f1f8b52629337654dd65440f2f48afe5e0a54e490 |
|
MD5 | 7646ebbbd6ad7dc8a06d70214a18d033 |
|
BLAKE2b-256 | a9cb4b70e8363e0f70f9a3547055f576d332122c9b7cc6730f1f4a1817a16fef |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cf06429182efe61abfee25207cac3b123a47e0e75820e33911a161434d8d0d6 |
|
MD5 | 32df0eae9d447563e52d7257c26acacc |
|
BLAKE2b-256 | 3c5fac72b1a4fdb85a889a282cb3ec8ea4878456b417615f0e3addd22b7218ef |