mirror of
https://github.com/home-assistant/supervisor.git
synced 2026-04-02 00:07:16 +01:00
2b9c8282a4b1b6e7d15a887a0b8d8dfa356134ce
* Include network storage mount configurations in backups When creating backups, now stores mount configurations (CIFS/NFS shares) including server, share, credentials, and other settings. When restoring from a backup, mount configurations are automatically restored. This fixes the issue where network storage definitions for backups were lost after restoring from a backup, requiring users to manually reconfigure their network storage mounts. Changes: - Add ATTR_MOUNTS schema to backup validation - Add store_mounts() method to save mount configs during backup - Add restore_mounts() method to restore mount configs during restore - Add MOUNTS stage to backup/restore job stages - Update BackupManager to call mount backup/restore methods - Add tests for mount backup/restore functionality Fixes home-assistant/core#148663 * Address reviewer feedback for mount backup/restore Changes based on PR review: - Store mount configs in encrypted mounts.tar instead of unencrypted backup metadata (security fix for passwords) - Separate mount restore into config save + async activation tasks (mounts activate in background, failures don't block restore) - Add replace_default_backup_mount parameter to control whether to overwrite existing default mount setting - Remove unnecessary broad exception handler for default mount setter - Simplify schema: ATTR_MOUNTS is now just a boolean flag since actual data is in the encrypted tar file - Update tests to reflect new async API and return types * Fix code review issues in mount backup/restore - Add bind mount handling for MEDIA and SHARE usage types in _activate_restored_mount() to mirror MountManager.create_mount() - Fix double save_data() call by using needs_save flag - Import MountUsage const for usage type checks * Add pylint disable comments for protected member access * Tighten broad exception handlers in mount backup restore Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address second round of reviewer feedback - Catch OSError separately and check errno.EBADMSG for drive health - Validate mounts JSON against SCHEMA_MOUNTS_CONFIG before importing - Use mount_data[ATTR_NAME] instead of .get("name", "unknown") - Overwrite existing mounts on restore instead of skipping - Move restore_mount/activate logic to MountManager (no more protected-access in Backup) - Drop unused replace_default_backup_mount parameter - Fix test_backup_progress: add mounts stage to expected events - Fix test_store_mounts: avoid create_mount which requires dbus * Rename mounts.tar to supervisor.tar for generic supervisor config Rename the inner tar from mounts.tar to supervisor.tar so it can hold multiple config files (mounts.json now, docker credentials later). Rename store_mounts/restore_mounts to store_supervisor_config/ restore_supervisor_config and update stage names accordingly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix pylint protected-access and test timeouts in backup tests - Add pylint disable comment for _mounts protected access in test_backup.py - Mock restore_supervisor_config in test_full_backup_to_mount and test_partial_backup_to_mount to avoid D-Bus mount activation during restore that causes timeouts in the test environment Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address agners review feedback - Change create_inner_tar() to create_tar() per #6575 - Remove "r" argument from SecureTarFile (now read-only by default) - Change warning to info for missing mounts tar (old backups won't have it) - Narrow exception handler to (MountError, vol.Invalid, KeyError, OSError) * Update supervisor/backups/backup.py * Address agners feedback: remove metadata flag, add mount feature check - Remove ATTR_SUPERVISOR boolean flag from backup metadata; instead check for physical presence of supervisor.tar (like folder backups) - Remove has_supervisor_config property - Always attempt supervisor config restore (tar existence check handles it) - Add HostFeature.MOUNT check in _activate_restored_mount before attempting to activate mounts on systems without mount support --------- Co-authored-by: Stefan Agner <stefan@agner.ch> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
Home Assistant Supervisor
First private cloud solution for home automation
Home Assistant (former Hass.io) is a container-based system for managing your Home Assistant Core installation and related applications. The system is controlled via Home Assistant which communicates with the Supervisor. The Supervisor provides an API to manage the installation. This includes changing network settings or installing and updating software.
Installation
Installation instructions can be found at https://home-assistant.io/getting-started.
Development
For small changes and bugfixes you can just follow this, but for significant changes open a RFC first. Development instructions can be found here.
Release
Releases are done in 3 stages (channels) with this structure:
- Pull requests are merged to the
mainbranch. - A new build is pushed to the
devstage. - Releases are published.
- A new build is pushed to the
betastage. - The
stable.jsonfile is updated. - The build that was pushed to
betawill now be pushed tostable.
Description
Languages
Python
95.5%
JavaScript
4.4%
