diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 06:34:34 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 06:34:34 +0000 |
commit | 7684b6ec76a1b15525f0ea018ba188e8656b1af4 (patch) | |
tree | cd33841dcd87ce566e7f901d6402e0ada7c36f11 | |
parent | cc7b97e30d5cf84dba34f4deefee1f865c7be97b (diff) |
automatic import of python-blastradius
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-blastradius.spec | 324 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 326 insertions, 0 deletions
@@ -0,0 +1 @@ +/BlastRadius-0.1.23.tar.gz diff --git a/python-blastradius.spec b/python-blastradius.spec new file mode 100644 index 0000000..e3fb971 --- /dev/null +++ b/python-blastradius.spec @@ -0,0 +1,324 @@ +%global _empty_manifest_terminate_build 0 +Name: python-BlastRadius +Version: 0.1.23 +Release: 1 +Summary: Interactive visualizations of Terraform dependency graphs +License: LICENSE.txt +URL: http://pypi.python.org/pypi/BlastRadius/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/19/5a/154aa8523324dc3ffb6e2f6daeab0c34363bfe07b5405d61ffdb01e6f75d/BlastRadius-0.1.23.tar.gz +BuildArch: noarch + + +%description +# Blast Radius + +[](https://badge.fury.io/py/BlastRadius)  + +*Blast Radius* is a tool for reasoning about *Terraform* dependency graphs with interactive visualizations. Use *Blast Radius* to: + * **Learn** about *Terraform* or one of its cloud providers, through [example configurations](https://28mm.github.io/blast-radius-docs/). + * **Document** your infrastructure + * **Reason** about relationships between resources, and evaluate changes to them. + +<img src="doc/blastradius-interactive.png"> + + * **Interact** with this diagram (and many others) [here](https://28mm.github.io/blast-radius-docs/). + +# Quickstart + +Install *Blast Radius* with pip, and *Graphviz* through your system's package manager. + +````bash +[...]$ pip3 install BlastRadius +[...]$ brew install graphviz +```` + +Point *Blast Radius* at an `init-ed` *Terraform* project, and connect with your browser. + +```bash +[...]$ blast-radius --serve /path/to/terraform-project + * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) +``` +## Docker +*Alternatively*, you can launch *Blast Radius* in a docker container. (In this example, the current working directory contains a *Terraform* project.) + +```bash +[...]$ docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro 28mm/blast-radius +``` + +*Please note*: because terraform saves module links as _absolute_ paths in _.terraform/modules/<uuid>_ we mount the host's filesystem read-only and force terraform to update the modules path at start. This way we don't interfere with the real project. Thus docker has to be run with the `--cap-add=SYS_ADMIN` flag to use the [overlayFS](https://wiki.archlinux.org/index.php/Overlay_filesystem) see [Docker's documentation](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities). + +*Additional note*: +If you organised your terraform directories with stacks and modules, please call *Blast Radius* from the root directory and give the stack's directory as argument (plus the `--serve` argument). + +```bash +[...]$ tree -d +/-- project + |-- modules + | |-- foo + | |-- bar + | `-- dead + `-- stacks + `-- beef + `-- .terraform + +[...]$ cd project +docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro 28mm/blast-radius --serve stacks/beef +``` +# Embedded Figures + +You may wish to embed figures produced with *Blast Radius* in other documents. You will need the following: + + 1. an `svg` file and `json` document representing the graph and its layout. + 2. `javascript` and `css` found in `.../blastradius/server/static` + 3. a uniquely identified DOM element, where the `<svg>` should appear. + +Further details available [here](doc/embedded.md). + +# Implementation Details + +*Blast Radius* uses the [*Graphviz*](http://graphviz.org/) package to layout graph diagrams, [*PyHCL*](https://github.com/virtuald/pyhcl) to parse [*Terraform*](https://www.terraform.io/) configurations, and [*d3.js*](https://d3js.org/) to implement interactive features and animations. + +# Further Reading + +The development of *Blast Radius* is documented in a series of [blog](https://28mm.github.io) posts: + + * [part 1](https://28mm.github.io/notes/d3-terraform-graphs): motivations, d3 force-directed layouts vs. vanilla graphviz. + * [part 2](https://28mm.github.io/notes/d3-terraform-graphs-2): d3-enhanced graphviz layouts, meaningful coloration, animations. + * [part 3](https://28mm.github.io/notes/terraform-graphs-3): limiting horizontal sprawl, supporting modules. + * [part 4](https://28mm.github.io/notes/d3-terraform-graphs-4): search, pan/zoom, prune-to-selection, docker. + +A catalog of example *Terraform* configurations, and their dependency graphs can be found [here](https://28mm.github.io/blast-radius-docs/). + + * [AWS two-tier architecture](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-aws/two-tier/) + * [AWS networking (featuring modules)](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-aws/networking/) + * [Google two-tier architecture](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-google/two-tier/) + * [Azure load-balancing with 2 vms](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-azurem/2-vms-loadbalancer-lbrules/) + +These examples are drawn primarily from the `examples/` directory distributed with various *Terraform* providers, and aren't necessarily ideal. Additional examples, particularly demonstrations of best-practices, or of multi-cloud configurations strongly desired. + +%package -n python3-BlastRadius +Summary: Interactive visualizations of Terraform dependency graphs +Provides: python-BlastRadius +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-BlastRadius +# Blast Radius + +[](https://badge.fury.io/py/BlastRadius)  + +*Blast Radius* is a tool for reasoning about *Terraform* dependency graphs with interactive visualizations. Use *Blast Radius* to: + * **Learn** about *Terraform* or one of its cloud providers, through [example configurations](https://28mm.github.io/blast-radius-docs/). + * **Document** your infrastructure + * **Reason** about relationships between resources, and evaluate changes to them. + +<img src="doc/blastradius-interactive.png"> + + * **Interact** with this diagram (and many others) [here](https://28mm.github.io/blast-radius-docs/). + +# Quickstart + +Install *Blast Radius* with pip, and *Graphviz* through your system's package manager. + +````bash +[...]$ pip3 install BlastRadius +[...]$ brew install graphviz +```` + +Point *Blast Radius* at an `init-ed` *Terraform* project, and connect with your browser. + +```bash +[...]$ blast-radius --serve /path/to/terraform-project + * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) +``` +## Docker +*Alternatively*, you can launch *Blast Radius* in a docker container. (In this example, the current working directory contains a *Terraform* project.) + +```bash +[...]$ docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro 28mm/blast-radius +``` + +*Please note*: because terraform saves module links as _absolute_ paths in _.terraform/modules/<uuid>_ we mount the host's filesystem read-only and force terraform to update the modules path at start. This way we don't interfere with the real project. Thus docker has to be run with the `--cap-add=SYS_ADMIN` flag to use the [overlayFS](https://wiki.archlinux.org/index.php/Overlay_filesystem) see [Docker's documentation](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities). + +*Additional note*: +If you organised your terraform directories with stacks and modules, please call *Blast Radius* from the root directory and give the stack's directory as argument (plus the `--serve` argument). + +```bash +[...]$ tree -d +/-- project + |-- modules + | |-- foo + | |-- bar + | `-- dead + `-- stacks + `-- beef + `-- .terraform + +[...]$ cd project +docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro 28mm/blast-radius --serve stacks/beef +``` +# Embedded Figures + +You may wish to embed figures produced with *Blast Radius* in other documents. You will need the following: + + 1. an `svg` file and `json` document representing the graph and its layout. + 2. `javascript` and `css` found in `.../blastradius/server/static` + 3. a uniquely identified DOM element, where the `<svg>` should appear. + +Further details available [here](doc/embedded.md). + +# Implementation Details + +*Blast Radius* uses the [*Graphviz*](http://graphviz.org/) package to layout graph diagrams, [*PyHCL*](https://github.com/virtuald/pyhcl) to parse [*Terraform*](https://www.terraform.io/) configurations, and [*d3.js*](https://d3js.org/) to implement interactive features and animations. + +# Further Reading + +The development of *Blast Radius* is documented in a series of [blog](https://28mm.github.io) posts: + + * [part 1](https://28mm.github.io/notes/d3-terraform-graphs): motivations, d3 force-directed layouts vs. vanilla graphviz. + * [part 2](https://28mm.github.io/notes/d3-terraform-graphs-2): d3-enhanced graphviz layouts, meaningful coloration, animations. + * [part 3](https://28mm.github.io/notes/terraform-graphs-3): limiting horizontal sprawl, supporting modules. + * [part 4](https://28mm.github.io/notes/d3-terraform-graphs-4): search, pan/zoom, prune-to-selection, docker. + +A catalog of example *Terraform* configurations, and their dependency graphs can be found [here](https://28mm.github.io/blast-radius-docs/). + + * [AWS two-tier architecture](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-aws/two-tier/) + * [AWS networking (featuring modules)](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-aws/networking/) + * [Google two-tier architecture](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-google/two-tier/) + * [Azure load-balancing with 2 vms](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-azurem/2-vms-loadbalancer-lbrules/) + +These examples are drawn primarily from the `examples/` directory distributed with various *Terraform* providers, and aren't necessarily ideal. Additional examples, particularly demonstrations of best-practices, or of multi-cloud configurations strongly desired. + +%package help +Summary: Development documents and examples for BlastRadius +Provides: python3-BlastRadius-doc +%description help +# Blast Radius + +[](https://badge.fury.io/py/BlastRadius)  + +*Blast Radius* is a tool for reasoning about *Terraform* dependency graphs with interactive visualizations. Use *Blast Radius* to: + * **Learn** about *Terraform* or one of its cloud providers, through [example configurations](https://28mm.github.io/blast-radius-docs/). + * **Document** your infrastructure + * **Reason** about relationships between resources, and evaluate changes to them. + +<img src="doc/blastradius-interactive.png"> + + * **Interact** with this diagram (and many others) [here](https://28mm.github.io/blast-radius-docs/). + +# Quickstart + +Install *Blast Radius* with pip, and *Graphviz* through your system's package manager. + +````bash +[...]$ pip3 install BlastRadius +[...]$ brew install graphviz +```` + +Point *Blast Radius* at an `init-ed` *Terraform* project, and connect with your browser. + +```bash +[...]$ blast-radius --serve /path/to/terraform-project + * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) +``` +## Docker +*Alternatively*, you can launch *Blast Radius* in a docker container. (In this example, the current working directory contains a *Terraform* project.) + +```bash +[...]$ docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro 28mm/blast-radius +``` + +*Please note*: because terraform saves module links as _absolute_ paths in _.terraform/modules/<uuid>_ we mount the host's filesystem read-only and force terraform to update the modules path at start. This way we don't interfere with the real project. Thus docker has to be run with the `--cap-add=SYS_ADMIN` flag to use the [overlayFS](https://wiki.archlinux.org/index.php/Overlay_filesystem) see [Docker's documentation](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities). + +*Additional note*: +If you organised your terraform directories with stacks and modules, please call *Blast Radius* from the root directory and give the stack's directory as argument (plus the `--serve` argument). + +```bash +[...]$ tree -d +/-- project + |-- modules + | |-- foo + | |-- bar + | `-- dead + `-- stacks + `-- beef + `-- .terraform + +[...]$ cd project +docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro 28mm/blast-radius --serve stacks/beef +``` +# Embedded Figures + +You may wish to embed figures produced with *Blast Radius* in other documents. You will need the following: + + 1. an `svg` file and `json` document representing the graph and its layout. + 2. `javascript` and `css` found in `.../blastradius/server/static` + 3. a uniquely identified DOM element, where the `<svg>` should appear. + +Further details available [here](doc/embedded.md). + +# Implementation Details + +*Blast Radius* uses the [*Graphviz*](http://graphviz.org/) package to layout graph diagrams, [*PyHCL*](https://github.com/virtuald/pyhcl) to parse [*Terraform*](https://www.terraform.io/) configurations, and [*d3.js*](https://d3js.org/) to implement interactive features and animations. + +# Further Reading + +The development of *Blast Radius* is documented in a series of [blog](https://28mm.github.io) posts: + + * [part 1](https://28mm.github.io/notes/d3-terraform-graphs): motivations, d3 force-directed layouts vs. vanilla graphviz. + * [part 2](https://28mm.github.io/notes/d3-terraform-graphs-2): d3-enhanced graphviz layouts, meaningful coloration, animations. + * [part 3](https://28mm.github.io/notes/terraform-graphs-3): limiting horizontal sprawl, supporting modules. + * [part 4](https://28mm.github.io/notes/d3-terraform-graphs-4): search, pan/zoom, prune-to-selection, docker. + +A catalog of example *Terraform* configurations, and their dependency graphs can be found [here](https://28mm.github.io/blast-radius-docs/). + + * [AWS two-tier architecture](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-aws/two-tier/) + * [AWS networking (featuring modules)](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-aws/networking/) + * [Google two-tier architecture](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-google/two-tier/) + * [Azure load-balancing with 2 vms](https://28mm.github.io/blast-radius-docs/examples/terraform-provider-azurem/2-vms-loadbalancer-lbrules/) + +These examples are drawn primarily from the `examples/` directory distributed with various *Terraform* providers, and aren't necessarily ideal. Additional examples, particularly demonstrations of best-practices, or of multi-cloud configurations strongly desired. + +%prep +%autosetup -n BlastRadius-0.1.23 + +%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-BlastRadius -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.23-1 +- Package Spec generated @@ -0,0 +1 @@ +290c2cfdbdd52b3b7746dbd4493b9b7b BlastRadius-0.1.23.tar.gz |