mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Move backup services to separate module (#146427)
This commit is contained in:
parent
91c3b43d7f
commit
ea6332ee42
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from homeassistant.config_entries import SOURCE_SYSTEM
|
from homeassistant.config_entries import SOURCE_SYSTEM
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import Platform
|
||||||
from homeassistant.core import HomeAssistant, ServiceCall
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import config_validation as cv, discovery_flow
|
from homeassistant.helpers import config_validation as cv, discovery_flow
|
||||||
from homeassistant.helpers.backup import DATA_BACKUP
|
from homeassistant.helpers.backup import DATA_BACKUP
|
||||||
from homeassistant.helpers.hassio import is_hassio
|
from homeassistant.helpers.hassio import is_hassio
|
||||||
@ -45,6 +45,7 @@ from .manager import (
|
|||||||
WrittenBackup,
|
WrittenBackup,
|
||||||
)
|
)
|
||||||
from .models import AddonInfo, AgentBackup, BackupNotFound, Folder
|
from .models import AddonInfo, AgentBackup, BackupNotFound, Folder
|
||||||
|
from .services import async_setup_services
|
||||||
from .util import suggested_filename, suggested_filename_from_name_date
|
from .util import suggested_filename, suggested_filename_from_name_date
|
||||||
from .websocket import async_register_websocket_handlers
|
from .websocket import async_register_websocket_handlers
|
||||||
|
|
||||||
@ -113,29 +114,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||||||
|
|
||||||
async_register_websocket_handlers(hass, with_hassio)
|
async_register_websocket_handlers(hass, with_hassio)
|
||||||
|
|
||||||
async def async_handle_create_service(call: ServiceCall) -> None:
|
async_setup_services(hass)
|
||||||
"""Service handler for creating backups."""
|
|
||||||
agent_id = list(backup_manager.local_backup_agents)[0]
|
|
||||||
await backup_manager.async_create_backup(
|
|
||||||
agent_ids=[agent_id],
|
|
||||||
include_addons=None,
|
|
||||||
include_all_addons=False,
|
|
||||||
include_database=True,
|
|
||||||
include_folders=None,
|
|
||||||
include_homeassistant=True,
|
|
||||||
name=None,
|
|
||||||
password=None,
|
|
||||||
)
|
|
||||||
|
|
||||||
async def async_handle_create_automatic_service(call: ServiceCall) -> None:
|
|
||||||
"""Service handler for creating automatic backups."""
|
|
||||||
await backup_manager.async_create_automatic_backup()
|
|
||||||
|
|
||||||
if not with_hassio:
|
|
||||||
hass.services.async_register(DOMAIN, "create", async_handle_create_service)
|
|
||||||
hass.services.async_register(
|
|
||||||
DOMAIN, "create_automatic", async_handle_create_automatic_service
|
|
||||||
)
|
|
||||||
|
|
||||||
async_register_http_views(hass)
|
async_register_http_views(hass)
|
||||||
|
|
||||||
|
36
homeassistant/components/backup/services.py
Normal file
36
homeassistant/components/backup/services.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
"""The Backup integration."""
|
||||||
|
|
||||||
|
from homeassistant.core import HomeAssistant, ServiceCall
|
||||||
|
from homeassistant.helpers.hassio import is_hassio
|
||||||
|
|
||||||
|
from .const import DATA_MANAGER, DOMAIN
|
||||||
|
|
||||||
|
|
||||||
|
async def _async_handle_create_service(call: ServiceCall) -> None:
|
||||||
|
"""Service handler for creating backups."""
|
||||||
|
backup_manager = call.hass.data[DATA_MANAGER]
|
||||||
|
agent_id = list(backup_manager.local_backup_agents)[0]
|
||||||
|
await backup_manager.async_create_backup(
|
||||||
|
agent_ids=[agent_id],
|
||||||
|
include_addons=None,
|
||||||
|
include_all_addons=False,
|
||||||
|
include_database=True,
|
||||||
|
include_folders=None,
|
||||||
|
include_homeassistant=True,
|
||||||
|
name=None,
|
||||||
|
password=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
async def _async_handle_create_automatic_service(call: ServiceCall) -> None:
|
||||||
|
"""Service handler for creating automatic backups."""
|
||||||
|
await call.hass.data[DATA_MANAGER].async_create_automatic_backup()
|
||||||
|
|
||||||
|
|
||||||
|
def async_setup_services(hass: HomeAssistant) -> None:
|
||||||
|
"""Register services."""
|
||||||
|
if not is_hassio(hass):
|
||||||
|
hass.services.async_register(DOMAIN, "create", _async_handle_create_service)
|
||||||
|
hass.services.async_register(
|
||||||
|
DOMAIN, "create_automatic", _async_handle_create_automatic_service
|
||||||
|
)
|
@ -138,6 +138,10 @@ async def setup_backup_integration(
|
|||||||
patch(
|
patch(
|
||||||
"homeassistant.components.backup.backup.is_hassio", return_value=with_hassio
|
"homeassistant.components.backup.backup.is_hassio", return_value=with_hassio
|
||||||
),
|
),
|
||||||
|
patch(
|
||||||
|
"homeassistant.components.backup.services.is_hassio",
|
||||||
|
return_value=with_hassio,
|
||||||
|
),
|
||||||
):
|
):
|
||||||
remote_agents = remote_agents or []
|
remote_agents = remote_agents or []
|
||||||
remote_agents_dict = {}
|
remote_agents_dict = {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user