Comments (16)
I have the same issue, guessing it'll be a tf0.13 issue
from blast-radius.
another finding, it will work without any issue if there are no modules imported. @Ianyliu
from blast-radius.
Same issue, terraform 0.13.5
from blast-radius.
I have it with Terraform v0.14.9
from blast-radius.
I have the issue with Terraform v0.15.3
from blast-radius.
I have a same issue with 0.13.6 :( So sad I just found this great project which may help me visualizing Terraform graph.
from blast-radius.
Same error.
AttributeError: 'NoneType' object has no attribute 'groupdict'
in blastradius/handlers/dot.py
.
from blast-radius.
Same here on v1.0.4:
[2021-08-17 11:18:46,902] ERROR in app: Exception on /graph.svg [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/blastradius/handlers/dot.py", line 455, in _module
return m.groupdict()['module']
AttributeError: 'NoneType' object has no attribute 'groupdict'
from blast-radius.
I have the issue with Terraform v0.15.5
from blast-radius.
same issue with terraform v1.2.9
[2022-09-23 22:09:27,966] ERROR in app: Exception on /graph.svg [GET]
Traceback (most recent call last):
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/blastradius/handlers/dot.py", line 455, in _module
return m.groupdict()['module']
AttributeError: 'NoneType' object has no attribute 'groupdict'
During handling of the above exception, another exception occurred:
from blast-radius.
Not sure if this will help, but you can try using my version of Blast Radius which I've tried to increase compatibility for.
Source Code:
Blast Radius Fork
Installation:
python3 -m pip install git+https://github.com/Ianyliu/blast-radius-fork
docker run --rm -it -p 5000:5000 \ -v $(pwd):/data:ro \ --security-opt apparmor:unconfined \ --cap-add=SYS_ADMIN \ ianyliu/blast-radius-fork
from blast-radius.
Not sure if this will help, but you can try using my version of Blast Radius which I've tried to increase compatibility for.
Source Code: Blast Radius Fork
Installation:
python3 -m pip install git+https://github.com/Ianyliu/blast-radius-fork
docker run --rm -it -p 5000:5000 \ -v $(pwd):/data:ro \ --security-opt apparmor:unconfined \ --cap-add=SYS_ADMIN \ ianyliu/blast-radius-fork
Docker image:
got error like this
[2022-09-25 07:48:26,018] ERROR in app: Exception on /graph.svg [GET]
Traceback (most recent call last):
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/parsers/lalr_parser.py", line 59, in get_action
return states[state][token.type]
KeyError: '__ANON_3'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/flask/app.py", line 2077, in wsgi_app
response = self.full_dispatch_request()
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/flask/app.py", line 1525, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/flask/app.py", line 1523, in full_dispatch_request
rv = self.dispatch_request()
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/flask/app.py", line 1509, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/blastradius/server/server.py", line 134, in graph_svg
dot = initalizeDotGraph(content=run_tf_graph(),
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/blastradius/server/server.py", line 215, in initalizeDotGraph
tf = Terraform(os.getcwd())
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/blastradius/handlers/terraform.py", line 29, in __init__
self.config = hcl.load(config_io)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/hcl2/api.py", line 9, in load
return loads(file.read())
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/hcl2/api.py", line 18, in loads
return hcl2.parse(text + "\n")
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/lark.py", line 464, in parse
return self.parser.parse(text, start=start)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/parser_frontends.py", line 115, in parse
return self._parse(token_stream, start)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/parser_frontends.py", line 63, in _parse
return self.parser.parse(input, start, *args)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/parsers/lalr_parser.py", line 35, in parse
return self.parser.parse(*args)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/parsers/lalr_parser.py", line 88, in parse
action, arg = get_action(token)
File "/home/vagrant/venv/terraform/lib/python3.8/site-packages/lark/parsers/lalr_parser.py", line 66, in get_action
raise UnexpectedToken(token, expected, state=state, puppet=puppet)
lark.exceptions.UnexpectedToken: Unexpected token Token('__ANON_3', 'output') at line 302, column 3.
Expected one of:
* __ANON_0
* __ANON_2
* __ANON_1
127.0.0.1 - - [25/Sep/2022 07:48:26] "GET /graph.svg HTTP/1.1" 500 -
from blast-radius.
Do you happen to know if you're using HCL or HCL2?
I've updated one of the dependencies, python-hcl2
to see if it will help.
The problem occurred when parsing HCL files, and it's not the first time someone told me about it.
Since I'm not extremely familiar with HCL parsing either, I'm still trying to wrap my head around it
from blast-radius.
Hi @xiaopeng163,
Could you try testing out this version of Blast-Radius (fork)?
It should resolve the problems for remote modules
I integrated changes from Jrc356/blast-radius
The changes are on my dev branch, so to install it you would have to put:
pip install -U git+https://github.com/Ianyliu/blast-radius-fork@dev
If you use Docker and would like me to create a dev or testing image, please let me know as well
from blast-radius.
@Ianyliu seems working with the remote module, for example
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = ">= 3.14.2"
name = var.aws_vpc_name
cidr = var.aws_vpc_cidr
azs = var.aws_availability_zones
public_subnets = [cidrsubnet(var.aws_vpc_cidr, 8, 1)]
create_igw = true
manage_default_security_group = true
default_security_group_egress = var.aws_sg_egress_rules
default_security_group_ingress = var.aws_sg_ingress_rules
}
but to be honest, this is not readable, seems it shows all resources defined in the module?
btw, the code still doesn't work for local modules like:
module "my_vpc" {
source = "./modules/vpc"
aws_vpc_cidr_block = var.aws_vpc_cidr_block
}
output "vpc_id" {
value = module.my_vpc.id
}
from blast-radius.
@xiaopeng163
Was there a problem before with local modules? I assumed that your problem was just due to the modules being remote.
If the source is from another local file, I doubt it will work right now. But perhaps that is something I should work on.
Could you describe the problem in more detail? I don't really have any experience using local modules in Terraform.
from blast-radius.
Related Issues (20)
- Receiving issue when trying to connect to git for AWS provider HOT 4
- When using with an AWS project, diagram is blank. HOT 9
- BUG: Commit a7ec4ef Docker feature not functional, returns `no such file or dir` error HOT 3
- REQ: SemVer Release or Tag
- Python 3.10 incomptablity due to collections HOT 3
- AttributeError: module 'collections' has no attribute 'MutableSet' HOT 1
- Error using && Logical Operators
- Hosting on Azure HOT 1
- HTTP 500 internal server error: unexpected LEFTBRACKET HOT 4
- Importing ABC directly from collections will be removed in Python 3.10
- Using blast-radius for the first time HOT 1
- All I see is the graphviz svg graph HOT 1
- AttributeError: 'NoneType' object has no attribute 'groupdict' HOT 12
- Is this project still maintained? HOT 2
- Local install fails to find templates
- Error: Unsuitable value type HOT 1
- Blast Radius triggers 500 response HOT 4
- WORKING VERSION
- Does not start up HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blast-radius.