Many cleanups, additions and new ideas.
This commit is contained in:
parent
b308068617
commit
484ad6e3b3
13 changed files with 104 additions and 358 deletions
42
Makefile
42
Makefile
|
|
@ -1,5 +1,41 @@
|
|||
all:
|
||||
PYTHONPATH=$(shell pwd) ./bin/linspector -s ./etc
|
||||
PYTHON_VERSION=3.10
|
||||
#PYTHON_VERSION = $(shell python -V | awk -F ' ' '{print $2}' | awk -F '.' '{print $1 "." $2}')
|
||||
|
||||
help:
|
||||
# Getting started using this Makefile.
|
||||
# It should help you to go on fast and easy.
|
||||
#
|
||||
# First edit this Makefile and add your Python version:
|
||||
# -----------------------------------------------------
|
||||
# Set PYTHON_VERSION to MAJOR.MINOR version of your
|
||||
# current installed Python version. E.g.: 3.10 (default).
|
||||
# Get the Python version with: python -V
|
||||
#
|
||||
# Create virtual environment:
|
||||
# ---------------------------
|
||||
# python -m venv ./venv
|
||||
# source ./venv/bin/activate
|
||||
# pip install -r requirements.txt
|
||||
#
|
||||
# Activate virtual environment when not already done:
|
||||
# ---------------------------------------------------
|
||||
# source ./venv/bin/activate
|
||||
#
|
||||
# Deactivate virtual environment:
|
||||
# -------------------------------
|
||||
# deactivate
|
||||
#
|
||||
# Run Linspector:
|
||||
# ---------------
|
||||
# make run
|
||||
#
|
||||
# Run Linspector in daemon mode:
|
||||
# ------------------------------
|
||||
# make daemon
|
||||
|
||||
run:
|
||||
PYTHONPATH=$(shell pwd):$(shell pwd)/venv/lib/python$(PYTHON_VERSION)/site-packages/ bin/linspector -s ./etc
|
||||
|
||||
daemon:
|
||||
PYTHONPATH=$(shell pwd) ./bin/linspector -d ./etc
|
||||
PYTHONPATH=$(shell pwd):$(shell pwd)/venv/lib/python$(PYTHON_VRESION)/site-packages/ bin/linspector -d ./etc
|
||||
|
||||
|
|
|
|||
3
bin/lish
3
bin/lish
|
|
@ -14,11 +14,10 @@ import logging.handlers
|
|||
import os
|
||||
import sys
|
||||
|
||||
from linspector.core.helpers import log
|
||||
|
||||
from linspector.core.configuration import Configuration
|
||||
from linspector.core.environment import Environment
|
||||
from linspector.core.linspector import Linspector
|
||||
from linspector.core.logger import Log
|
||||
from linspector.core.monitors import Monitors
|
||||
|
||||
logger = logging.getLogger('linspector')
|
||||
|
|
|
|||
4
etc/plugins/api.conf
Normal file
4
etc/plugins/api.conf
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
[api]
|
||||
host = 127.0.0.1
|
||||
port = 4242
|
||||
type = thread
|
||||
4
etc/plugins/httpd.conf
Normal file
4
etc/plugins/httpd.conf
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
[httpserver]
|
||||
host = 127.0.0.1
|
||||
port = 8080
|
||||
type = thread
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[httpserver]
|
||||
ip = 127.0.0.1
|
||||
port = 4242
|
||||
type = thread
|
||||
3
etc/tasks/splunk.conf
Normal file
3
etc/tasks/splunk.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[splunk]
|
||||
host = splunk.example.org
|
||||
port = 3333
|
||||
3
etc/tasks/syslog.conf
Normal file
3
etc/tasks/syslog.conf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[syslog]
|
||||
host = log.example.org
|
||||
port = 514
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
"""
|
||||
This file is part of Linspector (https://linspector.org/)
|
||||
Copyright (c) 2022 Johannes Findeisen <you@hanez.org>. All Rights Reserved.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ See LICENSE.txt (MIT license).
|
|||
# TODO: Make this a backend API using the modern FastAPI framework as a replacement for the
|
||||
# traditional RPC plugin. Maybe it makes sense to maintain the RPC plugin too for simple usage by
|
||||
# the Lish but I believe it makes sense to only create one backend for all clients.
|
||||
from fastapi import FastAPI
|
||||
from linspector.core.plugin import Plugin
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ from linspector.core.plugin import Plugin
|
|||
|
||||
|
||||
def create(configuration, environment, linspector, log):
|
||||
return HTTPServerPlugin(configuration, environment, linspector, log)
|
||||
return HTTPDPlugin(configuration, environment, linspector, log)
|
||||
|
||||
|
||||
# TODO: check for all required configuration options and set defaults if needed.
|
||||
class HTTPServerPlugin(Plugin):
|
||||
class HTTPDPlugin(Plugin):
|
||||
|
||||
def __init__(self, configuration, environment, linspector, log):
|
||||
super().__init__(configuration, environment, linspector, log)
|
||||
26
linspector/plugins/lish.py
Normal file
26
linspector/plugins/lish.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
"""
|
||||
This file is part of Linspector (https://linspector.org/)
|
||||
Copyright (c) 2022 Johannes Findeisen <you@hanez.org>. All Rights Reserved.
|
||||
See LICENSE.txt (MIT license).
|
||||
"""
|
||||
# TODO: This plugin should become the internal Lish implemented as a plugin which does not use the
|
||||
# API plugin but loads at the end when starting Linspector in interactive mode as a terminal like
|
||||
# interface to the core of Linspector.
|
||||
from linspector.core.plugin import Plugin
|
||||
|
||||
|
||||
def create(configuration, environment, linspector, log):
|
||||
return LishPlugin(configuration, environment, linspector, log)
|
||||
|
||||
|
||||
# TODO: check for all required configuration options and set defaults if needed.
|
||||
class LishPlugin(Plugin):
|
||||
def __init__(self, configuration, environment, linspector, log):
|
||||
super().__init__(configuration, environment, linspector, log)
|
||||
self.__configuration = configuration
|
||||
self.__environment = environment
|
||||
self.__linspector = linspector
|
||||
self.__log = log
|
||||
|
||||
def run(self):
|
||||
return
|
||||
|
|
@ -12,7 +12,6 @@ def create(configuration, environment, log):
|
|||
|
||||
# TODO: check for all required configuration options and set defaults if needed.
|
||||
class FileTask(Task):
|
||||
|
||||
def __init__(self, configuration, environment, log):
|
||||
super().__init__(configuration, environment, log)
|
||||
self.__configuration = configuration
|
||||
|
|
|
|||
|
|
@ -1,384 +1,58 @@
|
|||
adafruit-ampy==1.1.0
|
||||
aiofiles==22.1.0
|
||||
aiohttp==3.8.3
|
||||
aiohttp-cors==0.7.0
|
||||
aiosignal==1.3.1
|
||||
alabaster==0.7.13
|
||||
ansible==7.2.0
|
||||
ansible-core==2.14.2
|
||||
anyio==3.6.2
|
||||
anytree==2.8.0
|
||||
appdirs==1.4.4
|
||||
apsw==3.40.0.0
|
||||
arandr==0.1.11
|
||||
argcomplete==2.0.0
|
||||
argon2-cffi==21.3.0
|
||||
argon2-cffi-bindings==21.2.0
|
||||
asciidoc==10.2.0
|
||||
asciinema==2.2.0
|
||||
asgiref==3.5.2
|
||||
astroid==2.13.3
|
||||
asttokens==2.2.1
|
||||
async-generator==1.10
|
||||
async-timeout==4.0.2
|
||||
attrs==22.2.0
|
||||
APScheduler==3.10.0
|
||||
autocommand==2.2.2
|
||||
Automat==22.10.0
|
||||
Babel==2.11.0
|
||||
backcall==0.2.0
|
||||
bcrypt==4.0.1
|
||||
beautifulsoup4==4.11.1
|
||||
binwalk==2.3.3
|
||||
bitstring==3.1.9
|
||||
black==22.12.0
|
||||
bleach==6.0.0
|
||||
blessed==1.20.0
|
||||
blinker==1.5
|
||||
bottle==0.12.23
|
||||
bpython==0.23
|
||||
Brotli==1.0.9
|
||||
brotlicffi==1.0.9.2
|
||||
btrfsutil==6.1.3
|
||||
cairocffi==1.4.0
|
||||
CairoSVG==2.5.2
|
||||
cchardet==2.1.7
|
||||
certifi==2022.12.7
|
||||
cffi==1.15.1
|
||||
chardet==5.1.0
|
||||
charset-normalizer==3.0.1
|
||||
cheroot==9.0.0
|
||||
CherryPy==18.8.0
|
||||
click==8.1.3
|
||||
click-plugins==1.1.1
|
||||
cloudpickle==2.2.0
|
||||
colorama==0.4.6
|
||||
constantly==15.1.0
|
||||
construct==2.10.68
|
||||
contourpy==1.0.7
|
||||
crc32c==2.3
|
||||
cryptography==39.0.1
|
||||
css-parser==1.0.8
|
||||
cssselect==1.2.0
|
||||
cssselect2==0.7.0
|
||||
cupshelpers==1.0
|
||||
curtsies==0.4.1
|
||||
cwcwidth==0.1.8
|
||||
cycler==0.11.0
|
||||
Cython==0.29.33
|
||||
decorator==5.1.1
|
||||
defusedxml==0.7.1
|
||||
dill==0.3.6
|
||||
distlib==0.3.6
|
||||
distro==1.8.0
|
||||
Django==4.1.5
|
||||
dnspython==2.2.1
|
||||
docutils==0.19
|
||||
doit==0.36.0
|
||||
ecdsa==0.18.0
|
||||
email-validator==1.3.1
|
||||
esptool==4.4
|
||||
evdev==1.6.1
|
||||
executing==1.2.0
|
||||
fastapi==0.89.1
|
||||
fastjsonschema==2.16.2
|
||||
feedparser==6.0.10
|
||||
fido2==1.1.0
|
||||
filelock==3.8.2
|
||||
Flask==2.2.2
|
||||
flickr-api==0.7.5
|
||||
fonttools==4.38.0
|
||||
FoxDot==0.8.12
|
||||
frozenlist==1.3.3
|
||||
fusepy==3.0.1
|
||||
future==0.18.2
|
||||
gajim==1.6.1
|
||||
ghp-import==1.1.0
|
||||
gns3-gui==2.2.37
|
||||
gns3-server==2.2.37
|
||||
gps==3.25
|
||||
greenlet==2.0.2
|
||||
gssapi==1.8.2
|
||||
gufw==22.4.0
|
||||
gunicorn==20.1.0
|
||||
fastapi==0.91.0
|
||||
fritzconnection==1.11.0
|
||||
h11==0.14.0
|
||||
hiredis==2.0.0
|
||||
html2text==2020.1.16
|
||||
html5-parser==0.4.10
|
||||
html5lib==1.1
|
||||
httpcore==0.16.3
|
||||
httplib2==0.21.0
|
||||
httptools==0.5.0
|
||||
httpx==0.23.3
|
||||
hurry.filesize==0.9
|
||||
husl==4.0.3
|
||||
hyperlink==21.0.0
|
||||
idna==3.4
|
||||
ifaddr==0.2.0
|
||||
imagesize==1.4.1
|
||||
importlib-metadata==5.0.0
|
||||
importlib-resources==5.10.2
|
||||
incremental==22.10.0
|
||||
inflate64==0.3.1
|
||||
importlib-metadata==4.13.0
|
||||
inflect==6.0.2
|
||||
intelhex==2.3.0
|
||||
iotop==0.6
|
||||
ipython==8.9.0
|
||||
isodate==0.6.1
|
||||
isort==5.12.0
|
||||
itsdangerous==2.1.2
|
||||
jaraco.classes==3.2.3
|
||||
jaraco.collections==3.5.2
|
||||
jaraco.collections==3.8.0
|
||||
jaraco.context==4.3.0
|
||||
jaraco.functools==3.5.2
|
||||
jaraco.text==3.11.1
|
||||
jedi==0.18.2
|
||||
jeepney==0.8.0
|
||||
jimner==1.2.3
|
||||
Jinja2==3.1.2
|
||||
jsonschema==4.17.3
|
||||
keyring==23.11.0
|
||||
Kivy==2.1.0
|
||||
kiwisolver==1.4.4
|
||||
lazy-object-proxy==1.9.0
|
||||
lensfun==0.3.3
|
||||
libfdt==1.6.1
|
||||
libsigrok==0.5.2
|
||||
libvirt-python==9.0.0
|
||||
lit==15.0.7.dev0
|
||||
lockfile==0.12.2
|
||||
Logbook==1.5.3
|
||||
louis==3.24.0
|
||||
lxml==4.9.2
|
||||
Mako==1.2.4
|
||||
mallard-ducktype==1.0.2
|
||||
Markdown==3.3.7
|
||||
loguru==0.6.0
|
||||
markdown-it-py==2.1.0
|
||||
Markups==3.1.3
|
||||
MarkupSafe==2.1.2
|
||||
matplotlib==3.6.2
|
||||
matplotlib-inline==0.1.6
|
||||
mccabe==0.7.0
|
||||
mdurl==0.1.2
|
||||
mechanize==0.4.8
|
||||
mercurial==6.3.2
|
||||
meson==1.0.0
|
||||
micawber==0.5.4
|
||||
more-itertools==9.0.0
|
||||
mpy-utils==0.1.11
|
||||
msgpack==1.0.4
|
||||
multidict==6.0.3
|
||||
multivolumefile==0.2.3
|
||||
mutagen==1.46.0
|
||||
mypy==0.991
|
||||
mypy-extensions==0.4.3
|
||||
namcap==3.3.1
|
||||
natsort==8.2.0
|
||||
nbxmpp==4.0.1
|
||||
nemo-audio-tab==5.6.0
|
||||
nemo-pastebin==5.6.0
|
||||
netaddr==0.8.0
|
||||
netifaces==0.11.0
|
||||
netsnmp-python==1.0a1
|
||||
nftables==0.1
|
||||
Nikola==8.2.3
|
||||
Nuitka==1.4
|
||||
numpy==1.24.1
|
||||
oauth2==1.9.0.post1
|
||||
ordered-set==4.1.0
|
||||
orjson==3.8.5
|
||||
packaging==23.0
|
||||
paramiko==2.11.1
|
||||
parso==0.8.3
|
||||
pass-import==3.4
|
||||
pathspec==0.11.0
|
||||
pdftotext==2.2.2
|
||||
pexpect==4.8.0
|
||||
pickleshare==0.7.5
|
||||
piexif==1.1.3
|
||||
Pillow==9.4.0
|
||||
pkginfo==1.9.6
|
||||
platformdirs==2.6.2
|
||||
nanoid==2.0.0
|
||||
paramiko==3.0.0
|
||||
ply==3.11
|
||||
pmbootstrap==1.50.1
|
||||
pooch==1.6.0
|
||||
portend==3.1.0
|
||||
powerline-status==2.8.3
|
||||
precis-i18n==1.0.4
|
||||
prompt-toolkit==3.0.36
|
||||
protobuf==4.21.12
|
||||
psutil==5.9.4
|
||||
ptyprocess==0.7.0
|
||||
pudb==2022.1.3
|
||||
pure-eval==0.2.2
|
||||
pwquality==1.4.5
|
||||
py-cpuinfo==9.0.0
|
||||
py7zr==0.20.2
|
||||
pyaes==1.6.1
|
||||
pyalpm==0.10.6
|
||||
pyaml==21.10.1
|
||||
pyasn1==0.4.8
|
||||
pyasn1-modules==0.2.8
|
||||
pybcj==1.0.1
|
||||
pybind11==2.10.3
|
||||
pycairo==1.23.0
|
||||
pychm==0.8.6
|
||||
pycparser==2.21
|
||||
pycryptodome==3.17
|
||||
pycryptodomex==3.12.0
|
||||
pycups==2.0.1
|
||||
pycurl==7.45.2
|
||||
pycryptodomex==3.17
|
||||
pydantic==1.10.4
|
||||
pyelftools==0.29
|
||||
pyenchant==3.2.2
|
||||
pygal==3.0.0
|
||||
Pygments==2.14.0
|
||||
PyGObject==3.42.2
|
||||
PyGObject-stubs==2.2.0
|
||||
pyinotify==0.9.6
|
||||
pykeepass==4.0.3
|
||||
pylint==2.16.1
|
||||
PyMySQL==1.0.2
|
||||
PyNaCl==1.4.0
|
||||
PyOpenGL==3.1.6
|
||||
pyOpenSSL==23.0.0
|
||||
pyparsing==3.0.9
|
||||
pyppmd==1.0.0
|
||||
Pypubsub==4.0.3
|
||||
PyQt5==5.15.9
|
||||
PyQt5-sip==12.11.1
|
||||
PyQt6==6.4.2
|
||||
PyQt6-sip==13.4.1
|
||||
PyQt6-WebEngine==6.4.0
|
||||
pyqtgraph==0.13.1
|
||||
pyroute2==0.7.3
|
||||
pyrsistent==0.19.3
|
||||
PyRSS2Gen==1.1
|
||||
pyscard==2.0.5
|
||||
pyserial==3.5
|
||||
PySide2==5.15.8
|
||||
PyNaCl==1.5.0
|
||||
pysmi==0.3.4
|
||||
pysnmp==4.4.12
|
||||
python-axolotl==0.2.3
|
||||
python-axolotl-curve25519==0.4.1.post2
|
||||
python-daemon==2.3.0
|
||||
python-dateutil==2.8.2
|
||||
python-dotenv==0.21.1
|
||||
python-gammu==3.2.4
|
||||
python-magic==0.4.27
|
||||
python-markdown-math==0.8
|
||||
python-multipart==0.0.5
|
||||
python-yubico==1.3.3
|
||||
pytz==2022.7
|
||||
pytz==2022.7.1
|
||||
pytz-deprecation-shim==0.1.0.post0
|
||||
pyudev==0.24.0
|
||||
pyusb==1.2.1
|
||||
pyxdg==0.28
|
||||
PyYAML==6.0
|
||||
pyzmq==24.0.1
|
||||
pyzstd==0.15.3
|
||||
qrcode==7.3.1
|
||||
rangehttpserver==1.2.0
|
||||
rdflib==6.2.0
|
||||
readme-renderer==37.3
|
||||
redis==4.4.0
|
||||
reedsolo==1.7.0
|
||||
Reflector==2021.11.20.2.41.3
|
||||
regex==2022.10.31
|
||||
requests==2.28.1
|
||||
requests-toolbelt==0.10.1
|
||||
resolvelib==0.8.1
|
||||
ReText==8.0.0
|
||||
rfc3986==1.5.0
|
||||
requests==2.28.2
|
||||
rich==13.3.1
|
||||
rjsmin==1.2.1
|
||||
rrdtool==0.1.10
|
||||
rshell==0.0.31
|
||||
ruamel.yaml==0.17.21
|
||||
ruamel.yaml.clib==0.2.7
|
||||
s-tui==1.1.4
|
||||
scipy==1.10.0
|
||||
SCons==4.4.0
|
||||
SecretStorage==3.3.3
|
||||
Send2Trash==1.8.0
|
||||
sentry-sdk==1.15.0
|
||||
service-identity==21.1.0
|
||||
setproctitle==1.3.2
|
||||
sgmllib3k==1.0.0
|
||||
shiboken2==5.15.8
|
||||
shiv==1.0.3
|
||||
six==1.16.0
|
||||
skia-python @ file:///var/tmp/python-skia/src/skia_python-87.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
||||
smartypants==2.0.1
|
||||
sniffio==1.3.0
|
||||
snowballstemmer==2.2.0
|
||||
soupsieve==2.3.2.post1
|
||||
speedtest-cli==2.1.3
|
||||
Sphinx==5.3.0
|
||||
sphinxcontrib-applehelp==1.0.4
|
||||
sphinxcontrib-devhelp==1.0.2
|
||||
sphinxcontrib-htmlhelp==2.0.1
|
||||
sphinxcontrib-jsmath==1.0.1
|
||||
sphinxcontrib-qthelp==1.0.3
|
||||
sphinxcontrib-serializinghtml==1.1.5
|
||||
SQLAlchemy==1.4.44
|
||||
sqlparse==0.4.3
|
||||
stack-data==0.6.2
|
||||
starlette==0.22.0
|
||||
stevedore==4.1.1
|
||||
supervisor==4.2.5
|
||||
sysmon==1.0.0
|
||||
tasklib==2.5.1
|
||||
TBB==0.2
|
||||
tempora==5.2.0
|
||||
texttable==1.6.7
|
||||
thonny==4.0.2
|
||||
thrift==0.17.0
|
||||
tinycss2==1.2.1
|
||||
toml==0.10.2
|
||||
tomli==2.0.1
|
||||
tomlkit==0.11.6
|
||||
tornado==6.2
|
||||
traitlets==5.9.0
|
||||
trash-cli==0.22.10.20
|
||||
trove-classifiers==2023.2.9
|
||||
twine==4.0.2
|
||||
Twisted==22.10.0
|
||||
starlette==0.24.0
|
||||
syslog2==0.5.0
|
||||
tempora==5.2.1
|
||||
textual==0.10.1
|
||||
typer==0.7.0
|
||||
typing_extensions==4.4.0
|
||||
typogrify==2.0.7
|
||||
tzdata==2022.7
|
||||
tzlocal==4.2
|
||||
uc-micro-py==1.0.1
|
||||
ufw==0.36.1
|
||||
ujson==5.7.0
|
||||
Unidecode==1.3.6
|
||||
unrardll==0.1.5
|
||||
urh==2.9.4
|
||||
urllib3==1.26.12
|
||||
urwid==2.1.2
|
||||
urllib3==1.26.14
|
||||
uvicorn==0.20.0
|
||||
uvloop==0.17.0
|
||||
validate-pyproject==0.12.1
|
||||
virtualenv==20.17.1
|
||||
virtualenv-clone==0.5.7
|
||||
virtualenvwrapper==4.8.4
|
||||
vit==2.2.0
|
||||
watchdog==2.2.1
|
||||
watchfiles==0.18.1
|
||||
wcwidth==0.2.5
|
||||
webencodings==0.5.1
|
||||
websockets==10.4
|
||||
Werkzeug==2.2.2
|
||||
wrapt==1.14.1
|
||||
wxGlade==1.0.4
|
||||
wxPython==4.2.0
|
||||
xcffib==1.2.0
|
||||
Yapsy==1.12.2
|
||||
yarl==1.8.2
|
||||
youtube-dl==2021.12.17
|
||||
yt-dlg==1.8.4
|
||||
yubikey-manager==4.0.9
|
||||
xmpp2==0.4
|
||||
zc.lockfile==2.0
|
||||
zeroconf==0.39.4
|
||||
zipp==3.12.0
|
||||
zope.interface==5.5.2
|
||||
zxcvbn==4.4.28
|
||||
zipp==3.13.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue