Skip to content

Add support for cloud backups in Core #7684

Add support for cloud backups in Core

Add support for cloud backups in Core #7684

Triggered via pull request November 20, 2024 21:38
Status Failure
Total duration 6m 46s
Artifacts

ci.yaml

on: pull_request
Prepare Python dependencies
13s
Prepare Python dependencies
Run tests Python 3.12.7
6m 14s
Run tests Python 3.12.7
Check ruff-format
20s
Check ruff-format
Check ruff
21s
Check ruff
Check Dockerfile
5s
Check Dockerfile
Check executables
14s
Check executables
Check JSON
18s
Check JSON
Check pylint
32s
Check pylint
Process test coverage
0s
Process test coverage
Fit to window
Zoom out
Zoom in

Annotations

7 errors
Run tests Python 3.12.7: tests/api/test_mounts.py#L314
test_api_update_dbus_error_mount_remains assert "Could not ge...^^^^^^^^\\n']" == 'Could not mo... due to: fail' - Could not mount backup_test due to: fail + Could not get mount unit due to: The service interface raised an error: pop from empty list. + [' File "src/dbus_fast/message_bus.py", line 863, in dbus_fast.message_bus.BaseMessageBus._process_message\n', ' File "src/dbus_fast/message_bus.py", line 882, in dbus_fast.message_bus.BaseMessageBus._callback_method_handler\n', ' File "src/dbus_fast/message_bus.py", line 891, in dbus_fast.message_bus.BaseMessageBus._callback_method_handler\n', ' File "/home/runner/work/supervisor/supervisor/tests/dbus_service_mocks/base.py", line 64, in track_calls\n return func(self, *args)\n ^^^^^^^^^^^^^^^^^\n', ' File "/home/runner/work/supervisor/supervisor/tests/dbus_service_mocks/systemd.py", line 713, in GetUnit\n unit = self.response_get_unit.pop(0)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n']
Run tests Python 3.12.7: tests/backups/test_manager.py#L629
test_full_backup_to_mount AssertionError: assert PosixPath('/tmp/pytest-of-runner/pytest-0/test_full_backup_to_mount0/mounts/backup_test') in {None: PosixPath('/tmp/pytest-of-runner/pytest-0/test_full_backup_to_mount0/backup'), '.cloud_backup': PosixPath('/tmp...ore/backup'), 'backup_test': PosixPath('/tmp/pytest-of-runner/pytest-0/test_full_backup_to_mount0/mounts/backup_test')} + where {None: PosixPath('/tmp/pytest-of-runner/pytest-0/test_full_backup_to_mount0/backup'), '.cloud_backup': PosixPath('/tmp...ore/backup'), 'backup_test': PosixPath('/tmp/pytest-of-runner/pytest-0/test_full_backup_to_mount0/mounts/backup_test')} = <supervisor.backups.manager.BackupManager object at 0x7f2a0706ad80>.backup_locations + where <supervisor.backups.manager.BackupManager object at 0x7f2a0706ad80> = <supervisor.coresys.CoreSys object at 0x7f2a07069400>.backups
Run tests Python 3.12.7: tests/backups/test_manager.py#L674
test_partial_backup_to_mount AssertionError: assert PosixPath('/tmp/pytest-of-runner/pytest-0/test_partial_backup_to_mount0/mounts/backup_test') in {None: PosixPath('/tmp/pytest-of-runner/pytest-0/test_partial_backup_to_mount0/backup'), '.cloud_backup': PosixPath('/.../backup'), 'backup_test': PosixPath('/tmp/pytest-of-runner/pytest-0/test_partial_backup_to_mount0/mounts/backup_test')} + where {None: PosixPath('/tmp/pytest-of-runner/pytest-0/test_partial_backup_to_mount0/backup'), '.cloud_backup': PosixPath('/.../backup'), 'backup_test': PosixPath('/tmp/pytest-of-runner/pytest-0/test_partial_backup_to_mount0/mounts/backup_test')} = <supervisor.backups.manager.BackupManager object at 0x7f2a06da7020>.backup_locations + where <supervisor.backups.manager.BackupManager object at 0x7f2a06da7020> = <supervisor.coresys.CoreSys object at 0x7f2a06da54f0>.backups
Run tests Python 3.12.7: tests/backups/test_manager.py#L726
test_backup_to_down_mount_error AssertionError: assert PosixPath('/tmp/pytest-of-runner/pytest-0/test_backup_to_down_mount_erro0/mounts/backup_test') in {None: PosixPath('/tmp/pytest-of-runner/pytest-0/test_backup_to_down_mount_erro0/backup'), '.cloud_backup': PosixPath(...ackup'), 'backup_test': PosixPath('/tmp/pytest-of-runner/pytest-0/test_backup_to_down_mount_erro0/mounts/backup_test')} + where {None: PosixPath('/tmp/pytest-of-runner/pytest-0/test_backup_to_down_mount_erro0/backup'), '.cloud_backup': PosixPath(...ackup'), 'backup_test': PosixPath('/tmp/pytest-of-runner/pytest-0/test_backup_to_down_mount_erro0/mounts/backup_test')} = <supervisor.backups.manager.BackupManager object at 0x7f2a06707440>.backup_locations + where <supervisor.backups.manager.BackupManager object at 0x7f2a06707440> = <supervisor.coresys.CoreSys object at 0x7f2a06705940>.backups
Run tests Python 3.12.7: tests/docker/test_homeassistant.py#L50
test_homeassistant_start AssertionError: assert [{'Target': '...slave'}}, ...] == [{'Target': '...slave'}}, ...] At index 7 diff: {'Target': PurePosixPath('/backup'), 'Source': '/mnt/data/supervisor/backup', 'Type': <MountType.BIND: 'bind'>, 'ReadOnly': False, 'BindOptions': {'Propagation': 'rslave'}} != {'Target': '/etc/pulse/client.conf', 'Source': '/mnt/data/supervisor/tmp/homeassistant_pulse', 'Type': 'bind', 'ReadOnly': True} Left contains 2 more items, first extra item: {'Target': '/etc/asound.conf', 'Source': '/mnt/data/supervisor/audio/asound', 'Type': <MountType.BIND: 'bind'>, 'ReadOnly': True} Full diff: [ { 'BindOptions': { 'ReadOnlyNonRecursive': True, }, 'ReadOnly': True, 'Source': '/dev', 'Target': '/dev', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/run/dbus', 'Target': '/run/dbus', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/run/udev', 'Target': '/run/udev', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': False, 'Source': '/mnt/data/supervisor/homeassistant', 'Target': '/config', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/mnt/data/supervisor/ssl', 'Target': '/ssl', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'BindOptions': { 'Propagation': 'rslave', }, 'ReadOnly': False, 'Source': '/mnt/data/supervisor/share', 'Target': '/share', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'BindOptions': { 'Propagation': 'rslave', }, 'ReadOnly': False, 'Source': '/mnt/data/supervisor/media', 'Target': '/media', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, + }, + { + 'BindOptions': { + 'Propagation': 'rslave', + }, + 'ReadOnly': False, + 'Source': '/mnt/data/supervisor/backup', + 'Target': PurePosixPath('/backup'), + 'Type': <MountType.BIND: 'bind'>, + }, + { + 'ReadOnly': False, + 'Source': '/mnt/data/supervisor/core/backup', + 'Target': '/cloud_backup', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/mnt/data/supervisor/tmp/homeassistant_pulse', 'Target': '/etc/pulse/client.conf', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/mnt/data/supervisor/audio/external', 'Target': '/run/audio', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/mnt/data/supervisor/audio/asound', 'Target': '/etc/asound.conf', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, { 'ReadOnly': True, 'Source': '/etc/machine-id', 'Target': '/etc/machine-id', - 'Type': 'bind', + 'Type': <MountType.BIND: 'bind'>, }, ]
Run tests Python 3.12.7: tests/resolution/fixup/test_mount_execute_remove.py#L50
test_fixup supervisor.exceptions.MountError: Could not get active state of mount due to: The service interface raised an error: pop from empty list. [' File "src/dbus_fast/service.py", line 589, in dbus_fast.service.ServiceInterface._get_property_value\n', ' File "/home/runner/work/supervisor/supervisor/tests/dbus_service_mocks/systemd_unit.py", line 222, in ActiveState\n return self.active_state.pop(0)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n']
Run tests Python 3.12.7
Process completed with exit code 1.