109 Commits

Author SHA1 Message Date
Erik Montnemery
234c4c1958
Move backup backup onboarding API to an onboarding platform (#142713)
* Move backup backup onboarding API to an onboarding platform

* Move additional test from onboarding to backup

* Remove backup tests from onboarding
2025-04-12 09:41:54 +02:00
Norbert Rittel
0eeb6b5fd5
Replace "Idle" with common state in backup, fix sentence-case (#141814)
* Replace "Idle" with common state in `backup`, fix sentence-case

* Update test_sensors.ambr
2025-03-30 14:56:36 +02:00
Michael
d954d04d12
Add diagnostics for Home Assistant Backup integration (#141407)
add diagnostics platform
2025-03-26 08:34:15 +01:00
Erik Montnemery
36d32eaabc
Improve backup exclude filters (#141311)
* Improve backup exclude filters

* Add comment
2025-03-25 09:52:45 +01:00
Erik Montnemery
3132cba51f
Improve tests of backup exclusion (#141303) 2025-03-24 18:10:08 +01:00
Michael
e96e95c32d
Add sensor platform to backup integration (#138663)
* add sensor platform to backup integration

* adjust namings, remove system integration flag

* add first simple test

* apply review comments

* fix test

* add sensor tests

* adjustements to use backup helper

* remove obsolet async_get_manager from init

* unsubscribe from events on entry unload

* add configuration_url

* fix doc string

* fix sensor tests

* mark async_unsubscribe as callback

* set integration_type service

* extend sensor test

* set integration_type on correct integration :)

* fix after online conflict resolution

* add sensor update tests

* simplify the sensor update tests

* avoid io during tests

* Add comment

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-24 12:54:16 +01:00
Martin Hjelmare
75cd32b742
Fix backup tests typing warnings (#141274) 2025-03-24 12:36:57 +01:00
Erik Montnemery
05c61b7ec3
Rename BackupManager last_non_idle_event to last_action_event (#140291)
* Rename BackupManager last_non_idle_event to last_action_event

* Update snapshots
2025-03-19 17:28:40 +01:00
Erik Montnemery
219b441be0
Don't allow creating backups if Home Assistant is not running (#139499)
* Don't allow creating backups if hass is not running

* Revert "Don't allow creating backups if hass is not running"

This reverts commit 1bf545eb25f20fc27fe161691a94531cba7e005c.

* Set backup manager to idle only after Home Assistant has started

* Update according to discussion, add tests

* Add more test
2025-03-10 14:40:08 +01:00
Erik Montnemery
6ba45a32c0
Update typing of BackupAgent.async_get_backup (#139923)
* Update typing of BackupAgent.async_get_backup

* Remove manual reset of frame helper
2025-03-06 17:25:34 +01:00
Erik Montnemery
e55757dc82
Simplify error handling in BackupAgent when a backup is not found (#139754)
Simplify error handling in BackupAgent when backup is not found
2025-03-04 15:56:12 +01:00
Erik Montnemery
228a4eb391
Improve error handling in CoreBackupReaderWriter (#139508) 2025-02-28 14:25:35 +01:00
Erik Montnemery
ee01aa73b8
Improve error message when failing to create backups (#139262)
* Improve error message when failing to create backups

* Check for expected error message in tests
2025-02-26 13:44:09 +01:00
Martin Hjelmare
27f7085b61
Create repair for configured unavailable backup agents (#137382)
* Create repair for configured not loaded agents

* Rework to repair issue

* Extract logic to config function

* Update test

* Handle empty agend ids config update

* Address review comment

* Update tests

* Address comment
2025-02-25 16:27:56 +01:00
Erik Montnemery
bf190a8a73
Add backup helper (#139199)
* Add backup helper

* Add hassio to stage 1

* Apply same changes to newly merged `webdav` and `azure_storage` to fix inflight conflict

* Address comments, add tests

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-25 10:19:41 +01:00
Erik Montnemery
351e594fe4
Add flag to backup store to track backup wizard completion (#138368)
* Add flag to backup store to track backup wizard completion

* Add comment

* Update hassio tests

* Update tests

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-24 17:14:47 +01:00
Erik Montnemery
0d8c449ff4
Validate hassio backup settings (#138880)
* Validate hassio backup settings

* Add snapshots

* Don't reset addon and folder settings

* Adapt to changes in BackupConfig.update
2025-02-20 16:06:33 +01:00
Erik Montnemery
ad7780291e
Correct backup date when reading a backup created by supervisor (#138860) 2025-02-19 22:40:03 +01:00
Erik Montnemery
b70c5710a9
Correct invalid automatic backup settings when loading from store (#138716)
* Correct invalid automatic backup settings when loading from store

* Improve docstring

* Improve tests
2025-02-19 16:24:30 +01:00
Erik Montnemery
22c634e626
Don't allow setting backup retention to 0 days or copies (#138771)
* Don't allow setting backup retention to 0 days or copies

* Add tests
2025-02-18 15:16:44 +01:00
Erik Montnemery
6ef1178a35
Use setup_backup_integration test helper in backup tests (#138362) 2025-02-12 09:49:01 +01:00
Erik Montnemery
a6c51440e5
Use test helper for creating a mocked backup agent in backup tests (#138312)
* Use test helper for creating a mocked backup agent in backup tests

* Adjust according to discussion
2025-02-12 08:55:16 +01:00
Erik Montnemery
8b3421deb7
Add test helper for creating a mocked backup agent (#138294)
* Add test helper for creating a mocked backup agent

* Address review comments
2025-02-11 16:21:24 +01:00
Erik Montnemery
10180cd464
Fix BackupManager.async_delete_backup (#138286) 2025-02-11 14:53:07 +01:00
Erik Montnemery
e1817d466e
Keep one backup per backup agent when executing retention policy (#138189)
* Keep one backup per backup agent when executing retention policy

* Add tests

* Use defaultdict instead of dict.setdefault

* Update hassio tests
2025-02-10 18:09:57 +02:00
Abílio Costa
c2bb376c43
Handle generic agent exceptions when getting and deleting backups (#138145)
* Handle generic agent exceptions when getting backups

* Update hassio test

* Update delete_backup
2025-02-10 01:31:55 +01:00
Erik Montnemery
2f116eab9e
Adjust logic for per-backup agent encryption (#137420) 2025-02-05 12:14:06 +01:00
Erik Montnemery
27b96160e2
Adjust backup filename scheme (#137424)
* Adjust backup filename scheme

* Update tests
2025-02-05 12:02:58 +01:00
Erik Montnemery
bfbf95f515
Allow creating backup if at least one agent is available (#137409) 2025-02-05 10:14:39 +01:00
Erik Montnemery
eb5036854f
Improve error handling when supervisor backups are deleted (#137331)
* Improve error handling when supervisor backups are deleted

* Move exception definitions
2025-02-04 19:49:55 +01:00
Erik Montnemery
5629b995ce
Include extra metadata in backup WS API (#137296)
* Include extra metadata in backup WS API

* Update onboarding backup view

* Update google_drive tests
2025-02-04 15:57:30 +01:00
Erik Montnemery
ca53d97a6d
Improve shutdown of _CipherBackupStreamer (#137257)
* Improve shutdown of _CipherBackupStreamer

* Catch the right exception
2025-02-04 12:24:30 +01:00
Erik Montnemery
e18dc063ba
Make backup file names more user friendly (#136928)
* Make backup file names more user friendly

* Strip backup name

* Strip backup name

* Underscores
2025-01-31 17:33:30 +01:00
Joost Lekkerkerker
c3b0bc3e0d
Show name of the backup agents in issue (#136925)
* Show name of the backup agents in issue

* Show name of the backup agents in issue

* Update homeassistant/components/backup/manager.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-01-30 18:15:54 +01:00
Erik Montnemery
bab616fa61
Fix handling of renamed backup files in the core writer (#136898)
* Fix handling of renamed backup files in the core writer

* Adjust mocking

* Raise BackupAgentError instead of KeyError in get_backup_path

* Add specific error indicating backup not found

* Fix tests

* Ensure backups are loaded

* Fix tests
2025-01-30 15:25:16 +01:00
Erik Montnemery
aca9607e2f
Bump backup store to version 1.3 (#136870)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2025-01-29 14:58:06 -06:00
Erik Montnemery
b2ec72d75f
Persist backup restore status after core restart (#136838)
* Persist backup restore status after core restart

* Don't blow up if restore result file can't be removed

* Update tests
2025-01-29 16:58:33 +01:00
Erik Montnemery
9a687e7f94
Add support for per-backup agent encryption flag (#136622)
* Add support for per-backup agent encryption flag

* Adjust

* Don't attempt decrypting an unprotected backup

* Address review comments

* Add some tests

* Add fixture

* Rename fixture

* Correct condition for when we should encrypt or decrypt

* Update tests in integrations

* Improve test coverage

* Fix onedrive tests

* Add test

* Improve cipher worker shutdown

* Improve test coverage

* Fix google_drive tests

* Move inner class _CipherBackupStreamer._WorkerStatus to module scope
2025-01-29 14:04:17 +01:00
Erik Montnemery
7249c02655
Add backup endpoints to the onboarding integration (#136051)
* Add backup endpoints to the onboarding integration

* Add backup as after dependency of onboarding

* Add test snapshots

* Fix stale docstrings

* Add utility function for getting the backup manager instance

* Return backup_id when uploading backup

* Change /api/onboarding/backup/restore to accept a JSON body

* Fix with_backup_manager
2025-01-29 12:32:18 +01:00
Erik Montnemery
abb58ec785
Include error reason in backup events (#136697)
* Include error reason in backup events

* Update hassio backup tests

* Sort code

* Remove catching BackupError in async_receive_backup
2025-01-28 14:44:09 +01:00
Erik Montnemery
b1abf50a31
Tag backups created when updating addon with supervisor.addon_update (#136690) 2025-01-28 13:48:28 +01:00
Michael
8300fd2de8
Introduce unique_id to BackupAgent (#136651)
* add unique_id to BackupAgent

* adjust tests
2025-01-28 12:06:03 +01:00
Martin Hjelmare
1a57992e78
Add restore backup tests (#136538)
* Test restore backup with busy manager

* Test restore backup with agent error

* Test restore backup with file error
2025-01-25 18:20:41 -06:00
Martin Hjelmare
dabcc6d55a
Clean up remaining backup manager tests (#136335) 2025-01-23 15:23:44 +01:00
Erik Montnemery
ea9be01c7c
Indicate in WS API when scheduling additional automatic backup (#136155) 2025-01-22 18:01:46 +00:00
Erik Montnemery
a2cbaef264
Prepare backup store to read version 2 (#136149) 2025-01-21 14:37:44 +01:00
Erik Montnemery
a60d2b69e3
Add service backup.create_automatic (#136152) 2025-01-21 12:40:54 +00:00
Erik Montnemery
fb4df00e3c
Add support for custom weekly backup schedule (#136079)
* Add support for custom weekly backup schedule

* Rename the new flag to custom_days

* Make the store change backwards compatible

* Improve comments
2025-01-21 08:27:41 +01:00
Erik Montnemery
760168de83
Allow backup writer to update progress during restore (#135975)
* Allow backup writer to update progress during restore

* Clarify comment
2025-01-20 12:58:17 +01:00
Erik Montnemery
43da828a51
Make the time for automated backups configurable (#135825)
* Make the time for automated backups configurable

* Store time as a string, use None to indicate default time

* Don't add jitter if the time is set by user

* Include time of next automatic backup in response to backup/info

* Update tests

* Rename recurrence to state

* Include scheduled backup time in backup/config/info response

* Address review comments

* Update cloud test

* Add test for store migration

* Address review comments
2025-01-20 12:57:46 +01:00