diff --git a/iocage/lib/Resource.py b/iocage/lib/Resource.py index 0cdd7df9..741382eb 100644 --- a/iocage/lib/Resource.py +++ b/iocage/lib/Resource.py @@ -23,6 +23,7 @@ # POSSIBILITY OF SUCH DAMAGE. import typing import os.path +import abc import libzfs @@ -41,7 +42,7 @@ import iocage.lib.Config.File # noqa: F401 -class Resource: +class Resource(metaclass=abc.ABCMeta): """ iocage resource @@ -124,6 +125,10 @@ def __init__( elif dataset is not None: self.dataset = dataset + @abc.abstractmethod + def destroy(self): + pass + @property def pool(self) -> libzfs.ZFSPool: return self.zfs.get_pool(self.dataset_name) @@ -321,6 +326,9 @@ def __init__( logger=logger ) + def destroy(self): + raise NotImplementedError("destroy unimplemented for DefaultResource") + def save(self) -> None: self.write_config(self.config.user_data) @@ -349,6 +357,9 @@ def __init__( self.filters = filters + def destroy(self): + raise NotImplementedError("destroy unimplemented for ListableResource") + def __iter__( self ) -> typing.Generator['iocage.lib.Resource.Resource', None, None]: