Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blast Radius triggers 500 response #93

Open
rossayoung opened this issue Jan 31, 2021 · 4 comments
Open

Blast Radius triggers 500 response #93

rossayoung opened this issue Jan 31, 2021 · 4 comments

Comments

@rossayoung
Copy link

I have been playing around with ncc/sad cloud and I wanted to visualize the data via blast-radius.
unfortunately after successfully applying the terraform init blast-radius seems to have problems viewing the TF file

steps to recreate
git clone https://github.com/nccgroup/sadcloud.git
cd sadcloud/sadcloud

pip3 install blastradius
brew install graphviz
brew install terraform

terraform init
blast-radius --serve .

Output returns

sadcloud % blast-radius --serve .

  • Serving Flask app "blastradius.server.server" (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: off
  • Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET / HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/jquery.slim.min.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/bootstrap.min.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/fontawesome-all.min.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/d3.v4.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/blast-radius.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/d3-tip.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/categories.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/css/bootstrap.min.css HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/css/selectize.css HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/selectize.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:46] "GET /static/js/svg-pan-zoom.js HTTP/1.1" 200 -
    127.0.0.1 - - [31/Jan/2021 07:15:51] "GET /graph.svg HTTP/1.1" 200 -
    [2021-01-31 07:15:52,904] ERROR in app: Exception on /graph.json [GET]
    Traceback (most recent call last):
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functionsrule.endpoint
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/blastradius/server/server.py", line 61, in graph_json
    tf = Terraform(os.getcwd())
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/blastradius/handlers/terraform.py", line 26, in init
    self.config = hcl.load(config_io)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/api.py", line 62, in load
    return loads(fp.read(), export_comments=export_comments)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/api.py", line 81, in loads
    return HclParser().parse(s, export_comments=export_comments)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/parser.py", line 642, in parse
    return self.yacc.parse(
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/ply/yacc.py", line 330, in parse
    lookahead = get_token() # Get the next token
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/lexer.py", line 391, in token
    return self.lex.token()
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/ply/lex.py", line 388, in token
    newtok = self.lexerrorf(tok)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/lexer.py", line 364, in t_error
    _raise_error(t)
    File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/hcl/lexer.py", line 19, in _raise_error
    raise ValueError(
    ValueError: Line 7, column 24, index 308: Illegal character '|'
    127.0.0.1 - - [31/Jan/2021 07:15:52] "GET /graph.json HTTP/1.1" 500 -
@StevenMonty
Copy link

Similar issue here, but different illegal character:

127.0.0.1 - - [07/May/2021 00:24:38] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/jquery.slim.min.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/d3-tip.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/d3.v4.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/blast-radius.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/bootstrap.min.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/fontawesome-all.min.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/categories.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/svg-pan-zoom.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:38] "GET /static/js/selectize.js HTTP/1.1" 304 -
127.0.0.1 - - [07/May/2021 00:24:41] "GET /graph.svg HTTP/1.1" 200 -
[2021-05-07 00:24:43,555] ERROR in app: Exception on /graph.json [GET]
Traceback (most recent call last):
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/blastradius/server/server.py", line 61, in graph_json
    tf = Terraform(os.getcwd())
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/blastradius/handlers/terraform.py", line 26, in __init__
    self.config = hcl.load(config_io)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/hcl/api.py", line 62, in load
    return loads(fp.read(), export_comments=export_comments)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/hcl/api.py", line 81, in loads
    return HclParser().parse(s, export_comments=export_comments)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/hcl/parser.py", line 642, in parse
    return self.yacc.parse(
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/hcl/ply/yacc.py", line 503, in parse
    tok = self.errorfunc(errtoken)
  File "/home/smontalbano/work/martie_stripped/venv/lib/python3.8/site-packages/hcl/parser.py", line 634, in p_error
    raise ValueError(msg)
ValueError: Line 822, column 21563: unexpected RIGHTPAREN; expected PERIOD, COMMA
127.0.0.1 - - [07/May/2021 00:24:43] "GET /graph.json HTTP/1.1" 500 -

@alen-z
Copy link

alen-z commented Jul 7, 2021

& for me.

@lkurzyniec
Copy link

my callstack

...
127.0.0.1 - - [29/Aug/2022 15:18:56] "GET /static/js/selectize.js HTTP/1.1" 304 -
[2022-08-29 15:19:13,783] ERROR in app: Exception on /graph.svg [GET]
Traceback (most recent call last):
  File "/mnt/c/git/proj1/venv/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:

Traceback (most recent call last):
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/blastradius/server/server.py", line 36, in graph_svg
    dot = DotGraph('', file_contents=run_tf_graph())
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/blastradius/handlers/dot.py", line 54, in __init__
    self.nodes.append(DotNode(e.source))
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/blastradius/handlers/dot.py", line 415, in __init__
    self.module         = DotNode._module(self.label) # for module groupings. 'root' or 'module.foo.module.bar'
  File "/mnt/c/git/proj1/venv/lib/python3.8/site-packages/blastradius/handlers/dot.py", line 457, in _module
    raise Exception("None: ", label)
Exception: ('None: ', '[root] module.admin_group_owner_parent_group_assignment (close)')
127.0.0.1 - - [29/Aug/2022 15:19:13] "GET /graph.svg HTTP/1.1" 500 -

@Ianyliu
Copy link

Ianyliu commented Sep 1, 2022

If any of you want, you can try my version of Blast Radius using pip:

python3 -m pip install git+https://github.com/Ianyliu/blast-radius-fork

Or Docker:

docker run --rm -it -p 5000:5000 \ -v $(pwd):/data:ro \ --security-opt apparmor:unconfined \ --cap-add=SYS_ADMIN \ ianyliu/blast-radius-fork

I believe I solved that problem...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants