@@ -92,10 +92,10 @@ def __init__(
92
92
self ,
93
93
dataset : typing .Optional [libzfs .ZFSDataset ]= None ,
94
94
dataset_name : typing .Optional [str ]= None ,
95
- config_type : typing . Optional [ str ] = "auto" , # auto, json, zfs, ucl
96
- config_file : str = None , # 'config.json', 'config', etc
97
- logger : ' iocage.lib.Logger.Logger' = None ,
98
- zfs : ' iocage.lib.ZFS.ZFS' = None
95
+ config_type : str = "auto" , # auto, json, zfs, ucl
96
+ config_file : typing . Optional [ str ] = None , # 'config.json', 'config', etc
97
+ logger : typing . Optional [ iocage .lib .Logger .Logger ] = None ,
98
+ zfs : typing . Optional [ iocage .lib .ZFS .ZFS ] = None
99
99
) -> None :
100
100
101
101
self .logger = iocage .lib .helpers .init_logger (self , logger )
@@ -310,9 +310,9 @@ class DefaultResource(Resource):
310
310
311
311
def __init__ (
312
312
self ,
313
- dataset : libzfs .ZFSDataset = None ,
314
- logger : ' iocage.lib.Logger.Logger' = None ,
315
- zfs : ' iocage.lib.ZFS.ZFS' = None
313
+ dataset : typing . Optional [ libzfs .ZFSDataset ] = None ,
314
+ logger : typing . Optional [ iocage .lib .Logger .Logger ] = None ,
315
+ zfs : typing . Optional [ iocage .lib .ZFS .ZFS ] = None
316
316
) -> None :
317
317
318
318
Resource .__init__ (
@@ -335,21 +335,20 @@ def save(self) -> None:
335
335
336
336
class ListableResource (list , Resource ):
337
337
338
- _filters : ' iocage.lib.Filter.Terms' = None
338
+ _filters : typing . Optional [ iocage .lib .Filter .Terms ] = None
339
339
340
340
def __init__ (
341
341
self ,
342
- dataset : libzfs .ZFSDataset = None ,
343
- filters : ' iocage.lib.Filter.Terms' = None ,
344
- logger : ' iocage.lib.Logger.Logger' = None ,
345
- zfs : ' iocage.lib.ZFS.ZFS' = None ,
342
+ dataset : typing . Optional [ libzfs .ZFSDataset ] = None ,
343
+ filters : typing . Optional [ iocage .lib .Filter .Terms ] = None ,
344
+ logger : typing . Optional [ iocage .lib .Logger .Logger ] = None ,
345
+ zfs : typing . Optional [ iocage .lib .ZFS .ZFS ] = None ,
346
346
) -> None :
347
347
348
348
list .__init__ (self , [])
349
349
350
350
Resource .__init__ (
351
351
self ,
352
- config_type = None ,
353
352
dataset = dataset ,
354
353
logger = logger ,
355
354
zfs = zfs
@@ -367,13 +366,15 @@ def __iter__(
367
366
for child_dataset in self .dataset .children :
368
367
369
368
name = self ._get_asset_name_from_dataset (child_dataset )
370
- if self ._filters .match_key ("name" , name ) is not True :
369
+ if self ._filters is not None and \
370
+ self ._filters .match_key ("name" , name ) is not True :
371
371
# Skip all jails that do not even match the name
372
372
continue
373
373
374
374
# ToDo: Do not load jail if filters do not require to
375
375
resource = self ._get_resource_from_dataset (child_dataset )
376
- if self ._filters .match_resource (resource ):
376
+ if self ._filters is not None and \
377
+ self ._filters .match_resource (resource ):
377
378
yield resource
378
379
379
380
def _get_asset_name_from_dataset (
@@ -403,21 +404,19 @@ def filters(self):
403
404
@filters .setter
404
405
def filters (
405
406
self ,
406
- value : typing .Iterable [typing .Union [' iocage.lib.Filter.Term' , str ]]
407
+ value : typing .Iterable [typing .Union [iocage .lib .Filter .Term , str ]]
407
408
):
408
409
409
410
if isinstance (value , iocage .lib .Filter .Terms ):
410
411
self ._filters = value
411
412
else :
412
413
self ._filters = iocage .lib .Filter .Terms (value )
413
414
415
+ @abc .abstractmethod
414
416
def _create_resource_instance (
415
417
self ,
416
418
dataset : libzfs .ZFSDataset ,
417
419
* args ,
418
420
** kwargs
419
421
):
420
-
421
- raise NotImplementedError (
422
- "This needs to be implemented by the inheriting class"
423
- )
422
+ pass
0 commit comments