libstorage-ng
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
storage::Btrfs Class Reference

Class to represent a btrfs filesystem https://en.wikipedia.org/wiki/Btrfs in the devicegraph. More...

#include <Btrfs.h>

Inheritance diagram for storage::Btrfs:
[legend]
Collaboration diagram for storage::Btrfs:
[legend]

Public Member Functions

BtrfsRaidLevel get_metadata_raid_level () const
 Get the metadata RAID level.
 
void set_metadata_raid_level (BtrfsRaidLevel metadata_raid_level)
 Set the metadata RAID level.
 
BtrfsRaidLevel get_data_raid_level () const
 Get the data RAID level.
 
void set_data_raid_level (BtrfsRaidLevel data_raid_level)
 Set the data RAID level.
 
std::vector< BtrfsRaidLevelget_allowed_metadata_raid_levels () const
 Get the allowed metadata RAID levels for the btrfs.
 
std::vector< BtrfsRaidLevelget_allowed_data_raid_levels () const
 Get the allowed data RAID levels for the btrfs.
 
bool has_quota () const
 Return whether quota is enabled for the btrfs.
 
void set_quota (bool quota)
 Enable or disable quota for the btrfs.
 
FilesystemUseradd_device (BlkDevice *blk_device)
 Add a block device to the btrfs.
 
void remove_device (BlkDevice *blk_device)
 Remove a block device from the btrfs.
 
BtrfsSubvolumeget_top_level_btrfs_subvolume ()
 Get the top-level subvolume.
 
const BtrfsSubvolumeget_top_level_btrfs_subvolume () const
 Get the top-level subvolume.
 
BtrfsSubvolumeget_default_btrfs_subvolume ()
 Get the default subvolume.
 
const BtrfsSubvolumeget_default_btrfs_subvolume () const
 Get the default subvolume.
 
void set_default_btrfs_subvolume (BtrfsSubvolume *btrfs_subvolume) const
 Set the default subvolume.
 
std::vector< BtrfsSubvolume * > get_btrfs_subvolumes ()
 Get all subvolumes of the btrfs.
 
std::vector< const BtrfsSubvolume * > get_btrfs_subvolumes () const
 Get all subvolumes of the btrfs.
 
BtrfsSubvolumefind_btrfs_subvolume_by_path (const std::string &path)
 Find a btrfs subvolume of the btrfs by its path.
 
const BtrfsSubvolumefind_btrfs_subvolume_by_path (const std::string &path) const
 Find a btrfs subvolume of the btrfs by its path.
 
BtrfsQgroupcreate_btrfs_qgroup (const BtrfsQgroup::id_t &id)
 Create a new btrfs qgroup on the btrfs.
 
std::vector< BtrfsQgroup * > get_btrfs_qgroups ()
 Get all btrfs qgroups of the btrfs.
 
std::vector< const BtrfsQgroup * > get_btrfs_qgroups () const
 Get all btrfs qgroups of the btrfs.
 
BtrfsQgroupfind_btrfs_qgroup_by_id (const BtrfsQgroup::id_t &id)
 Find a btrfs qgroup of the btrfs by its id.
 
const BtrfsQgroupfind_btrfs_qgroup_by_id (const BtrfsQgroup::id_t &id) const
 Find a btrfs qgroup of the btrfs by its id.
 
bool get_configure_snapper () const
 
void set_configure_snapper (bool configure)
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
virtual Btrfsclone () const override
 
 Btrfs (Impl *impl)
 
- Public Member Functions inherited from storage::BlkFilesystem
bool supports_label () const
 Return whether the filesystem supports a label.
 
unsigned int max_labelsize () const
 Return the maximal allowed filesystem label length.
 
const std::string & get_label () const
 Get the filesystem label.
 
void set_label (const std::string &label)
 Set the filesystem label.
 
bool supports_uuid () const
 Return whether the filesystem supports a UUID.
 
const std::string & get_uuid () const
 Get the filesystem UUID.
 
void set_uuid (const std::string &uuid)
 Set the filesystem UUID.
 
const std::string & get_mkfs_options () const
 Get extra options for the filesystem mkfs command.
 
void set_mkfs_options (const std::string &mkfs_options)
 Set extra options for the filesystem mkfs command.
 
bool supports_tune_options () const
 Checks whether the filesystem supports tune options.
 
const std::string & get_tune_options () const
 Get extra options for the filesystem tune command.
 
void set_tune_options (const std::string &tune_options)
 Set extra options for the filesystem tune command.
 
bool supports_shrink () const
 Checks whether shrinking the filesystem is supported.
 
bool supports_grow () const
 Checks whether growing the filesystem is supported.
 
bool supports_mounted_shrink () const
 Checks whether shrinking the filesystem while being mounted is supported.
 
bool supports_mounted_grow () const
 Checks whether growing the filesystem while being mounted is supported.
 
bool supports_unmounted_shrink () const
 Checks whether shrinking the filesystem while being unmounted is supported.
 
bool supports_unmounted_grow () const
 Checks whether growing the filesystem while being unmounted is supported.
 
void set_resize_info (const ResizeInfo &resize_info)
 Set the ResizeInfo.
 
ContentInfo detect_content_info () const
 Detect the content info of the filesystem.
 
void set_content_info (const ContentInfo &content_info)
 Set the ResizeInfo.
 
std::vector< BlkDevice * > get_blk_devices ()
 Get underlying blk devices of the blk filesystem.
 
std::vector< const BlkDevice * > get_blk_devices () const
 Get underlying blk devices of the blk filesystem.
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
- Public Member Functions inherited from storage::Filesystem
FsType get_type () const
 Get the filesystem type.
 
bool has_space_info () const
 
SpaceInfo detect_space_info () const
 So far only supported for Nfs.
 
void set_space_info (const SpaceInfo &space_info)
 Set the SpaceInfo.
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
- Public Member Functions inherited from storage::Mountable
bool supports_mount () const
 Checks whether the library supports mounting the mountable.
 
MountPointcreate_mount_point (const std::string &path)
 Create a new mount point for the mountable with path.
 
bool has_mount_point () const
 Checks whether the mountable has a mount point.
 
MountPointget_mount_point ()
 Returns the mount point of the mountable.
 
const MountPointget_mount_point () const
 Returns the mount point of the mountable.
 
void remove_mount_point ()
 Removes the mount point from the mountable.
 
bool has_filesystem () const
 Checks whether the mountable has a filesystem.
 
Filesystemget_filesystem ()
 Return the filesystem of the mountable.
 
const Filesystemget_filesystem () const
 Return the filesystem of the mountable.
 
MountByType get_mount_by () const ST_DEPRECATED
 
void set_mount_by (MountByType mount_by) ST_DEPRECATED
 
const std::vector< std::string > & get_mount_opts () const ST_DEPRECATED
 
void set_mount_opts (const std::vector< std::string > &mount_opts) ST_DEPRECATED
 
const std::vector< std::string > & get_fstab_options () const ST_DEPRECATED
 
void set_fstab_options (const std::vector< std::string > &mount_opts) ST_DEPRECATED
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
- Public Member Functions inherited from storage::Device
sid_t get_sid () const
 Return the storage id (sid) of the device.
 
bool operator== (const Device &rhs) const
 
bool operator!= (const Device &rhs) const
 
Devicecopy_to_devicegraph (Devicegraph *devicegraph) const
 Copies the device to the devicegraph.
 
bool exists_in_devicegraph (const Devicegraph *devicegraph) const
 Checks if the device exists in the devicegraph.
 
bool exists_in_probed () const
 Checks if the device exists in the probed devicegraph.
 
bool exists_in_staging () const
 Checks if the device exists in the staging devicegraph.
 
bool exists_in_system () const
 Checks if the device exists in the system devicegraph.
 
std::string get_displayname () const
 
ResizeInfo detect_resize_info () const
 Detect the resize info of the device.
 
bool has_children () const
 
size_t num_children () const
 
bool has_parents () const
 
size_t num_parents () const
 
std::vector< Device * > get_children ()
 
std::vector< const Device * > get_children () const
 
std::vector< Device * > get_children (View view)
 Get all children of the device.
 
std::vector< const Device * > get_children (View view) const
 Get all children of the device.
 
std::vector< Device * > get_parents ()
 
std::vector< const Device * > get_parents () const
 
std::vector< Device * > get_parents (View view)
 Get all parents of the device.
 
std::vector< const Device * > get_parents (View view) const
 Get all parents of the device.
 
std::vector< Device * > get_siblings (bool itself)
 
std::vector< const Device * > get_siblings (bool itself) const
 
std::vector< Device * > get_descendants (bool itself)
 
std::vector< const Device * > get_descendants (bool itself) const
 
std::vector< Device * > get_descendants (bool itself, View view)
 
std::vector< const Device * > get_descendants (bool itself, View view) const
 
std::vector< Device * > get_ancestors (bool itself)
 
std::vector< const Device * > get_ancestors (bool itself) const
 
std::vector< Device * > get_leaves (bool itself)
 
std::vector< const Device * > get_leaves (bool itself) const
 
std::vector< Device * > get_roots (bool itself)
 
std::vector< const Device * > get_roots (bool itself) const
 
std::vector< Holder * > get_in_holders ()
 
std::vector< const Holder * > get_in_holders () const
 
std::vector< Holder * > get_out_holders ()
 
std::vector< const Holder * > get_out_holders () const
 
void remove_descendants () ST_DEPRECATED
 
void remove_descendants (View view)
 Remove all descendants of the device.
 
const std::map< std::string, std::string > & get_userdata () const
 Return the userdata of the device.
 
void set_userdata (const std::map< std::string, std::string > &userdata)
 Set the userdata of the device.
 
std::string get_name_sort_key () const
 Get a sort-key based on the device name.
 
Devicegraphget_devicegraph ()
 Return the devicegraph the device belongs to.
 
const Devicegraphget_devicegraph () const
 Return the devicegraph the device belongs to.
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
virtual Deviceclone () const =0
 
void save (xmlNode *node) const ST_DEPRECATED
 

Static Public Member Functions

static Btrfscreate (Devicegraph *devicegraph)
 Create a device of type Btrfs.
 
static Btrfsload (Devicegraph *devicegraph, const xmlNode *node)
 
static std::vector< Btrfs * > get_all (Devicegraph *devicegraph)
 Get all Btrfses.
 
static std::vector< const Btrfs * > get_all (const Devicegraph *devicegraph)
 Get all Btrfses.
 
- Static Public Member Functions inherited from storage::BlkFilesystem
static std::vector< BlkFilesystem * > get_all (Devicegraph *devicegraph)
 Get all BlkFilesystems.
 
static std::vector< const BlkFilesystem * > get_all (const Devicegraph *devicegraph)
 Get all BlkFilesystems.
 
static std::vector< const BlkFilesystem * > find_by_label (const Devicegraph *devicegraph, const std::string &label)
 Find filesystems by label.
 
static std::vector< const BlkFilesystem * > find_by_uuid (const Devicegraph *devicegraph, const std::string &uuid)
 Find filesystems by UUID.
 
- Static Public Member Functions inherited from storage::Filesystem
static std::vector< Filesystem * > get_all (Devicegraph *devicegraph)
 Get all Filesystems.
 
static std::vector< const Filesystem * > get_all (const Devicegraph *devicegraph)
 Get all Filesystems.
 
- Static Public Member Functions inherited from storage::Mountable
static std::vector< Mountable * > get_all (Devicegraph *devicegraph)
 Get all Mountables.
 
static std::vector< const Mountable * > get_all (const Devicegraph *devicegraph)
 Get all Mountables.
 
static bool is_valid_path (FsType fs_type, const std::string &path)
 Checks whether the path is valid.
 
- Static Public Member Functions inherited from storage::Device
static std::vector< Device * > get_all (Devicegraph *devicegraph)
 Get all Devices.
 
static std::vector< const Device * > get_all (const Devicegraph *devicegraph)
 Get all Devices.
 
static bool compare_by_sid (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by sid.
 
static bool compare_by_name (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by name.
 

Additional Inherited Members

- Protected Member Functions inherited from storage::BlkFilesystem
 BlkFilesystem (Impl *impl)
 
- Protected Member Functions inherited from storage::Filesystem
 Filesystem (Impl *impl)
 
- Protected Member Functions inherited from storage::Mountable
 Mountable (Impl *impl)
 
- Protected Member Functions inherited from storage::Device
 Device (Impl *impl)
 
void create (Devicegraph *devicegraph) ST_DEPRECATED
 Create a device in the devicegraph.
 
void load (Devicegraph *devicegraph) ST_DEPRECATED
 

Detailed Description

Class to represent a btrfs filesystem https://en.wikipedia.org/wiki/Btrfs in the devicegraph.

Member Function Documentation

◆ add_device()

FilesystemUser * storage::Btrfs::add_device ( BlkDevice blk_device)

Add a block device to the btrfs.

Exceptions
WrongNumberOfChildren

◆ clone()

virtual Btrfs * storage::Btrfs::clone ( ) const
overridevirtual

Implements storage::Device.

◆ create()

static Btrfs * storage::Btrfs::create ( Devicegraph devicegraph)
static

Create a device of type Btrfs.

Usually this function is not called directly. Instead BlkDevice::create_blk_filesystem() is called.

See also
Device::create(Devicegraph*)

◆ create_btrfs_qgroup()

BtrfsQgroup * storage::Btrfs::create_btrfs_qgroup ( const BtrfsQgroup::id_t id)

Create a new btrfs qgroup on the btrfs.

Creating level 0 qgroups is not supported. Quota must be enabled.

Exceptions
Exception

◆ find_btrfs_qgroup_by_id() [1/2]

BtrfsQgroup * storage::Btrfs::find_btrfs_qgroup_by_id ( const BtrfsQgroup::id_t id)

Find a btrfs qgroup of the btrfs by its id.

Exceptions
BtrfsQgroupNotFoundById

◆ find_btrfs_qgroup_by_id() [2/2]

const BtrfsQgroup * storage::Btrfs::find_btrfs_qgroup_by_id ( const BtrfsQgroup::id_t id) const

Find a btrfs qgroup of the btrfs by its id.

Exceptions
BtrfsQgroupNotFoundById

◆ find_btrfs_subvolume_by_path() [1/2]

BtrfsSubvolume * storage::Btrfs::find_btrfs_subvolume_by_path ( const std::string &  path)

Find a btrfs subvolume of the btrfs by its path.

Exceptions
BtrfsSubvolumeNotFoundByPath

◆ find_btrfs_subvolume_by_path() [2/2]

const BtrfsSubvolume * storage::Btrfs::find_btrfs_subvolume_by_path ( const std::string &  path) const

Find a btrfs subvolume of the btrfs by its path.

Exceptions
BtrfsSubvolumeNotFoundByPath

◆ get_all()

static std::vector< const Btrfs * > storage::Btrfs::get_all ( const Devicegraph devicegraph)
static

Get all Btrfses.

◆ get_allowed_data_raid_levels()

std::vector< BtrfsRaidLevel > storage::Btrfs::get_allowed_data_raid_levels ( ) const

Get the allowed data RAID levels for the btrfs.

So far, this depends on the number of devices. Levels for which mkfs.btrfs warns that they are not recommended are not included here. Additionally DEFAULT is allowed when creating a btrfs.

See also
BtrfsRaidLevel

◆ get_allowed_metadata_raid_levels()

std::vector< BtrfsRaidLevel > storage::Btrfs::get_allowed_metadata_raid_levels ( ) const

Get the allowed metadata RAID levels for the btrfs.

So far, this depends on the number of devices. Levels for which mkfs.btrfs warns that they are not recommended are not included here. Additionally DEFAULT is allowed when creating a btrfs.

See also
BtrfsRaidLevel

◆ get_btrfs_qgroups()

std::vector< const BtrfsQgroup * > storage::Btrfs::get_btrfs_qgroups ( ) const

Get all btrfs qgroups of the btrfs.

◆ get_btrfs_subvolumes()

std::vector< const BtrfsSubvolume * > storage::Btrfs::get_btrfs_subvolumes ( ) const

Get all subvolumes of the btrfs.

◆ get_data_raid_level()

BtrfsRaidLevel storage::Btrfs::get_data_raid_level ( ) const

Get the data RAID level.

See also
BtrfsRaidLevel

◆ get_default_btrfs_subvolume()

const BtrfsSubvolume * storage::Btrfs::get_default_btrfs_subvolume ( ) const

Get the default subvolume.

◆ get_metadata_raid_level()

BtrfsRaidLevel storage::Btrfs::get_metadata_raid_level ( ) const

Get the metadata RAID level.

See also
BtrfsRaidLevel

◆ get_top_level_btrfs_subvolume()

const BtrfsSubvolume * storage::Btrfs::get_top_level_btrfs_subvolume ( ) const

Get the top-level subvolume.

◆ remove_device()

void storage::Btrfs::remove_device ( BlkDevice blk_device)

Remove a block device from the btrfs.

Not supported for btrfs already existing on disk.

Exceptions
Exception

◆ set_data_raid_level()

void storage::Btrfs::set_data_raid_level ( BtrfsRaidLevel  data_raid_level)

Set the data RAID level.

Not supported for btrfs already existing on disk.

See also
BtrfsRaidLevel

◆ set_default_btrfs_subvolume()

void storage::Btrfs::set_default_btrfs_subvolume ( BtrfsSubvolume btrfs_subvolume) const

Set the default subvolume.

See also
get_default_btrfs_subvolume()

◆ set_metadata_raid_level()

void storage::Btrfs::set_metadata_raid_level ( BtrfsRaidLevel  metadata_raid_level)

Set the metadata RAID level.

Not supported for btrfs already existing on disk.

See also
BtrfsRaidLevel

◆ set_quota()

void storage::Btrfs::set_quota ( bool  quota)

Enable or disable quota for the btrfs.

When enabling quota, qgroups and qgroup relations are created for the btrfs. This is done so that no qgroup related actions will be done during commit (unless further changes are done). If quota was disabled during probing, the qgroups are created like btrfs would do. If quota was enabled during probing, the qgroups from probing are restored.

When disabling quota, all qgroups and qgroup relations of the btrfs are removed.

Exceptions
Exception

The documentation for this class was generated from the following file: