@@ -41,9 +41,15 @@ def _create_snapshot(self, name, sys_type):
4141 slug = create_slug (name , date_str )
4242 tar_file = Path (self .config .path_backup , "{}.tar" .format (slug ))
4343
44+ # init object
4445 snapshot = Snapshot (self .config , self .loop , tar_file )
4546 snapshot .create (slug , name , date_str , sys_type )
4647
48+ # set general data
49+ snapshot .homeassistant_version = self .homeassistant .version
50+ snapshot .homeassistant_devices = self .config .homeassistant_devices
51+ snapshot .repositories = self .config .addons_repositories
52+
4753 return snapshot
4854
4955 async def reload (self ):
@@ -87,9 +93,6 @@ async def do_snapshot_full(self, name=""):
8793 await self ._lock .acquire ()
8894
8995 async with snapshot :
90- snapshot .homeassistant = self .homeassistant .version
91- snapshot .repositories = self .config .addons_repositories
92-
9396 # snapshot addons
9497 tasks = []
9598 for addon in self .addons .list_addons :
@@ -110,7 +113,7 @@ async def do_snapshot_full(self, name=""):
110113 self .snapshots [snapshot .slug ] = snapshot
111114 return True
112115
113- except (OSError , tarfile .TarError ) as err :
116+ except (OSError , ValueError , tarfile .TarError ) as err :
114117 _LOGGER .info ("Full-Snapshot %s error -> %s" , snapshot .slug , err )
115118 return False
116119
@@ -134,9 +137,6 @@ async def do_snapshot_partial(self, name="", addons=None, folders=None):
134137 await self ._lock .acquire ()
135138
136139 async with snapshot :
137- snapshot .homeassistant = self .homeassistant .version
138- snapshot .repositories = self .config .addons_repositories
139-
140140 # snapshot addons
141141 tasks = []
142142 for slug in addons :
@@ -158,7 +158,7 @@ async def do_snapshot_partial(self, name="", addons=None, folders=None):
158158 self .snapshots [snapshot .slug ] = snapshot
159159 return True
160160
161- except (OSError , tarfile .TarError ) as err :
161+ except (OSError , ValueError , tarfile .TarError ) as err :
162162 _LOGGER .info ("Partial-Snapshot %s error -> %s" , snapshot .slug , err )
163163 return False
164164
@@ -198,8 +198,10 @@ async def do_restore_full(self, snapshot):
198198 await snapshot .restore_folders ()
199199
200200 # start homeassistant restore
201+ self .config .homeassistant_devices = \
202+ snapshot .homeassistant_devices
201203 task_hass = self .loop .create_task (
202- self .homeassistant .update (snapshot .homeassistant ))
204+ self .homeassistant .update (snapshot .homeassistant_version ))
203205
204206 # restore repositories
205207 await self .addons .load_repositories (snapshot .repositories )
@@ -244,7 +246,7 @@ async def do_restore_full(self, snapshot):
244246 _LOGGER .info ("Full-Restore %s done" , snapshot .slug )
245247 return True
246248
247- except (OSError , tarfile .TarError ) as err :
249+ except (OSError , ValueError , tarfile .TarError ) as err :
248250 _LOGGER .info ("Full-Restore %s error -> %s" , slug , err )
249251 return False
250252
@@ -279,8 +281,10 @@ async def do_restore_partial(self, snapshot, homeassistant=False,
279281 await snapshot .restore_folders (folders )
280282
281283 if homeassistant :
284+ self .config .homeassistant_devices = \
285+ snapshot .homeassistant_devices
282286 tasks .append (self .homeassistant .update (
283- snapshot .homeassistant ))
287+ snapshot .homeassistant_version ))
284288
285289 for slug in addons :
286290 addon = self .addons .get (slug )
@@ -300,7 +304,7 @@ async def do_restore_partial(self, snapshot, homeassistant=False,
300304 _LOGGER .info ("Partial-Restore %s done" , snapshot .slug )
301305 return True
302306
303- except (OSError , tarfile .TarError ) as err :
307+ except (OSError , ValueError , tarfile .TarError ) as err :
304308 _LOGGER .info ("Partial-Restore %s error -> %s" , slug , err )
305309 return False
306310
0 commit comments