privex / looking-glass Goto Github PK
View Code? Open in Web Editor NEWA small network looking glass application in Python
License: Other
A small network looking glass application in Python
License: Other
Dependant on issue #2
We have the component Pager.vue already in the repository, which is a Vue component for pagination, however it isn't yet used.
PrefixList.vue should use Pager.vue for pagination, using the limit/skip GET parameters as explained in issue #2
"Job for lg-queue.service failed because of unavailable resources or another system error.
See "systemctl status lg-queue.service" and "journalctl -xe" for details.
Job for looking-glass.service failed because of unavailable resources or another system error.
See "systemctl status looking-glass.service" and "journalctl -xe" for details."
Jul 06 18:53:10 lg systemd[1]: Failed to start Privex Network Looking Glass - Web App.
-- A start job for unit looking-glass.service has finished with a failure.
Currently the API doesn't support pagination, which can be a problem when viewing ASNs with large amounts of prefixes such as Hurricane Electric (AS6939).
The list_prefixes view ( https://github.com/Privex/looking-glass/blob/master/lg/peerapp/views.py#L117 ) should support the GET parameters limit
/ skip
, and to prevent abuse, limit
should have a configurable default and maximum, e.g. DEFAULT_API_LIMIT=1000
MAX_API_LIMIT=10000
Example:
# page 1
GET /api/v1/prefixes?asn=6939&limit=1000
# page 2
GET /api/v1/prefixes?asn=6939&limit=1000&skip=1000
Hi, I'm getting this error:
lg@lg:~/looking-glass$ sudo ./run.sh server Loading .env environment variables… [2020-10-05 14:58:02 +0000] [6751] [INFO] Starting gunicorn 20.0.4 [2020-10-05 14:58:02 +0000] [6751] [INFO] Listening at: http://127.0.0.1:8282 (6751) [2020-10-05 14:58:02 +0000] [6751] [INFO] Using worker: sync [2020-10-05 14:58:02 +0000] [6771] [INFO] Booting worker with pid: 6771 [2020-10-05 14:58:02 +0000] [6772] [INFO] Booting worker with pid: 6772 [2020-10-05 14:58:02 +0000] [6774] [INFO] Booting worker with pid: 6774 [2020-10-05 14:58:02 +0000] [6775] [INFO] Booting worker with pid: 6775 /usr/local/lib/python3.6/dist-packages/privex/helpers/converters.py:56: UserWarning: Failed to import dataclasses - falling back to placeholder type warnings.warn(f"Failed to import dataclasses - falling back to placeholder type") [2020-10-05 14:58:03 +0000] [6771] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 119, in init_process self.load_wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi self.wsgi = self.app.wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load return self.load_wsgiapp() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp return util.import_app(self.app_uri) File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 358, in import_app mod = importlib.import_module(module) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/lg/looking-glass/wsgi.py", line 19, in <module> from lg.app import flask File "/home/lg/looking-glass/lg/app.py", line 6, in <module> from lg import base, api File "/home/lg/looking-glass/lg/base.py", line 122, in <module> AppError = namedtuple('AppError', 'code message status', defaults=['', 500]) TypeError: namedtuple() got an unexpected keyword argument 'defaults' [2020-10-05 14:58:03 +0000] [6771] [INFO] Worker exiting (pid: 6771) /usr/local/lib/python3.6/dist-packages/privex/helpers/converters.py:56: UserWarning: Failed to import dataclasses - falling back to placeholder type warnings.warn(f"Failed to import dataclasses - falling back to placeholder type") [2020-10-05 14:58:03 +0000] [6775] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 119, in init_process self.load_wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi self.wsgi = self.app.wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load return self.load_wsgiapp() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp return util.import_app(self.app_uri) File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 358, in import_app mod = importlib.import_module(module) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/lg/looking-glass/wsgi.py", line 19, in <module> from lg.app import flask File "/home/lg/looking-glass/lg/app.py", line 6, in <module> from lg import base, api File "/home/lg/looking-glass/lg/base.py", line 122, in <module> AppError = namedtuple('AppError', 'code message status', defaults=['', 500]) TypeError: namedtuple() got an unexpected keyword argument 'defaults' [2020-10-05 14:58:03 +0000] [6775] [INFO] Worker exiting (pid: 6775) /usr/local/lib/python3.6/dist-packages/privex/helpers/converters.py:56: UserWarning: Failed to import dataclasses - falling back to placeholder type warnings.warn(f"Failed to import dataclasses - falling back to placeholder type") /usr/local/lib/python3.6/dist-packages/privex/helpers/converters.py:56: UserWarning: Failed to import dataclasses - falling back to placeholder type warnings.warn(f"Failed to import dataclasses - falling back to placeholder type") [2020-10-05 14:58:03 +0000] [6774] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 119, in init_process self.load_wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi self.wsgi = self.app.wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load return self.load_wsgiapp() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp return util.import_app(self.app_uri) File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 358, in import_app mod = importlib.import_module(module) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/lg/looking-glass/wsgi.py", line 19, in <module> from lg.app import flask File "/home/lg/looking-glass/lg/app.py", line 6, in <module> from lg import base, api File "/home/lg/looking-glass/lg/base.py", line 122, in <module> AppError = namedtuple('AppError', 'code message status', defaults=['', 500]) TypeError: namedtuple() got an unexpected keyword argument 'defaults' [2020-10-05 14:58:03 +0000] [6774] [INFO] Worker exiting (pid: 6774) [2020-10-05 14:58:03 +0000] [6772] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 119, in init_process self.load_wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi self.wsgi = self.app.wsgi() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load return self.load_wsgiapp() File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp return util.import_app(self.app_uri) File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 358, in import_app mod = importlib.import_module(module) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/lg/looking-glass/wsgi.py", line 19, in <module> from lg.app import flask File "/home/lg/looking-glass/lg/app.py", line 6, in <module> from lg import base, api File "/home/lg/looking-glass/lg/base.py", line 122, in <module> AppError = namedtuple('AppError', 'code message status', defaults=['', 500]) TypeError: namedtuple() got an unexpected keyword argument 'defaults' [2020-10-05 14:58:03 +0000] [6772] [INFO] Worker exiting (pid: 6772) [2020-10-05 14:58:03 +0000] [6751] [INFO] Shutting down: Master [2020-10-05 14:58:03 +0000] [6751] [INFO] Reason: Worker failed to boot.
Hi there,
The installation fails every time whenever I try to rebuild the db with Flask. Error below.
Can anyone guide where things went wrong?
(looking-glass) lg@bgp-lg:~/looking-glass$ flask db upgrade
Traceback (most recent call last):
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 3240, in _wrap_pool_connect
return fn()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 256, in _do_get
return self._create_connection()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 371, in init
self.__connect()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 666, in _connect
pool.logger.debug("Error on connect(): %s", e)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 72, in exit
with_traceback=exc_tb,
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 207, in raise
raise exception
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 584, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/psycopg2/init.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: fe_sendauth: no password supplied
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/bin/flask", line 8, in
sys.exit(main())
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/flask/cli.py", line 894, in main
cli.main(args=args, prog_name=name)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/flask/cli.py", line 557, in main
return super(FlaskGroup, self).main(*args, **kwargs)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/flask/cli.py", line 412, in decorator
return __ctx.invoke(f, *args, **kwargs)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/flask_migrate/cli.py", line 149, in upgrade
_upgrade(directory, revision, sql, tag, x_arg)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/flask_migrate/init.py", line 98, in wrapped
f(*args, **kwargs)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/flask_migrate/init.py", line 185, in upgrade
command.upgrade(config, revision, sql=sql, tag=tag)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/alembic/command.py", line 320, in upgrade
script.run_env()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/alembic/script/base.py", line 563, in run_env
util.load_python_file(self.dir, "env.py")
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 92, in load_python_file
module = load_module_py(module_id, path)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 108, in load_module_py
spec.loader.exec_module(module) # type: ignore
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "migrations/env.py", line 96, in
run_migrations_online()
File "migrations/env.py", line 81, in run_migrations_online
with connectable.connect() as connection:
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 3194, in connect
return self._connection_cls(self, close_with_result=close_with_result)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 96, in init
else engine.raw_connection()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 3273, in raw_connection
return self._wrap_pool_connect(self.pool.connect, _connection)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 3244, in wrap_pool_connect
e, dialect, self
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2098, in handle_dbapi_exception_noconnection
sqlalchemy_exception, with_traceback=exc_info[2], from=e
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 207, in raise
raise exception
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 3240, in _wrap_pool_connect
return fn()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 310, in connect
return _ConnectionFairy._checkout(self)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 868, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 476, in checkout
rec = pool._do_get()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 256, in _do_get
return self._create_connection()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
return _ConnectionRecord(self)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 371, in init
self.__connect()
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 666, in _connect
pool.logger.debug("Error on connect(): %s", e)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 72, in exit
with_traceback=exc_tb,
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 207, in raise
raise exception
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/create.py", line 590, in connect
return dialect.connect(*cargs, **cparams)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 584, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/home/lg/.local/share/virtualenvs/looking-glass-2jbejzgb/lib/python3.7/site-packages/psycopg2/init.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) fe_sendauth: no password supplied
(Background on this error at: https://sqlalche.me/e/14/e3q8)
(looking-glass) lg@bgp-lg:~/looking-glass$
Regards,
Khalid
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.