0.6.0
This commit is contained in:
@@ -355,6 +355,53 @@ class BCSUninstallView(HomeAssistantView):
|
|||||||
return web.json_response({"ok": False, "message": str(e) or "Uninstall failed"}, status=500)
|
return web.json_response({"ok": False, "message": str(e) or "Uninstall failed"}, status=500)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class BCSBackupsView(HomeAssistantView):
|
||||||
|
url = "/api/bcs/backups"
|
||||||
|
name = "api:bcs_backups"
|
||||||
|
requires_auth = True
|
||||||
|
|
||||||
|
def __init__(self, core: Any) -> None:
|
||||||
|
self.core: BCSCore = core
|
||||||
|
|
||||||
|
async def get(self, request: web.Request) -> web.Response:
|
||||||
|
repo_id = request.query.get("repo_id")
|
||||||
|
if not repo_id:
|
||||||
|
return web.json_response({"ok": False, "message": "Missing repo_id"}, status=400)
|
||||||
|
|
||||||
|
try:
|
||||||
|
backups = await self.core.list_repo_backups(repo_id)
|
||||||
|
return web.json_response({"ok": True, "repo_id": repo_id, "backups": backups}, status=200)
|
||||||
|
except Exception as e:
|
||||||
|
_LOGGER.exception("BCS list backups failed: %s", e)
|
||||||
|
return web.json_response({"ok": False, "message": str(e) or "List backups failed"}, status=500)
|
||||||
|
|
||||||
|
|
||||||
|
class BCSRestoreView(HomeAssistantView):
|
||||||
|
url = "/api/bcs/restore"
|
||||||
|
name = "api:bcs_restore"
|
||||||
|
requires_auth = True
|
||||||
|
|
||||||
|
def __init__(self, core: Any) -> None:
|
||||||
|
self.core: BCSCore = core
|
||||||
|
|
||||||
|
async def post(self, request: web.Request) -> web.Response:
|
||||||
|
repo_id = request.query.get("repo_id")
|
||||||
|
backup_id = request.query.get("backup_id")
|
||||||
|
if not repo_id:
|
||||||
|
return web.json_response({"ok": False, "message": "Missing repo_id"}, status=400)
|
||||||
|
if not backup_id:
|
||||||
|
return web.json_response({"ok": False, "message": "Missing backup_id"}, status=400)
|
||||||
|
|
||||||
|
try:
|
||||||
|
result = await self.core.restore_repo_backup(repo_id, backup_id)
|
||||||
|
return web.json_response(result, status=200)
|
||||||
|
except Exception as e:
|
||||||
|
_LOGGER.exception("BCS restore failed: %s", e)
|
||||||
|
return web.json_response({"ok": False, "message": str(e) or "Restore failed"}, status=500)
|
||||||
|
|
||||||
|
|
||||||
class BCSRestartView(HomeAssistantView):
|
class BCSRestartView(HomeAssistantView):
|
||||||
url = "/api/bcs/restart"
|
url = "/api/bcs/restart"
|
||||||
name = "api:bcs_restart"
|
name = "api:bcs_restart"
|
||||||
|
|||||||
Reference in New Issue
Block a user