Skip to content

Drive SMART data checker, cleaner and system image loader.

License

Notifications You must be signed in to change notification settings

WEEE-Open/pesto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

P.E.S.T.O.

Progetto di Erase Smart con Taralli Olistici

Hard disk SMART data checker, cleaner and system image loader.
Successor of Turbofresa and redeemer.

Is constituted by:

  • B.A.S.I.L.I.C.O. "Badblocks Asincrono Smart Incredibile Lancio Istantaneo di Cannoli Olistico", the server
  • P.I.N.O.L.O. "Procacciatore di Informazioni Notevoli e Operazioni Laboriose Online", the client

Functioning

PESTO is a utility software that allows you to make some operations on hard disks or SSDs, like:

  • ERASE: Wipe all data on the selected drive.
  • SMART: Check SMART data of the selected drive to give an estimate of the operating status of the device.
  • CANNOLO: Load an operating system image on the selected drive.
  • LOAD TO TARALLO: Utility that can communicate with TARALLO, sending all the necessary data to add the selected device to the inventory.

pinolo.py is the user interface of the software with which the user can perform all the operations on the drives. This program by itself will be useless if not coupled with the server basilico.py. This one is the heart of PESTO: it performs all the commands that the user send to him, constantly sending back informations to the client that shows them to the user in a more human friendly way.

It's highly discouraged to use the client outside a local network for security reasons.
There is no authentication and no encryption of any message.

Development

You can edit the user interface in two ways:

  • Graphics editing: use pyqt5-tools designer and open the .ui file that you need to modify
  • Functional editing: edit code in pinolo.py

To build UI files:

make ui

Compiled UI files are located inside the ui folder.

Generate documentation

To build documentation

sphinx-apidox -o docs .
cd docs
make html

If sphinx is not installed in your system, install it in Pesto venv

source ./venv/bin/activate
pip install sphinx sphinx-rtd-theme

Installation

To install pesto in the system:

git clone https://github.com/WEEE-Open/pesto.git
cd pesto
./INSTALL.sh

The script installs the software in /opt/pesto and generates the virtual environment with the necessary dependencies.

Server configuration

The server parses configuration in this order:

  1. /etc/basilico.conf
  2. ~/.conf/WEEE-Open/basilico.conf
  3. .env in the same directory as the script
  4. Environment variables

The configuration file is a list of environment variables, here's an example:

# IP where the server listens, 127.0.0.1 by default, use 0.0.0.0 to listen on all interfaces
IP=0.0.0.0
# Port, default 1030.
PORT=1030
# Log level: DEBUG, INFO, WARNING, ERROR. Default INFO.
LOGLEVEL=DEBUG
# Start as a daemon or a normal process, boolean, not very well tested. Default false.
DAEMONIZE=0
# Lock file for the daemon. Default /var/run/basilico.pid.
LOCKFILE_PATH=/var/run/basilico.pid
# Tarallo URL for pytarallo. Default none (tarallo will not be used)
TARALLO_URL=http://127.0.0.1:8080
# Tarallo token, default none. This is an example token.
TARALLO_TOKEN=yoLeCHmEhNNseN0BlG0s3A:ksfPYziGg7ebj0goT0Zc7pbmQEIYvZpRTIkwuscAM_k
# If true, no destructive actions will be performed: no badblocks, no trimming, no cannolo. Default false.
TEST_MODE=1

Immediately after the installation, you may need to copy the .env.example file in the same path as .env. Then you can edit the .env file to set your configuration. Generally, the default configuration is good but to use TARALLO features you have to set the TARALLO_URL and TARALLO_TOKEN environment variables.

Screenshots

Screenshot_20220923_104046 Screenshot_20220923_104143 Screenshot_20220923_104157 Screenshot_20220923_104400

Credits and license

Icons made by Freepik from www.flaticon.com
Icons made by Roundicons from www.flaticon.com
Background vector created by starline - www.freepik.com

Everything else licensed as in the LICENSE file.