├── .gitignore ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── docker-compose.yml ├── pictures ├── legacypc │ ├── 10_diskusej.png │ ├── 11_diskpart.png │ ├── 12_thrmperf.png │ ├── 13_netwaddr.png │ ├── 1_loginmod.png │ ├── 2_overview.png │ ├── 3_insights.png │ ├── 4_proclist.png │ ├── 5_procinfo.png │ ├── 6_cpuuperc.png │ ├── 7_cpuucloc.png │ ├── 8_memoperc.png │ └── 9_battperc.png ├── mainicon.svg └── modernpc │ ├── 01_logepage.png │ ├── 02_dashbord.png │ ├── 03_systdata.png │ ├── 04_proclist.png │ ├── 05_contlist.png │ ├── 06_contdata.png │ ├── 07_contstat.png │ ├── 08_contlogs.png │ ├── 09_conthtop.png │ ├── 10_dockstat.png │ ├── 11_imejlist.png │ ├── 12_imejdata.png │ ├── 13_imejhist.png │ ├── 14_ntwklist.png │ ├── 15_procinfo.png │ ├── 16_ntwkdata.png │ ├── 17_volmlist.png │ └── 18_volmdata.png ├── requirements.txt ├── setup.py ├── src └── svfrontend │ ├── __init__.py │ ├── main.py │ ├── static │ ├── css3 │ │ ├── adminlte.css │ │ ├── custfrmt.css │ │ └── fontsome.css │ ├── font │ │ ├── brcn │ │ │ ├── bdit.ttf │ │ │ ├── bold.ttf │ │ │ ├── ital.ttf │ │ │ └── rlar.ttf │ │ ├── fasm │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.svg │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.svg │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.svg │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff │ │ │ └── fa-solid-900.woff2 │ │ ├── mono │ │ │ ├── bdit.ttf │ │ │ ├── bold.ttf │ │ │ ├── ital.ttf │ │ │ └── rlar.ttf │ │ └── plex │ │ │ ├── bdit.ttf │ │ │ ├── bold.ttf │ │ │ ├── ital.ttf │ │ │ └── rlar.ttf │ ├── imgs │ │ ├── datalogo.png │ │ └── mainicon.svg │ └── jscn │ │ ├── adminlte.js │ │ ├── ansiconv.js │ │ ├── bootstrap.bundle.js │ │ ├── contdata.js │ │ ├── conthtop.js │ │ ├── contlist.js │ │ ├── contlogs.js │ │ ├── contstat.js │ │ ├── dashbard.js │ │ ├── dockstat.js │ │ ├── extermjs.js │ │ ├── globthem.js │ │ ├── imejdata.js │ │ ├── imejlist.js │ │ ├── imejrevs.js │ │ ├── jqryknob.js │ │ ├── jquery.min.js │ │ ├── logepage.js │ │ ├── mtrcdata.js │ │ ├── mtrclist.js │ │ ├── ntwkdata.js │ │ ├── ntwklist.js │ │ ├── proclist.js │ │ ├── smoothie.js │ │ ├── systdata.js │ │ ├── termpage.js │ │ ├── volmdata.js │ │ └── volmlist.js │ └── templates │ ├── conthtop.html │ ├── continfo.html │ ├── contlist.html │ ├── contlogs.html │ ├── contstat.html │ ├── dashbard.html │ ├── dockstat.html │ ├── e403page.html │ ├── e404page.html │ ├── e500page.html │ ├── frameset.html │ ├── imejinfo.html │ ├── imejlist.html │ ├── imejrevs.html │ ├── logepage.html │ ├── manifest.json │ ├── mtrcdata.html │ ├── mtrclist.html │ ├── ntwkinfo.html │ ├── ntwklist.html │ ├── proclist.html │ ├── systdata.html │ ├── termpage.html │ ├── volminfo.html │ └── volmlist.html └── svfrontend.spec /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.8-alpine 2 | ENV PYTHONUNBUFFERED=1 3 | COPY requirements.txt requirements.txt 4 | RUN pip install -r requirements.txt 5 | COPY src/svfrontend svfrontend 6 | WORKDIR /svfrontend 7 | EXPOSE 9696 8 | ENTRYPOINT ["python3", "main.py", "-p", "9696", "-4"] 9 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include src/svfrontend/templates * 2 | recursive-include src/svfrontend/static * -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Reference frontend service for SuperVisor written in Python
8 | 9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
Attributes | 106 |Data | 107 |
---|---|
Comment | 112 |${comt} | 113 |
Created on | 116 |${cret} | 117 |
Created by | 120 |${crby} | 121 |
Identity | 124 |${iden} | 125 |
Size | 128 |${imsz} bytes | 129 |
Attributes | 117 |Data | 118 |
---|---|
Identity | 123 |${indx} | 124 |
Endpoint ID | 127 |${data["attrs"]["Containers"][indx]["EndpointID"]} | 128 |
MAC address | 131 |${data["attrs"]["Containers"][indx]["MacAddress"]} | 132 |
IPv4 address | 135 |${data["attrs"]["Containers"][indx]["IPv4Address"]} | 136 |
IPv6 address | 139 |${data["attrs"]["Containers"][indx]["IPv6Address"]} | 140 |
UID | 47 |PID | 48 |PPID | 49 |C | 50 |STIME | 51 |TTY | 52 |TIME | 53 |CMD | 54 |
---|
0 container(s) found.
35 | {% endblock %} 36 | {% block extramod %} 37 |42 | The log output is supposed to have a white background even when dark theme is employed as the logs make use 43 | of ANSI-UP 44 | JavaScript library to render all ANSI sequences like they are shown in the terminal but we are yet to find 45 | how they can be overridden to accommodate custom CSS additions to them. Please feel free to contribute to the 46 | project in 47 | this issue 48 | if you seem to have an idea of how it can be implemented. 49 |
50 |Attributes | 58 |Data | 59 |
---|
# | 75 |Specifications | 76 |
---|
Attributes | 92 |Data | 93 |
---|
Notifications | 109 |
---|
Attributes | 134 |Data | 135 |
---|
59 | The resource you are trying to access requires you to login using valid credentials. Please try again after entering correct credentials. 60 |
61 |SuperVisor {{ frntvers }}
67 |59 | We could not find the resource you were looking for. Meanwhile, you may either return to dashboard or go back to the page where you came from. 60 |
61 |SuperVisor {{ frntvers }}
67 |59 | An inexplicable error occured at the server end, which you would get to know more about if you check out the logs. 60 |
61 |SuperVisor {{ frntvers }}
67 |0 image(s) found.
35 | {% endblock %} 36 | {% block pagejsas %} 37 | 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /src/svfrontend/templates/imejrevs.html: -------------------------------------------------------------------------------- 1 | 21 | 22 | {% extends "frameset.html" %} 23 | {% block onldscpt %} 24 | revision_list_operations('{{ imejiden }}'); 25 | {% endblock %} 26 | {% block headelem %} 27 |0 revision(s) found.
38 | {% endblock %} 39 | {% block extramod %} 40 |Log in to start your session
52 | 80 |82 | {{ frntvers }} 83 |
84 |39 | Metrics provide a way for passive statistics monitoring of a container station to address the cases when 40 | information about the station is required in a situation or time when active monitoring cannot be possible. 41 | The performance readings are stored every after the frequency period until the record retention limit is 42 | reached and then once that happens, the older records are moved out in favour of the newer records. Please 43 | note that the records are retained from the event of booting of the container station and once rebooted, 44 | the records from the last uptime would be lost. The default parameters for metrics gathering allow for 45 | storing records every after 10 seconds for a retention limit of 2160 records - providing total coverage of 46 | 6 hours. These parameters can be easily changed when setting up the driver service. 47 |
48 |MID | 90 |Data | 91 |
---|
Attributes | 54 |Data | 55 |
---|---|
Identity | 60 |UNAVAILABLE | 61 |
Created at | 64 |UNAVAILABLE | 65 |
Scope | 68 |UNAVAILABLE | 69 |
Driver | 72 |UNAVAILABLE | 73 |
Enable IPv6? | 76 |UNAVAILABLE | 77 |
Internal? | 80 |UNAVAILABLE | 81 |
Attachable? | 84 |UNAVAILABLE | 85 |
Ingress? | 88 |UNAVAILABLE | 89 |
Config only? | 92 |UNAVAILABLE | 93 |
Attributes | 120 |Data | 121 |
---|
0 network(s) found.
35 | {% endblock %} 36 | {% block pagejsas %} 37 | 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /src/svfrontend/templates/termpage.html: -------------------------------------------------------------------------------- 1 | 21 | 22 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
55 | 0
56 | 1
57 | 2
58 | 3
59 | 4
60 | 5
61 | 6
62 | 7
63 | 8
64 | 9
65 | 0
66 | 1
67 | 2
68 | 3
69 | 4
70 | 5
71 | 6
72 | 7
73 | 8
74 | 9
75 | 0
76 | 1
77 | 2
78 | 3
79 |
80 | 01234567890123456789012345678901234567890123456789012345678901234567890123456789
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | Attributes | 45 |Data | 46 |
---|---|
Identity | 51 |UNAVAILABLE | 52 |
Created at | 55 |UNAVAILABLE | 56 |
Driver | 59 |UNAVAILABLE | 60 |
Mount point | 63 |UNAVAILABLE | 64 |
Scope | 67 |UNAVAILABLE | 68 |
0 volume(s) found.
35 | {% endblock %} 36 | {% block pagejsas %} 37 | 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /svfrontend.spec: -------------------------------------------------------------------------------- 1 | %global srcname supervisor-frontend-service 2 | 3 | Name: svfrontend 4 | Version: 1.2.0b 5 | Release: 1%{?dist} 6 | Summary: SuperVisor Frontend Service 7 | 8 | License: GPLv3+ 9 | URL: http://github.com/t0xic0der/%{srcname} 10 | Source0: https://github.com/t0xic0der/%{srcname}/releases/download/v1.2.0-beta/%{name}-%{version}.tar.gz 11 | 12 | BuildArch: noarch 13 | 14 | BuildRequires: python3-devel 15 | BuildRequires: python3-setuptools 16 | 17 | %description 18 | Reference frontend service for SuperVisor written in Flask 19 | 20 | %prep 21 | %autosetup 22 | 23 | %build 24 | %py3_build 25 | 26 | %install 27 | %py3_install 28 | 29 | %files 30 | %license LICENSE 31 | %doc README.md 32 | %{_bindir}/%{name} 33 | %{python3_sitelib}/%{name}-*.egg-info/ 34 | %{python3_sitelib}/%{name}/ 35 | 36 | %changelog 37 | * Sun Apr 11 2021 Akashdeep Dhar