23#ifndef STORAGE_LVM_LV_H
24#define STORAGE_LVM_LV_H
27#include "storage/Devices/BlkDevice.h"
28#include "storage/Devicegraph.h"
158 const std::string& lv_name,
LvType lv_type);
321 std::vector<LvmLv*> get_lvm_lvs();
322 std::vector<const LvmLv*> get_lvm_lvs()
const;
338 const Impl& get_impl()
const;
340 virtual LvmLv* clone()
const override;
An abstract Block Device.
Definition: BlkDevice.h:49
Definition: Devicegraph.h:50
An abstract base class for storage devices.
Definition: Device.h:82
The main container of the libstorage-ng.
Definition: Devicegraph.h:170
Base class for storage exceptions.
Definition: Exception.h:114
const std::string & msg() const
Return the message string provided to the constructor.
Definition: Exception.h:150
A Logical Volume of the Logical Volume Manager (LVM).
Definition: LvmLv.h:147
const LvmLv * get_origin() const
Get the origin of the logical volume if it has one.
void set_stripes(unsigned int stripes)
Set the number of stripes.
const LvmVg * get_lvm_vg() const
Return volume group this logical volume belongs to.
unsigned long long get_stripe_size() const
Get the stripe size.
LvmLv * get_lvm_lv(const std::string &lv_name)
LvType get_lv_type() const
Return the logical volume type.
void set_stripe_size(unsigned long long stripe_size)
Set the stripe size.
LvmLv * get_origin()
Get the origin of the logical volume if it has one.
void set_lv_name(const std::string &lv_name)
Set the logical volume name.
static bool compare_by_lv_name(const LvmLv *lhs, const LvmLv *rhs)
Compare (less than) two LvmLvs by lv-name.
bool has_snapshots() const
Check whether the logical volume has snapshots.
static bool is_valid_lv_name(const std::string &lv_name)
Check whether a (new and public) logical volume name is valid.
unsigned int get_stripes() const
Get the number of stripes.
static LvmLv * create(Devicegraph *devicegraph, const std::string &vg_name, const std::string &lv_name, LvType lv_type)
Create a device of type LvmLv.
static std::vector< const LvmLv * > get_all(const Devicegraph *devicegraph)
Get all LvmLvs.
std::vector< const LvmLv * > get_snapshots() const
Get snapshots of the logical volume.
static std::vector< LvmLv * > get_all(Devicegraph *devicegraph)
Get all LvmLvs.
bool has_origin() const
Check whether the logical volume has an origin.
std::vector< LvmLv * > get_snapshots()
Get snapshots of the logical volume.
void set_chunk_size(unsigned long long chunk_size)
Set the chunk size.
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.
const LvmLv * get_thin_pool() const
Return the thin pool for a thin logical volume.
LvmLv * 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 thin pool.
const std::string & get_lv_name() const
Get the logical volume name.
unsigned long long get_chunk_size() const
Get the chunk size.
A Volume Group of the Logical Volume Manager (LVM).
Definition: LvmVg.h:61
The storage namespace.
Definition: Actiongraph.h:39
bool is_lvm_lv(const Device *device)
Checks whether device points to a LvmLv.
LvmLv * to_lvm_lv(Device *device)
Converts pointer to Device to pointer to LvmLv.
std::string get_lv_type_name(LvType lv_type)
Convert LvType to string.
LvType
LVM logical volume types, see lvs(8).
Definition: LvmLv.h:41
@ CACHE
A cache logical volume.
@ NORMAL
A linear or striped logical volume.
@ WRITECACHE
A writecache logical volume.
@ CACHE_POOL
A cache-pool logical volume.
@ SNAPSHOT
A thick snapshot.
@ RAID
A raid logical volume.
@ THIN
A thin logical volume.
@ THIN_POOL
A thin-pool logical volume.