diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-tflens.spec | 636 | ||||
| -rw-r--r-- | sources | 1 | 
3 files changed, 638 insertions, 0 deletions
@@ -0,0 +1 @@ +/tflens-1.5.0.tar.gz diff --git a/python-tflens.spec b/python-tflens.spec new file mode 100644 index 0000000..2bb8ba6 --- /dev/null +++ b/python-tflens.spec @@ -0,0 +1,636 @@ +%global _empty_manifest_terminate_build 0 +Name:		python-tflens +Version:	1.5.0 +Release:	1 +Summary:	Terraform state viewer +License:	MIT License +URL:		https://github.com/neovasili/tflens +Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/41/a4/2d7d7434d4847919f2369322f4e908e17e99d66121f9494d8d4feb8999cc/tflens-1.5.0.tar.gz +BuildArch:	noarch + + +%description +# Terraform lens + +[](https://github.com/neovasili/tflens) +[](https://github.com/neovasili/tflens) +[](https://pypi.python.org/pypi/tflens/) + + +[](https://sonarcloud.io/dashboard?id=neovasili_tflens) + +Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources. + +## Description + +It will produce a table with the resources in a given terraform tfstate with the following columns: + +* provider +* type +* mode +* name +* module + +Example: + +```txt +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +### Features + +Currently, the tool supports read the tfstate file from a **local file** or a **remote state stored in S3**. + +Regarding the produced output, there are three possibilities: + +* **CLI output**. This will show the table directly in the terminal. +* **Markdown** file. This will creates a file `.tflens/terraform.tfstate.json.md` in the current directory with the table. +* **HTML** file. It's also possible to create an html file `.tflens/terraform.tfstate.json.html` in the current directory with the table. + +The tool has been tested with tfstate files for the following terraform versions: + +* 0.12.0 - 0.12.29 +* 0.13.0 - 0.13.7 +* 0.14.0 - 0.14.11 +* 0.15.0 - 0.14.5 +* 1.0.0 + +## Install + +As the content of this repo is a Pypi package, you can easily install it using pip: + +```bash +pip install tflens +``` + +## Usage + +```bash +➜ tflens --help + +usage: tflens [-h] [-f FILE_LOCATION] [-o OUTPUT] [-r REMOTE] [-m FILTER_MODULE] [-n FILTER_NAME] [-t FILTER_TYPE] [-p FILTER_PROVIDER] [-d FILTER_MODE] [-u HTTP_USER] [-w HTTP_PASSWORD] [-v] + +Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources. + +optional arguments: +  -h, --help            show this help message and exit +  -f FILE_LOCATION, --file-location FILE_LOCATION +        Defines the location (remote or local) of the tfstate file. +        Mandatory if remote tfstate is selected. +        If empty then use the current_folder/terraform.tfstate +  -o OUTPUT, --output OUTPUT +        Defines output type (markdown|html). +        If empty outputs in terminal +  -r REMOTE, --remote REMOTE +        Defines if remote (s3|http) or local tfstate file. +        If empty local is used. +        When remote is defined, you also need to specify --file-location with the tfstate location +        according to the following pattern: bucket-name/tfstate-key +  -s SHOW_COLUMNS, --show-columns SHOW_COLUMNS +        Comma separated string list with columns to show in output. Default list is: 'provider,type,mode,name,module' +  -m FILTER_MODULE, --filter-module FILTER_MODULE +        Applies a regular expression to the module field in order to filter the resources list to output +  -n FILTER_NAME, --filter-name FILTER_NAME +        Applies a regular expression to the name field in order to filter the resources list to output +  -t FILTER_TYPE, --filter-type FILTER_TYPE +        Applies a regular expression to the type field in order to filter the resources list to output +  -p FILTER_PROVIDER, --filter-provider FILTER_PROVIDER +        Applies a regular expression to the provider field in order to filter the resources list to output +  -d FILTER_MODE, --filter-mode FILTER_MODE +        Applies a regular expression to the mode field in order to filter the resources list to output +  -u HTTP_USER, --http-user HTTP_USER +        User for http remote backend basic auth +  -w HTTP_PASSWORD, --http-password HTTP_PASSWORD +        Password for http remote backend basic auth +  -v, --version +        Show program version +``` + +### Examples + +View table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +View table of resources for a tfstate located in the file system in the directory removing provider column: + +```bash +➜ tflens --show-columns "type,mode,name,module" + +|        type         |   mode  |           name                | module | +|---------------------|---------|-------------------------------|--------| +| aws_caller_identity |   data  |        current_user           |  test  | +|  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +This feature can be also used to change columns order: + +```bash +➜ tflens --show-columns "module,name,type" + +| module |           name                |        type         | +|--------|-------------------------------|---------------------| +|  test  |        current_user           | aws_caller_identity | +|   -    | dynamodb-terraform-state-lock |  aws_dynamodb_table | +``` + +View filtered table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens --filter-name "current" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +Or: + +```bash +➜ tflens --filter-module "test" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +Or: + +```bash +➜ tflens --filter-name "current" --filter-module "test" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +View table of resources for a tfstate located in the file system in the `dev/terraform.tfstate.json` path: + +```bash +➜ tflens --file-location dev/terraform.tfstate.json + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +Create markdown file with table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens --output markdown +``` + +View table of resources for a tfstate located in a S3 bucket called `tflens-test-tfstate-bucket`: + +```bash +➜ tflens --file-location tflens-test-tfstate-bucket/common/terraform.tfstate --remote s3 +``` + + + + +%package -n python3-tflens +Summary:	Terraform state viewer +Provides:	python-tflens +BuildRequires:	python3-devel +BuildRequires:	python3-setuptools +BuildRequires:	python3-pip +%description -n python3-tflens +# Terraform lens + +[](https://github.com/neovasili/tflens) +[](https://github.com/neovasili/tflens) +[](https://pypi.python.org/pypi/tflens/) + + +[](https://sonarcloud.io/dashboard?id=neovasili_tflens) + +Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources. + +## Description + +It will produce a table with the resources in a given terraform tfstate with the following columns: + +* provider +* type +* mode +* name +* module + +Example: + +```txt +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +### Features + +Currently, the tool supports read the tfstate file from a **local file** or a **remote state stored in S3**. + +Regarding the produced output, there are three possibilities: + +* **CLI output**. This will show the table directly in the terminal. +* **Markdown** file. This will creates a file `.tflens/terraform.tfstate.json.md` in the current directory with the table. +* **HTML** file. It's also possible to create an html file `.tflens/terraform.tfstate.json.html` in the current directory with the table. + +The tool has been tested with tfstate files for the following terraform versions: + +* 0.12.0 - 0.12.29 +* 0.13.0 - 0.13.7 +* 0.14.0 - 0.14.11 +* 0.15.0 - 0.14.5 +* 1.0.0 + +## Install + +As the content of this repo is a Pypi package, you can easily install it using pip: + +```bash +pip install tflens +``` + +## Usage + +```bash +➜ tflens --help + +usage: tflens [-h] [-f FILE_LOCATION] [-o OUTPUT] [-r REMOTE] [-m FILTER_MODULE] [-n FILTER_NAME] [-t FILTER_TYPE] [-p FILTER_PROVIDER] [-d FILTER_MODE] [-u HTTP_USER] [-w HTTP_PASSWORD] [-v] + +Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources. + +optional arguments: +  -h, --help            show this help message and exit +  -f FILE_LOCATION, --file-location FILE_LOCATION +        Defines the location (remote or local) of the tfstate file. +        Mandatory if remote tfstate is selected. +        If empty then use the current_folder/terraform.tfstate +  -o OUTPUT, --output OUTPUT +        Defines output type (markdown|html). +        If empty outputs in terminal +  -r REMOTE, --remote REMOTE +        Defines if remote (s3|http) or local tfstate file. +        If empty local is used. +        When remote is defined, you also need to specify --file-location with the tfstate location +        according to the following pattern: bucket-name/tfstate-key +  -s SHOW_COLUMNS, --show-columns SHOW_COLUMNS +        Comma separated string list with columns to show in output. Default list is: 'provider,type,mode,name,module' +  -m FILTER_MODULE, --filter-module FILTER_MODULE +        Applies a regular expression to the module field in order to filter the resources list to output +  -n FILTER_NAME, --filter-name FILTER_NAME +        Applies a regular expression to the name field in order to filter the resources list to output +  -t FILTER_TYPE, --filter-type FILTER_TYPE +        Applies a regular expression to the type field in order to filter the resources list to output +  -p FILTER_PROVIDER, --filter-provider FILTER_PROVIDER +        Applies a regular expression to the provider field in order to filter the resources list to output +  -d FILTER_MODE, --filter-mode FILTER_MODE +        Applies a regular expression to the mode field in order to filter the resources list to output +  -u HTTP_USER, --http-user HTTP_USER +        User for http remote backend basic auth +  -w HTTP_PASSWORD, --http-password HTTP_PASSWORD +        Password for http remote backend basic auth +  -v, --version +        Show program version +``` + +### Examples + +View table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +View table of resources for a tfstate located in the file system in the directory removing provider column: + +```bash +➜ tflens --show-columns "type,mode,name,module" + +|        type         |   mode  |           name                | module | +|---------------------|---------|-------------------------------|--------| +| aws_caller_identity |   data  |        current_user           |  test  | +|  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +This feature can be also used to change columns order: + +```bash +➜ tflens --show-columns "module,name,type" + +| module |           name                |        type         | +|--------|-------------------------------|---------------------| +|  test  |        current_user           | aws_caller_identity | +|   -    | dynamodb-terraform-state-lock |  aws_dynamodb_table | +``` + +View filtered table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens --filter-name "current" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +Or: + +```bash +➜ tflens --filter-module "test" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +Or: + +```bash +➜ tflens --filter-name "current" --filter-module "test" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +View table of resources for a tfstate located in the file system in the `dev/terraform.tfstate.json` path: + +```bash +➜ tflens --file-location dev/terraform.tfstate.json + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +Create markdown file with table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens --output markdown +``` + +View table of resources for a tfstate located in a S3 bucket called `tflens-test-tfstate-bucket`: + +```bash +➜ tflens --file-location tflens-test-tfstate-bucket/common/terraform.tfstate --remote s3 +``` + + + + +%package help +Summary:	Development documents and examples for tflens +Provides:	python3-tflens-doc +%description help +# Terraform lens + +[](https://github.com/neovasili/tflens) +[](https://github.com/neovasili/tflens) +[](https://pypi.python.org/pypi/tflens/) + + +[](https://sonarcloud.io/dashboard?id=neovasili_tflens) + +Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources. + +## Description + +It will produce a table with the resources in a given terraform tfstate with the following columns: + +* provider +* type +* mode +* name +* module + +Example: + +```txt +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +### Features + +Currently, the tool supports read the tfstate file from a **local file** or a **remote state stored in S3**. + +Regarding the produced output, there are three possibilities: + +* **CLI output**. This will show the table directly in the terminal. +* **Markdown** file. This will creates a file `.tflens/terraform.tfstate.json.md` in the current directory with the table. +* **HTML** file. It's also possible to create an html file `.tflens/terraform.tfstate.json.html` in the current directory with the table. + +The tool has been tested with tfstate files for the following terraform versions: + +* 0.12.0 - 0.12.29 +* 0.13.0 - 0.13.7 +* 0.14.0 - 0.14.11 +* 0.15.0 - 0.14.5 +* 1.0.0 + +## Install + +As the content of this repo is a Pypi package, you can easily install it using pip: + +```bash +pip install tflens +``` + +## Usage + +```bash +➜ tflens --help + +usage: tflens [-h] [-f FILE_LOCATION] [-o OUTPUT] [-r REMOTE] [-m FILTER_MODULE] [-n FILTER_NAME] [-t FILTER_TYPE] [-p FILTER_PROVIDER] [-d FILTER_MODE] [-u HTTP_USER] [-w HTTP_PASSWORD] [-v] + +Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources. + +optional arguments: +  -h, --help            show this help message and exit +  -f FILE_LOCATION, --file-location FILE_LOCATION +        Defines the location (remote or local) of the tfstate file. +        Mandatory if remote tfstate is selected. +        If empty then use the current_folder/terraform.tfstate +  -o OUTPUT, --output OUTPUT +        Defines output type (markdown|html). +        If empty outputs in terminal +  -r REMOTE, --remote REMOTE +        Defines if remote (s3|http) or local tfstate file. +        If empty local is used. +        When remote is defined, you also need to specify --file-location with the tfstate location +        according to the following pattern: bucket-name/tfstate-key +  -s SHOW_COLUMNS, --show-columns SHOW_COLUMNS +        Comma separated string list with columns to show in output. Default list is: 'provider,type,mode,name,module' +  -m FILTER_MODULE, --filter-module FILTER_MODULE +        Applies a regular expression to the module field in order to filter the resources list to output +  -n FILTER_NAME, --filter-name FILTER_NAME +        Applies a regular expression to the name field in order to filter the resources list to output +  -t FILTER_TYPE, --filter-type FILTER_TYPE +        Applies a regular expression to the type field in order to filter the resources list to output +  -p FILTER_PROVIDER, --filter-provider FILTER_PROVIDER +        Applies a regular expression to the provider field in order to filter the resources list to output +  -d FILTER_MODE, --filter-mode FILTER_MODE +        Applies a regular expression to the mode field in order to filter the resources list to output +  -u HTTP_USER, --http-user HTTP_USER +        User for http remote backend basic auth +  -w HTTP_PASSWORD, --http-password HTTP_PASSWORD +        Password for http remote backend basic auth +  -v, --version +        Show program version +``` + +### Examples + +View table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +View table of resources for a tfstate located in the file system in the directory removing provider column: + +```bash +➜ tflens --show-columns "type,mode,name,module" + +|        type         |   mode  |           name                | module | +|---------------------|---------|-------------------------------|--------| +| aws_caller_identity |   data  |        current_user           |  test  | +|  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +This feature can be also used to change columns order: + +```bash +➜ tflens --show-columns "module,name,type" + +| module |           name                |        type         | +|--------|-------------------------------|---------------------| +|  test  |        current_user           | aws_caller_identity | +|   -    | dynamodb-terraform-state-lock |  aws_dynamodb_table | +``` + +View filtered table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens --filter-name "current" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +Or: + +```bash +➜ tflens --filter-module "test" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +Or: + +```bash +➜ tflens --filter-name "current" --filter-module "test" + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +``` + +View table of resources for a tfstate located in the file system in the `dev/terraform.tfstate.json` path: + +```bash +➜ tflens --file-location dev/terraform.tfstate.json + +|   provider   |        type         |   mode  |           name                | module | +|--------------|---------------------|---------|-------------------------------|--------| +| provider.aws | aws_caller_identity |   data  |        current_user           |  test  | +| provider.aws |  aws_dynamodb_table | managed | dynamodb-terraform-state-lock |   -    | +``` + +Create markdown file with table of resources for a tfstate located in the file system in the directory: + +```bash +➜ tflens --output markdown +``` + +View table of resources for a tfstate located in a S3 bucket called `tflens-test-tfstate-bucket`: + +```bash +➜ tflens --file-location tflens-test-tfstate-bucket/common/terraform.tfstate --remote s3 +``` + + + + +%prep +%autosetup -n tflens-1.5.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then +	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then +	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then +	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then +	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then +	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-tflens -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.5.0-1 +- Package Spec generated @@ -0,0 +1 @@ +77d7bdb54e9d3721f55c59b65c0420fa  tflens-1.5.0.tar.gz  | 
