Skip to content

Development

DatuX edited this page Jan 24, 2022 · 15 revisions

These are instructions if you want to modify zfs-autobackup, or if you want to run zfs-autobackup directly from git.

Setting up virtual env

(this is optional, you can also install the requirements globally)

psy@ws1:~/zfs_autobackup$ python3 -m venv backupdev
psy@ws1:~/zfs_autobackup$ source backupdev/bin/activate
(backupdev) psy@ws1:~/zfs_autobackup$ pip install -r requirements.txt 
psy@ws1 ~/zfs_autobackup % python3 -m venv backupdev                 
...

Running zfs_autobackup

To run zfs_autobackup you can just access it as a python module:

(backupdev) psy@ws1:~/zfs_autobackup$ python -m zfs_autobackup.ZfsAutobackup  --version
ZfsAutobackup.py v3.2-alpha1 - (c)2021 E.H.Eefting (edwin@datux.nl)

Same goes for zfs-autoverify:

(backupdev) psy@ws1:~/zfs_autobackup$ python -m zfs_autobackup.ZfsAutoverify  --version
ZfsAutoverify.py v3.2-alpha1 - (c)2021 E.H.Eefting (edwin@datux.nl)

Running automated test suites

zfs-autobackup is a test driven design process, usually i start with creating the test and then writing the code.

The tests run against actual zfs commands and create a lot of temporary pools via loopback-images in the /tmp dir. Therefore the tests need root to run.

The tests also need ssh support via root@localhost, so it will create and install a sshkey if needed.

(backupdev) root@ws1:/home/psy/zfs_autobackup# ./tests/run_tests 
###########################################
#### Unit testing against:
#### Python                :3.8.10 (default, Nov 26 2021, 20:14:08)  [GCC 9.3.0]
#### ZFS userspace         :2.1.1-0york0~20.04
#### ZFS kernel            :2.1.1-0york0~20.04
#############################################
THIS TEST REQUIRES SSH TO LOCALHOST
test_exitcode (test_cmdpipe.TestCmdPipe)
test piped exitcodes ... ok
...