libstorage-ng
|
An abstract Block Device. More...
#include <BlkDevice.h>
Public Member Functions | |
const std::string & | get_name () const |
void | set_name (const std::string &name) |
const Region & | get_region () const |
void | set_region (const Region ®ion) |
unsigned long long | get_size () const |
Returns the size of the block device. | |
void | set_size (unsigned long long size) |
Set the size of the block device. More... | |
std::string | get_size_string () const |
Returns the size of the block device as a localised string. More... | |
const Topology & | get_topology () const |
Get the topology. | |
void | set_topology (const Topology &topology) |
Set the topology. More... | |
bool | is_active () const |
bool | is_read_only () const |
Return whether the block device is read-only. More... | |
const std::string & | get_sysfs_name () const |
const std::string & | get_sysfs_path () const |
const std::vector< std::string > & | get_udev_paths () const |
Return the names of the udev by-path links of the blk device. More... | |
const std::vector< std::string > & | get_udev_ids () const |
Return the names of the udev by-id links of the blk device. More... | |
bool | is_usable_as_blk_device () const |
Checks whether the blk device is in general usable as a blk device. More... | |
RemoveInfo | detect_remove_info () const |
Check whether the device can be removed. More... | |
const std::string & | get_dm_table_name () const |
Return device-mapper table name (dm-table-name for short). More... | |
void | set_dm_table_name (const std::string &dm_table_name) |
Set the device-mapper table name (dm-table-name for short). More... | |
BlkFilesystem * | create_blk_filesystem (FsType fs_type) |
Creates a block filesystem on the block device. More... | |
bool | has_blk_filesystem () const |
Return whether the block device has a block filesystem. | |
BlkFilesystem * | get_blk_filesystem () |
Return the block filesystem of the block device. More... | |
const BlkFilesystem * | get_blk_filesystem () const |
Return the block filesystem of the block device. More... | |
BlkFilesystem * | create_filesystem (FsType fs_type) ST_DEPRECATED |
Creates a block filesystem on the block device. More... | |
bool | has_filesystem () const ST_DEPRECATED |
Return whether the block device has a block filesystem. More... | |
BlkFilesystem * | get_filesystem () ST_DEPRECATED |
Return the block filesystem of the block device. More... | |
const BlkFilesystem * | get_filesystem () const ST_DEPRECATED |
Return the block filesystem of the block device. More... | |
Encryption * | create_encryption (const std::string &dm_table_name) ST_DEPRECATED |
Creates an encryption device on the blk device. More... | |
Encryption * | create_encryption (const std::string &dm_table_name, EncryptionType type) |
Creates an encryption device on the blk device. More... | |
void | remove_encryption () |
Removes an encryption device on the blk device. More... | |
bool | has_encryption () const |
Return whether the block device has an Encryption. | |
Encryption * | get_encryption () |
Return the Encryption of the block device. More... | |
const Encryption * | get_encryption () const |
Return the Encryption of the block device. More... | |
Bcache * | create_bcache (const std::string &name) |
Creates a Bcache on the blk device. More... | |
bool | has_bcache () const |
Return whether the block device has a BCache. | |
Bcache * | get_bcache () |
Return the Bcache of the block device. More... | |
const Bcache * | get_bcache () const |
Return the Bcache of the block device. More... | |
BcacheCset * | create_bcache_cset () |
Creates a BcacheCset on the blk device. More... | |
bool | has_bcache_cset () const |
Return whether the block device has a BcacheCset. | |
BcacheCset * | get_bcache_cset () |
Return the BcacheCset of the block device. More... | |
const BcacheCset * | get_bcache_cset () const |
Return the BcacheCset of the block device. More... | |
std::vector< MountByType > | possible_mount_bys () const |
Returns the possible mount-by methods to reference the block device. More... | |
Impl & | get_impl () |
const Impl & | get_impl () const |
![]() | |
sid_t | get_sid () const |
Return the storage id (sid) of the device. More... | |
bool | operator== (const Device &rhs) const |
bool | operator!= (const Device &rhs) const |
Device * | copy_to_devicegraph (Devicegraph *devicegraph) const |
Copies the device to the devicegraph. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Devicegraph * | get_devicegraph () |
Return the devicegraph the device belongs to. | |
const Devicegraph * | get_devicegraph () const |
Return the devicegraph the device belongs to. More... | |
Impl & | get_impl () |
const Impl & | get_impl () const |
virtual Device * | clone () const =0 |
void | save (xmlNode *node) const ST_DEPRECATED |
Static Public Member Functions | |
static std::vector< BlkDevice * > | get_all (Devicegraph *devicegraph) |
Get all BlkDevices. | |
static std::vector< const BlkDevice * > | get_all (const Devicegraph *devicegraph) |
Get all BlkDevices. More... | |
static BlkDevice * | find_by_name (Devicegraph *devicegraph, const std::string &name) |
Find a block device by its name. More... | |
static const BlkDevice * | find_by_name (const Devicegraph *devicegraph, const std::string &name) |
Find a block device by its name. More... | |
static bool | exists_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info) |
Check if a block device by any name including any symbolic links in /dev. More... | |
static BlkDevice * | find_by_any_name (Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED |
Find a block device by any name including any symbolic links in /dev. More... | |
static BlkDevice * | find_by_any_name (Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info) |
Find a block device by any name including any symbolic links in /dev. More... | |
static const BlkDevice * | find_by_any_name (const Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED |
Find a block device by any name including any symbolic links in /dev. More... | |
static const BlkDevice * | find_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info) |
Find a block device by any name including any symbolic links in /dev. More... | |
static bool | compare_by_dm_table_name (const BlkDevice *lhs, const BlkDevice *rhs) |
Compare (less than) two BlkDevices by DM table name. More... | |
![]() | |
static std::vector< Device * > | get_all (Devicegraph *devicegraph) |
Get all Devices. | |
static std::vector< const Device * > | get_all (const Devicegraph *devicegraph) |
Get all Devices. More... | |
static bool | compare_by_sid (const Device *lhs, const Device *rhs) |
Compare (less than) two Devices by sid. More... | |
static bool | compare_by_name (const Device *lhs, const Device *rhs) |
Compare (less than) two Devices by name. More... | |
Protected Member Functions | |
BlkDevice (Impl *impl) | |
![]() | |
Device (Impl *impl) | |
void | create (Devicegraph *devicegraph) |
Create a device in the devicegraph. More... | |
void | load (Devicegraph *devicegraph) |
An abstract Block Device.
|
static |
Compare (less than) two BlkDevices by DM table name.
The comparison is locale unaware.
Bcache* storage::BlkDevice::create_bcache | ( | const std::string & | name | ) |
Creates a Bcache on the blk device.
If the blk device has children the children will become children of the bcache device.
BcacheCset* storage::BlkDevice::create_bcache_cset | ( | ) |
Creates a BcacheCset on the blk device.
WrongNumberOfChildren |
BlkFilesystem* storage::BlkDevice::create_blk_filesystem | ( | FsType | fs_type | ) |
Creates a block filesystem on the block device.
WrongNumberOfChildren,UnsupportedException |
Encryption* storage::BlkDevice::create_encryption | ( | const std::string & | dm_table_name | ) |
Creates an encryption device on the blk device.
If the blk device has children the children will become children of the encryption device.
It will also set the mount-by method of the encryption to the storage default mount-by method.
Encryption* storage::BlkDevice::create_encryption | ( | const std::string & | dm_table_name, |
EncryptionType | type | ||
) |
Creates an encryption device on the blk device.
If the blk device has children the children will become children of the encryption device.
Allowed encryption types are LUKS1, LUKS2 and PLAIN.
It will also set the mount-by method of the encryption to the storage default mount-by method.
|
inline |
Creates a block filesystem on the block device.
WrongNumberOfChildren,UnsupportedException |
RemoveInfo storage::BlkDevice::detect_remove_info | ( | ) | const |
Check whether the device can be removed.
E.g. disks and DASDs cannot be removed.
Exception |
|
static |
Check if a block device by any name including any symbolic links in /dev.
Function might require a system lookup and is therefore slow. Only works on the probed devicegraph.
Exception |
|
static |
Find a block device by any name including any symbolic links in /dev.
Function might require a system lookup and is therefore slow. Only works on the probed devicegraph.
DeviceNotFoundByName,DeviceHasWrongType,Exception |
|
static |
Find a block device by any name including any symbolic links in /dev.
Function might require a system lookup and is therefore slow. Only works on the probed devicegraph.
DeviceNotFoundByName,DeviceHasWrongType,Exception |
|
static |
Find a block device by any name including any symbolic links in /dev.
Function might require a system lookup and is therefore slow. Only works on the probed devicegraph.
DeviceNotFoundByName,DeviceHasWrongType,Exception |
|
static |
Find a block device by any name including any symbolic links in /dev.
Function might require a system lookup and is therefore slow. Only works on the probed devicegraph.
DeviceNotFoundByName,DeviceHasWrongType,Exception |
|
static |
Find a block device by its name.
Only the name returned by get_name() is considered.
DeviceNotFoundByName,DeviceHasWrongType |
|
static |
Find a block device by its name.
Only the name returned by get_name() is considered.
DeviceNotFoundByName,DeviceHasWrongType |
|
static |
Get all BlkDevices.
Bcache* storage::BlkDevice::get_bcache | ( | ) |
Return the Bcache of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
const Bcache* storage::BlkDevice::get_bcache | ( | ) | const |
Return the Bcache of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
BcacheCset* storage::BlkDevice::get_bcache_cset | ( | ) |
Return the BcacheCset of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
const BcacheCset* storage::BlkDevice::get_bcache_cset | ( | ) | const |
Return the BcacheCset of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
BlkFilesystem* storage::BlkDevice::get_blk_filesystem | ( | ) |
Return the block filesystem of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
const BlkFilesystem* storage::BlkDevice::get_blk_filesystem | ( | ) | const |
Return the block filesystem of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
const std::string& storage::BlkDevice::get_dm_table_name | ( | ) | const |
Return device-mapper table name (dm-table-name for short).
Empty if this is not a device-mapper device.
Encryption* storage::BlkDevice::get_encryption | ( | ) |
Return the Encryption of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
const Encryption* storage::BlkDevice::get_encryption | ( | ) | const |
Return the Encryption of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
|
inline |
Return the block filesystem of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
|
inline |
Return the block filesystem of the block device.
WrongNumberOfChildren,DeviceHasWrongType |
std::string storage::BlkDevice::get_size_string | ( | ) | const |
Returns the size of the block device as a localised string.
const std::vector<std::string>& storage::BlkDevice::get_udev_ids | ( | ) | const |
Return the names of the udev by-id links of the blk device.
The names do not include the directory.
Example return value: [ "ata-SAMSUNG_SSD_PM871b_2.5_7mm_512GB_S3U3NE0K803507", "scsi-0ATA_SAMSUNG_SSD_PM87_S3U3NE0K803507" ]
This may not be the complete list of names known to udev since the library filters names that are known to cause problems.
const std::vector<std::string>& storage::BlkDevice::get_udev_paths | ( | ) | const |
Return the names of the udev by-path links of the blk device.
The names do not include the directory. Usually there is only one by-path link.
Example return value: [ "pci-0000:00:17.0-ata-1" ]
This may not be the complete list of names known to udev since the library filters names that are known to cause problems.
|
inline |
Return whether the block device has a block filesystem.
bool storage::BlkDevice::is_read_only | ( | ) | const |
Return whether the block device is read-only.
E.g. LVM logical volumes can be read-only.
bool storage::BlkDevice::is_usable_as_blk_device | ( | ) | const |
Checks whether the blk device is in general usable as a blk device.
This is not the case for some DASDs, see doc/dasd.md, extended partitions, LVM thin and cache pools, MD RAID containers, see doc/md-raid.md and host-managed zoned disks.
Does not consider if the blk device is already in use.
std::vector<MountByType> storage::BlkDevice::possible_mount_bys | ( | ) | const |
Returns the possible mount-by methods to reference the block device.
PARTLABEL is included even if the partition label is not set.
void storage::BlkDevice::remove_encryption | ( | ) |
Removes an encryption device on the blk device.
If the encryption device has children the children will become children of the blk device.
WrongNumberOfChildren,DeviceHasWrongType |
void storage::BlkDevice::set_dm_table_name | ( | const std::string & | dm_table_name | ) |
Set the device-mapper table name (dm-table-name for short).
void storage::BlkDevice::set_size | ( | unsigned long long | size | ) |
void storage::BlkDevice::set_topology | ( | const Topology & | topology | ) |
Set the topology.
Only useful for testsuites.