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

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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: terraform_usage-2.1.3.tar.gz
  • Upload date:
  • Size: 6.1 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.3.tar.gz
Algorithm Hash digest
SHA256 7b552f1a7a7aaf5618fee6a07dba0ecb9f0c0cb14a59b629663d0020009be428
MD5 66d312f6385de7b93df9612c2508e69d
BLAKE2b-256 43835e38b76f30c08dd5c6056ede96bf7d40d4ad48ed103b71e74fe0c73f6c63

See more details on using hashes here.

File details

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

File metadata

  • Download URL: terraform_usage-2.1.3-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.12.0 Linux/6.2.0-1016-azure

File hashes

Hashes for terraform_usage-2.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 33a45df75c5d21b916a3e88ec33588e9a95c25838b515d0c61a86f5cc407aa58
MD5 4006fd79432d2e80382c182b8ba1ead3
BLAKE2b-256 1e13a0d3331fc9ec231bc3cae1824f69622103e3d708d386442cf0df16d5adce

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