libstorage-ng
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
storage::LvmVg Class Reference

A Volume Group of the Logical Volume Manager (LVM). More...

#include <LvmVg.h>

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

Public Member Functions

const std::string & get_vg_name () const
 Get volume group name. More...
 
void set_vg_name (const std::string &vg_name)
 
const Regionget_region () const
 
unsigned long long get_size () const
 
std::string get_size_string () const
 
unsigned long long get_extent_size () const
 Returns the extent size of the volume group. More...
 
void set_extent_size (unsigned long long extent_size)
 Set the extent size of the volume group. More...
 
unsigned long long number_of_extents () const
 Calculates the number of extents in the volume group.
 
unsigned long long number_of_used_extents () const
 Calculates the number of used extents in the volume group. More...
 
unsigned long long number_of_free_extents () const
 Calculates the number of free extents in the volume group.
 
bool is_overcommitted () const
 Check whether the volume group is overcommitted. More...
 
LvmPvadd_lvm_pv (BlkDevice *blk_device)
 Adds a block device as a physical volume to the volume group. More...
 
void remove_lvm_pv (BlkDevice *blk_device)
 Removes a block device from the volume group. More...
 
unsigned long long max_size_for_lvm_lv (LvType lv_type) const
 Return the max size in bytes for a new logical volume of type lv_type. More...
 
LvmLvcreate_lvm_lv (const std::string &lv_name, LvType lv_type, unsigned long long size)
 Create a logical volume with name lv_name and type lv_type in the volume group. More...
 
LvmLvcreate_lvm_lv (const std::string &lv_name, unsigned long long size) ST_DEPRECATED
 
void delete_lvm_lv (LvmLv *lvm_lv)
 Delete a logical volume in the volume group. More...
 
std::vector< LvmPv * > get_lvm_pvs ()
 
std::vector< const LvmPv * > get_lvm_pvs () const
 
LvmLvget_lvm_lv (const std::string &lv_name)
 
std::vector< LvmLv * > get_lvm_lvs ()
 
std::vector< const LvmLv * > get_lvm_lvs () const
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
virtual LvmVgclone () const override
 
- Public Member Functions inherited from storage::Device
sid_t get_sid () const
 
bool operator== (const Device &rhs) const
 
bool operator!= (const Device &rhs) const
 
Devicecopy_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_parents ()
 
std::vector< const Device * > get_parents () const
 
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_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 ()
 
const std::map< std::string, std::string > & get_userdata () const
 
void set_userdata (const std::map< std::string, std::string > &userdata)
 
Devicegraphget_devicegraph ()
 
const Devicegraphget_devicegraph () const
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
void save (xmlNode *node) const
 

Static Public Member Functions

static LvmVgcreate (Devicegraph *devicegraph, const std::string &vg_name)
 
static LvmVgload (Devicegraph *devicegraph, const xmlNode *node)
 
static std::vector< LvmVg * > get_all (Devicegraph *devicegraph)
 Get all LvmVgs.
 
static std::vector< const LvmVg * > get_all (const Devicegraph *devicegraph)
 Get all LvmVgs. More...
 
static LvmVgfind_by_vg_name (Devicegraph *devicegraph, const std::string &vg_name)
 Find a volume group by vg-name. More...
 
static const LvmVgfind_by_vg_name (const Devicegraph *devicegraph, const std::string &vg_name)
 Find a volume group by vg-name. More...
 
static bool compare_by_vg_name (const LvmVg *lhs, const LvmVg *rhs)
 Compare (less than) two LvmVgs by vg-name.
 
- Static Public Member Functions inherited from storage::Device
static std::vector< Device * > get_all (Devicegraph *devicegraph)
 
static std::vector< const Device * > get_all (const Devicegraph *devicegraph)
 
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. More...
 

Protected Member Functions

 LvmVg (Impl *impl)
 
- Protected Member Functions inherited from storage::Device
 Device (Impl *impl)
 
void create (Devicegraph *devicegraph)
 
void load (Devicegraph *devicegraph)
 

Detailed Description

A Volume Group of the Logical Volume Manager (LVM).

Member Function Documentation

◆ add_lvm_pv()

LvmPv* storage::LvmVg::add_lvm_pv ( BlkDevice blk_device)

Adds a block device as a physical volume to the volume group.

If there is not a physical volume on the block device it will be created.

◆ create_lvm_lv()

LvmLv* storage::LvmVg::create_lvm_lv ( const std::string &  lv_name,
LvType  lv_type,
unsigned long long  size 
)

Create a logical volume with name lv_name and type lv_type in the volume group.

Supported lv_types are NORMAL and THIN_POOL.

◆ delete_lvm_lv()

void storage::LvmVg::delete_lvm_lv ( LvmLv lvm_lv)

Delete a logical volume in the volume group.

Also deletes all descendants of the logical volume.

◆ find_by_vg_name() [1/2]

static LvmVg* storage::LvmVg::find_by_vg_name ( Devicegraph devicegraph,
const std::string &  vg_name 
)
static

Find a volume group by vg-name.

Exceptions
LvmVgNotFoundByVgName

◆ find_by_vg_name() [2/2]

static const LvmVg* storage::LvmVg::find_by_vg_name ( const Devicegraph devicegraph,
const std::string &  vg_name 
)
static

Find a volume group by vg-name.

Exceptions
LvmVgNotFoundByVgName

◆ get_all()

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

Get all LvmVgs.

◆ get_extent_size()

unsigned long long storage::LvmVg::get_extent_size ( ) const

Returns the extent size of the volume group.

Returns
extent size

◆ get_lvm_lv()

LvmLv* storage::LvmVg::get_lvm_lv ( const std::string &  lv_name)
Exceptions
Exception

◆ get_vg_name()

const std::string& storage::LvmVg::get_vg_name ( ) const

Get volume group name.

This is different from get_name().

◆ is_overcommitted()

bool storage::LvmVg::is_overcommitted ( ) const

Check whether the volume group is overcommitted.

If it is, Storage::commit() will most likely fail.

◆ max_size_for_lvm_lv()

unsigned long long storage::LvmVg::max_size_for_lvm_lv ( LvType  lv_type) const

Return the max size in bytes for a new logical volume of type lv_type.

The size may be limited by other parameters, e.g. the filesystem on it. The max size also depends on parameters, e.g. the chunk size for thin pools.

◆ number_of_used_extents()

unsigned long long storage::LvmVg::number_of_used_extents ( ) const

Calculates the number of used extents in the volume group.

May be larger than the number of extents in the volume group.

◆ remove_lvm_pv()

void storage::LvmVg::remove_lvm_pv ( BlkDevice blk_device)

Removes a block device from the volume group.

The physical volume on the block device will the deleted.

◆ set_extent_size()

void storage::LvmVg::set_extent_size ( unsigned long long  extent_size)

Set the extent size of the volume group.

This can modify the size of the logical volumes. Due to rounding the size of logical volumes can become zero or the volume group can become overcommitted.

Setting the extent size is unsupported if the volume group is already created on-disk (it is only supported by LVM for special cases).

Exceptions
InvalidExtentSize,Exception

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