99from ..const import (
1010 ATTR_NAME , ATTR_SLUG , ATTR_DATE , ATTR_ADDONS , ATTR_REPOSITORIES ,
1111 ATTR_HOMEASSISTANT , ATTR_VERSION , ATTR_SIZE , ATTR_FOLDERS , ATTR_TYPE ,
12- ATTR_DEVICES )
12+ ATTR_DEVICES , ATTR_SNAPSHOTS )
1313
1414_LOGGER = logging .getLogger (__name__ )
1515
@@ -47,23 +47,39 @@ def _extract_snapshot(self, request):
4747 raise RuntimeError ("Snapshot not exists" )
4848 return snapshot
4949
50- @staticmethod
51- def _addons_list ( snapshot ):
52- """Generate a list with addons data ."""
53- data = []
54- for addon_data in snapshot . addons :
55- data .append ({
56- ATTR_SLUG : addon_data [ ATTR_SLUG ] ,
57- ATTR_NAME : addon_data [ ATTR_NAME ] ,
58- ATTR_VERSION : addon_data [ ATTR_VERSION ] ,
50+ @api_process
51+ async def list ( self , request ):
52+ """Return snapshot list."""
53+ data_snapshots = []
54+ for snapshot in self . snapshots . list_snapshots :
55+ data_snapshots .append ({
56+ ATTR_SLUG : snapshot . slug ,
57+ ATTR_NAME : snapshot . name ,
58+ ATTR_DATE : snapshot . date ,
5959 })
60- return data
60+
61+ return {
62+ ATTR_SNAPSHOTS : data_snapshots ,
63+ }
64+
65+ @api_process
66+ def reload (self , request ):
67+ """Reload snapshot list."""
68+ return asyncio .shield (self .snapshots .reload (), loop = self .loop )
6169
6270 @api_process
6371 async def info (self , request ):
6472 """Return snapshot info."""
6573 snapshot = self ._extract_snapshot (request )
6674
75+ data_addons = []
76+ for addon_data in snapshot .addons :
77+ data_addons .append ({
78+ ATTR_SLUG : addon_data [ATTR_SLUG ],
79+ ATTR_NAME : addon_data [ATTR_NAME ],
80+ ATTR_VERSION : addon_data [ATTR_VERSION ],
81+ })
82+
6783 return {
6884 ATTR_SLUG : snapshot .slug ,
6985 ATTR_TYPE : snapshot .sys_type ,
@@ -74,7 +90,7 @@ async def info(self, request):
7490 ATTR_VERSION : snapshot .homeassistant_version ,
7591 ATTR_DEVICES : snapshot .homeassistant_devices ,
7692 },
77- ATTR_ADDONS : self . _addons_list ( snapshot ) ,
93+ ATTR_ADDONS : data_addons ,
7894 ATTR_REPOSITORIES : snapshot .repositories ,
7995 ATTR_FOLDERS : snapshot .folders ,
8096 }
0 commit comments