libioc.Datasets module¶
ioc datasets module.
-
class
libioc.Datasets.Datasets(sources=None, zfs=None, logger=None)[source]¶ Bases:
dictAll source datasets managed by libioc.
Automatically detects activated iocage datasets from ZFS pool properties or sysrc lines in
/etc/rc.conf.Operations that should be performed on selected iocage datasets, are typically achieved by filtering Datasets. Only the matching and activated datasets are then taken into account and thus result in a performance benefit.
The iocage dataset configuration from sysrc wins over ZFS pools activated by the org.freebsd.ioc:active property on their pool root dataset.
-
ZFS_POOL_ACTIVE_PROPERTY= 'org.freebsd.ioc:active'¶
-
activate(mountpoint=None)[source]¶ Activate the root pool and set the given mountpoint.
- Parameters
mountpoint (
Optional[AbsolutePath]) – seeactivate_pool()- Return type
None
-
activate_pool(pool, mountpoint=None)[source]¶ Activate the given pool and set its mountpoint.
Pool activation follows the traditional way of setting a ZFS property on the pool that other iocage variants will detect.
The mechanism cannot be combined with iocage datasets defined in /etc/rc.conf, so that using the Multi-Pool feature is not possible. When attemptig to activate a pool on a system with such configuration an ActivationFailed error is raised.
- Parameters
pool (
ZFSPool) – Target of the iocage activation on which an iocage dataset is created on the top level (e.g. zfs create <pool>/iocage)mountpoint (
Optional[AbsolutePath]) – The desired mountpoint for the iocage dataset.
- Return type
None
-
property
active_pool¶ Return the currently active iocage pool.
- Return type
ZFSPool
-
attach_root_datasets(source_name, root_datasets)[source]¶ Attach another RootDatasets object to the iocage scope.
- Parameters
source_name (
str) – Name of the source dataset.root_datasets (
RootDatasets) – Instance ofRootDatasets.
- Return type
None
-
attach_source(source_name, dataset_identifier)[source]¶ Attach a source by its DatasetIdentifier to the iocage scope.
- Parameters
source_name (
str) – Name of the source dataset.dataset_identifier (
Union[str,ZFSDataset]) – ZFSDataset structure or dataset name representing the source.
- Return type
None
-
find_root_datasets(dataset_name)[source]¶ Return the RootDatasets instance containing the dataset.
- Return type
-
find_root_datasets_name(dataset_name)[source]¶ Return the name of the source containing the matching dataset.
- Return type
str
-
get_root_source(source_name=None)[source]¶ Get the root source with a certain name.
When the source name is empty, the main source is returned.
- Return type
-
-
class
libioc.Datasets.FilteredDatasets(datasets, source_filters=None, zfs=None, logger=None)[source]¶ Bases:
libioc.Datasets.DatasetsA wrapper around Datasets that limits access to certain root datasets.
- Parameters
datasets (
Datasets) – The Datasets hosts instancesource_filters (
Optional[Tuple[str, …]]) –No filters were applied when unset. The names contained in the Tuple are matched against the dataset names specified in rc.conf.
$ sysrc ioc_dataset_main="zroot/iocage" $ ioc list --source main
zfs (
Optional[ZFS]) – The shared ZFS object.logger (
Optional[Logger]) – The shared logger instance.
-
property
source_filters¶ Return the active source filters or None.
- Return type
Optional[Tuple[str, …]]
-
exception
libioc.Datasets.RCConfEmptyException[source]¶ Bases:
ExceptionException for internal use.
-
class
libioc.Datasets.RootDatasets(root_dataset, zfs=None, logger=None)[source]¶ Bases:
objectiocage core dataset abstraction.
Defined by a ZFSDataset and a given name 1, the RootDataset provides access to the iocage source datasets. The ability to handle multiple source datasets, allows nested iocage usage in other jails.
$ sysrc ioc_dataset_ioc="zroot/iocage" ioc_dataset_ioc: -> zroot/iocage $ ioc_dataset_nvme: -> nvme/my-dataset/iocage ioc_dataset_nvme: -> nvme/my-dataset/iocage
When more than one dataset is enabled, Resource names are displayed including their RootDataset prefix (e.g.
ioc/myjail).- 1
The ZFS property activated default name is
ioc
-
property
base¶ Get or create the iocage ZFS basejail releases dataset.
- Return type
ZFSDataset
-
property
jails¶ Get or create the iocage jails dataset.
- Return type
ZFSDataset
-
property
pkg¶ Get or create the pkg cache.
- Return type
ZFSDataset
-
property
releases¶ Get or create the iocage releases dataset.
- Return type
ZFSDataset