@@ -54,6 +54,7 @@ class FilePool(qubes.storage.Pool):
54
54
driver = 'file'
55
55
56
56
def __init__ (self , revisions_to_keep = 1 , dir_path = None , ** kwargs ):
57
+ self ._revisions_to_keep = 0
57
58
super (FilePool , self ).__init__ (revisions_to_keep = revisions_to_keep ,
58
59
** kwargs )
59
60
assert dir_path , "No pool dir_path specified"
@@ -85,19 +86,27 @@ def init_volume(self, vm, volume_config):
85
86
volume_config ['revisions_to_keep' ] = 0
86
87
except KeyError :
87
88
pass
88
- finally :
89
- if 'revisions_to_keep' not in volume_config :
90
- volume_config ['revisions_to_keep' ] = self .revisions_to_keep
91
89
92
- if int (volume_config ['revisions_to_keep' ]) > 1 :
93
- raise NotImplementedError (
94
- 'FilePool supports maximum 1 volume revision to keep' )
90
+ if 'revisions_to_keep' not in volume_config :
91
+ volume_config ['revisions_to_keep' ] = self .revisions_to_keep
95
92
96
93
volume_config ['pool' ] = self
97
94
volume = FileVolume (** volume_config )
98
95
self ._volumes += [volume ]
99
96
return volume
100
97
98
+ @property
99
+ def revisions_to_keep (self ):
100
+ return self ._revisions_to_keep
101
+
102
+ @revisions_to_keep .setter
103
+ def revisions_to_keep (self , value ):
104
+ value = int (value )
105
+ if value > 1 :
106
+ raise NotImplementedError (
107
+ 'FilePool supports maximum 1 volume revision to keep' )
108
+ self ._revisions_to_keep = value
109
+
101
110
def destroy (self ):
102
111
pass
103
112
@@ -162,12 +171,24 @@ class FileVolume(qubes.storage.Volume):
162
171
def __init__ (self , dir_path , ** kwargs ):
163
172
self .dir_path = dir_path
164
173
assert self .dir_path , "dir_path not specified"
174
+ self ._revisions_to_keep = 0
165
175
super (FileVolume , self ).__init__ (** kwargs )
166
176
167
177
if self .snap_on_start :
168
178
img_name = self .source .vid + '-cow.img'
169
179
self .path_source_cow = os .path .join (self .dir_path , img_name )
170
180
181
+ @property
182
+ def revisions_to_keep (self ):
183
+ return self ._revisions_to_keep
184
+
185
+ @revisions_to_keep .setter
186
+ def revisions_to_keep (self , value ):
187
+ if int (value ) > 1 :
188
+ raise NotImplementedError (
189
+ 'FileVolume supports maximum 1 volume revision to keep' )
190
+ self ._revisions_to_keep = int (value )
191
+
171
192
def create (self ):
172
193
assert isinstance (self .size , int ) and self .size > 0 , \
173
194
'Volume size must be > 0'
0 commit comments