::: Triggering upgrade from branch master ::: Waiting 1 second for Fermentrack to send updates if triggered from the web... ::: Stopping circus... ok ::: Updating from git... From https://github.com/thorrak/fermentrack - [deleted] (none) -> origin/brewbubbles - [deleted] (none) -> origin/circus - [deleted] (none) -> origin/dependabot/pip/django-3.1.14 - [deleted] (none) -> origin/dockerless-compat - [deleted] (none) -> origin/experimental - [deleted] (none) -> origin/pyzmq HEAD is now at 6e08f25 Merge pull request #660 from thorrak/pyzmq Already on 'master' Your branch is behind 'origin/master' by 32 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Updating 6e08f25..f9b22ad Fast-forward .gitignore | 5 + app/models.py | 13 +- app/static/css/nord.fermentrack.css | 29 +++- app/templates/brewpi/temp_control_modal.html | 2 +- app/templates/device_dashboard.html | 4 +- app/templates/site_config.html | 5 + app/views.py | 16 +- backup_files/staging/README.md | 3 + backups/__init__.py | 0 backups/admin.py | 3 + backups/apps.py | 5 + backups/forms.py | 21 +++ backups/management/__init__.py | 0 backups/management/commands/__init__.py | 0 backups/management/commands/generate_backup.py | 21 +++ backups/management/commands/restore_backup.py | 53 ++++++ backups/migrations/0001_initial.py | 29 ++++ backups/migrations/0002_auto_20210428_0440.py | 17 ++ backups/migrations/__init__.py | 0 backups/models.py | 120 +++++++++++++ backups/tasks.py | 0 .../templates/backups/backup_confirm_delete.html | 26 +++ backups/templates/backups/backup_detail.html | 29 ++++ backups/templates/backups/backup_form.html | 40 +++++ backups/templates/backups/backup_list.html | 51 ++++++ backups/templates/backups/backup_restore.html | 45 +++++ backups/urls.py | 17 ++ backups/views.py | 152 +++++++++++++++++ compose/production/django/Dockerfile | 2 + docs/source/develop/changelog.rst | 24 +++ docs/source/installing/install.rst | 4 +- fermentrack_django/settings.py | 11 +- fermentrack_django/urls.py | 3 + firmware_flash/models.py | 6 - gravity/migrations/0005_brewbubbles_prep.py | 28 +++ gravity/models.py | 189 +++++++++++++++------ gravity/templates/gravity/gravity_dashboard.html | 4 +- .../templates/gravity/gravity_manage_ispindel.html | 2 +- gravity/templates/gravity/gravity_manage_tilt.html | 2 +- gravity/views.py | 2 +- requirements/base.txt | 8 + requirements/docker-production.txt | 2 +- 42 files changed, 908 insertions(+), 85 deletions(-) create mode 100644 backup_files/staging/README.md create mode 100644 backups/__init__.py create mode 100644 backups/admin.py create mode 100644 backups/apps.py create mode 100644 backups/forms.py create mode 100644 backups/management/__init__.py create mode 100644 backups/management/commands/__init__.py create mode 100644 backups/management/commands/generate_backup.py create mode 100644 backups/management/commands/restore_backup.py create mode 100644 backups/migrations/0001_initial.py create mode 100644 backups/migrations/0002_auto_20210428_0440.py create mode 100644 backups/migrations/__init__.py create mode 100644 backups/models.py create mode 100644 backups/tasks.py create mode 100644 backups/templates/backups/backup_confirm_delete.html create mode 100644 backups/templates/backups/backup_detail.html create mode 100644 backups/templates/backups/backup_form.html create mode 100644 backups/templates/backups/backup_list.html create mode 100644 backups/templates/backups/backup_restore.html create mode 100644 backups/urls.py create mode 100644 backups/views.py create mode 100644 gravity/migrations/0005_brewbubbles_prep.py ::: Updating requirements via pip3... Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/django/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/django/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/django/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/django/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/django/ Requirement already up-to-date: Django==3.0.14 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 1)) (3.0.14) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/configobj/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/configobj/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/configobj/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/configobj/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/configobj/ Requirement already up-to-date: configobj in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 2)) (5.0.6) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/pyzmq/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/pyzmq/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/pyzmq/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/pyzmq/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/pyzmq/ Requirement already up-to-date: pyzmq==22.3.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 5)) (22.3.0) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/pytz/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/pytz/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/pytz/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/pytz/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/pytz/ Requirement already up-to-date: pytz==2020.4 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 8)) (2020.4) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/sentry-sdk/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/sentry-sdk/ Collecting sentry-sdk Downloading sentry_sdk-1.5.8-py2.py3-none-any.whl (144 kB) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/django-constance/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/django-constance/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/django-constance/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/django-constance/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/django-constance/ Requirement already up-to-date: django-constance[database] in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 10)) (2.8.0) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/gitpython/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/gitpython/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/gitpython/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/gitpython/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/gitpython/ WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/gitpython/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/gitpython/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/gitpython/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/gitpython/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/gitpython/ Collecting GitPython Downloading GitPython-3.1.27-py3-none-any.whl (181 kB) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/zeroconf/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/zeroconf/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/zeroconf/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/zeroconf/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/zeroconf/ Requirement already up-to-date: zeroconf==0.28.7 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 12)) (0.28.7) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/circus/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/circus/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/circus/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/circus/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/circus/ Requirement already up-to-date: circus<0.17.0,>=0.16.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 13)) (0.16.1) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /simple/chaussette/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='www.piwheels.org', port=443): Read timed out. (read timeout=15)")': /simple/chaussette/