From b57b101b04d4ccfec04da8d067031b189a4a908d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 18 Mar 2018 17:00:39 +0100 Subject: [PATCH] storage: add 'rw' and 'revision_to_keep' setters QubesOS/qubes-issues#3256 --- qubesadmin/storage.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/qubesadmin/storage.py b/qubesadmin/storage.py index 40877dc..d5c7fd7 100644 --- a/qubesadmin/storage.py +++ b/qubesadmin/storage.py @@ -142,6 +142,12 @@ class Volume(object): self._fetch_info() return self._info['rw'] == 'True' + @rw.setter + def rw(self, value): + '''Set rw property''' + self._qubesd_call('Set.rw', str(value).encode('ascii')) + self._info = None + @property def snap_on_start(self): '''Create a snapshot from source on VM start.''' @@ -171,6 +177,12 @@ class Volume(object): self._fetch_info() return int(self._info['revisions_to_keep']) + @revisions_to_keep.setter + def revisions_to_keep(self, value): + '''Set revisions_to_keep property''' + self._qubesd_call('Set.revisions_to_keep', str(value).encode('ascii')) + self._info = None + def is_outdated(self): ''' Returns `True` if this snapshot of a source volume (for `snap_on_start`=True) is outdated. @@ -286,6 +298,20 @@ class Pool(object): ''' Storage pool driver ''' return self.config['driver'] + @property + def revisions_to_keep(self): + '''Number of revisions to keep around''' + return int(self.config['revisions_to_keep']) + + @revisions_to_keep.setter + def revisions_to_keep(self, value): + '''Set revisions_to_keep property''' + self.app.qubesd_call('dom0', + 'admin.pool.Set.revisions_to_keep', + self.name, + str(value).encode('ascii')) + self._config = None + @property def volumes(self): ''' Volumes managed by this pool '''