#include <sbuild-chroot-lvm-snapshot.h>
Inheritance diagram for sbuild::chroot_lvm_snapshot:
Public Member Functions | |
virtual | ~chroot_lvm_snapshot () |
The destructor. | |
virtual chroot::ptr | clone () const |
Copy the chroot. | |
virtual chroot::ptr | clone_source () const |
Create a source chroot. | |
std::string const & | get_snapshot_device () const |
Get the logical volume snapshot device name. | |
void | set_snapshot_device (std::string const &snapshot_device) |
Set the logical volume snapshot device name. | |
virtual std::string const & | get_mount_device () const |
Get the mount device of the chroot. | |
std::string const & | get_snapshot_options () const |
Get the logical volume snapshot options. | |
void | set_snapshot_options (std::string const &snapshot_options) |
Set the logical volume snapshot options. | |
virtual std::string const & | get_chroot_type () const |
Get the type of the chroot. | |
virtual void | setup_env (environment &env) |
Set environment. | |
virtual session_flags | get_session_flags () const |
Get the session flags of the chroot. | |
Protected Member Functions | |
chroot_lvm_snapshot () | |
The constructor. | |
virtual void | setup_lock (chroot::setup_type type, bool lock, int status) |
Unlock a chroot during setup. | |
virtual void | get_details (format_detail &detail) const |
Get detailed information about the chroot for output. | |
virtual void | get_keyfile (keyfile &keyfile) const |
Copy the chroot properties into a keyfile. | |
virtual void | set_keyfile (keyfile const &keyfile) |
Set the chroot properties from a keyfile. | |
Private Attributes | |
std::string | snapshot_device |
LVM snapshot device name for lvcreate. | |
std::string | snapshot_options |
LVM snapshot options for lvcreate. | |
Friends | |
class | chroot |
A snapshot LV will be created and mounted on demand.
Definition at line 34 of file sbuild-chroot-lvm-snapshot.h.
chroot_lvm_snapshot::chroot_lvm_snapshot | ( | ) | [protected] |
The constructor.
Definition at line 40 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot::set_run_exec_scripts(), and sbuild::chroot::set_run_setup_scripts().
Referenced by clone().
Here is the call graph for this function:
Here is the caller graph for this function:
chroot_lvm_snapshot::~chroot_lvm_snapshot | ( | ) | [virtual] |
sbuild::chroot::ptr chroot_lvm_snapshot::clone | ( | ) | const [virtual] |
Copy the chroot.
This is a virtual copy constructor.
Reimplemented from sbuild::chroot_block_device.
Definition at line 55 of file sbuild-chroot-lvm-snapshot.cc.
References chroot_lvm_snapshot().
Referenced by clone_source().
Here is the call graph for this function:
Here is the caller graph for this function:
sbuild::chroot::ptr chroot_lvm_snapshot::clone_source | ( | ) | const [virtual] |
Create a source chroot.
Implements sbuild::chroot_source.
Definition at line 61 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot_block_device::chroot_block_device(), clone(), and sbuild::chroot_source::clone_source_setup().
Here is the call graph for this function:
std::string const & chroot_lvm_snapshot::get_snapshot_device | ( | ) | const |
Get the logical volume snapshot device name.
This is used by lvcreate.
Definition at line 71 of file sbuild-chroot-lvm-snapshot.cc.
References snapshot_device.
Referenced by get_details(), get_keyfile(), setup_env(), and setup_lock().
Here is the caller graph for this function:
void chroot_lvm_snapshot::set_snapshot_device | ( | std::string const & | snapshot_device | ) |
Set the logical volume snapshot device name.
This is used by lvcreate.
snapshot_device | the device name. |
Definition at line 77 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot::DEVICE_ABS, and sbuild::is_absname().
Referenced by sbuild::session::run_impl(), and set_keyfile().
Here is the call graph for this function:
Here is the caller graph for this function:
std::string const & chroot_lvm_snapshot::get_mount_device | ( | ) | const [virtual] |
Get the mount device of the chroot.
Reimplemented from sbuild::chroot_block_device.
Definition at line 86 of file sbuild-chroot-lvm-snapshot.cc.
References snapshot_device.
std::string const & chroot_lvm_snapshot::get_snapshot_options | ( | ) | const |
Get the logical volume snapshot options.
These are used by lvcreate.
Definition at line 92 of file sbuild-chroot-lvm-snapshot.cc.
References snapshot_options.
Referenced by get_details(), get_keyfile(), and setup_env().
Here is the caller graph for this function:
void chroot_lvm_snapshot::set_snapshot_options | ( | std::string const & | snapshot_options | ) |
Set the logical volume snapshot options.
These are used by lvcreate.
snapshot_options | the options. |
Definition at line 98 of file sbuild-chroot-lvm-snapshot.cc.
Referenced by set_keyfile().
Here is the caller graph for this function:
std::string const & chroot_lvm_snapshot::get_chroot_type | ( | ) | const [virtual] |
Get the type of the chroot.
Reimplemented from sbuild::chroot_block_device.
Definition at line 104 of file sbuild-chroot-lvm-snapshot.cc.
void chroot_lvm_snapshot::setup_env | ( | environment & | env | ) | [virtual] |
Set environment.
Set the environment that the setup scripts will see during execution.
env | the environment to set. |
Reimplemented from sbuild::chroot_block_device.
Definition at line 112 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::environment::add(), sbuild::basename(), get_snapshot_device(), get_snapshot_options(), sbuild::chroot_source::setup_env(), and sbuild::chroot_block_device::setup_env().
Here is the call graph for this function:
sbuild::chroot::session_flags chroot_lvm_snapshot::get_session_flags | ( | ) | const [virtual] |
Get the session flags of the chroot.
These determine how the Session controlling the chroot will operate.
Reimplemented from sbuild::chroot_block_device.
Definition at line 194 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot::SESSION_CREATE.
void chroot_lvm_snapshot::setup_lock | ( | chroot::setup_type | type, | |
bool | lock, | |||
int | status | |||
) | [protected, virtual] |
Unlock a chroot during setup.
The locking technique (if any) may vary depending upon the chroot type and setup stage. For example, during creation of an LVM snapshot a block device might require locking, but afterwards this will change to the new block device.
An error will be thrown on failure.
type | the type of setup being performed | |
lock | true to lock, false to unlock | |
status | the exit status of the setup commands (0 for success, nonzero for failure). |
Reimplemented from sbuild::chroot_block_device.
Definition at line 123 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot::CHROOT_DEVICE, sbuild::chroot_block_device::device, sbuild::chroot::DEVICE_LOCK, sbuild::chroot::DEVICE_NOTBLOCK, sbuild::chroot::DEVICE_STAT, sbuild::chroot::DEVICE_UNLOCK, sbuild::chroot::EXEC_START, sbuild::chroot::EXEC_STOP, sbuild::chroot_block_device::get_device(), get_snapshot_device(), sbuild::lock::LOCK_EXCLUSIVE, sbuild::device_lock::set_lock(), sbuild::chroot::setup_session_info(), sbuild::chroot::SETUP_START, sbuild::chroot::SETUP_STOP, and sbuild::device_lock::unset_lock().
Here is the call graph for this function:
void chroot_lvm_snapshot::get_details | ( | format_detail & | detail | ) | const [protected, virtual] |
Get detailed information about the chroot for output.
detail | the details to output to. |
Reimplemented from sbuild::chroot_block_device.
Definition at line 200 of file sbuild-chroot-lvm-snapshot.cc.
References _, sbuild::format_detail::add(), sbuild::chroot_source::get_details(), sbuild::chroot_block_device::get_details(), get_snapshot_device(), and get_snapshot_options().
Here is the call graph for this function:
void chroot_lvm_snapshot::get_keyfile | ( | keyfile & | keyfile | ) | const [protected, virtual] |
Copy the chroot properties into a keyfile.
The keyfile group with the name of the chroot will be set; if it already exists, it will be removed before setting it.
keyfile | the keyfile to use. |
Reimplemented from sbuild::chroot_block_device.
Definition at line 212 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot::get_active(), sbuild::chroot_source::get_keyfile(), sbuild::chroot_block_device::get_keyfile(), sbuild::chroot::get_name(), get_snapshot_device(), get_snapshot_options(), and sbuild::keyfile::set_object_value().
Here is the call graph for this function:
void chroot_lvm_snapshot::set_keyfile | ( | keyfile const & | keyfile | ) | [protected, virtual] |
Set the chroot properties from a keyfile.
The chroot name must have previously been set, so that the correct keyfile group may be determined.
keyfile | the keyfile to get the properties from. |
Reimplemented from sbuild::chroot_block_device.
Definition at line 226 of file sbuild-chroot-lvm-snapshot.cc.
References sbuild::chroot::get_active(), sbuild::chroot::get_name(), sbuild::keyfile::get_object_value(), sbuild::keyfile::PRIORITY_DISALLOWED, sbuild::keyfile::PRIORITY_REQUIRED, sbuild::chroot_source::set_keyfile(), sbuild::chroot_block_device::set_keyfile(), set_snapshot_device(), and set_snapshot_options().
Here is the call graph for this function:
friend class chroot [friend] |
Reimplemented from sbuild::chroot_block_device.
Definition at line 41 of file sbuild-chroot-lvm-snapshot.h.
std::string sbuild::chroot_lvm_snapshot::snapshot_device [private] |
LVM snapshot device name for lvcreate.
Definition at line 118 of file sbuild-chroot-lvm-snapshot.h.
Referenced by get_mount_device(), and get_snapshot_device().
std::string sbuild::chroot_lvm_snapshot::snapshot_options [private] |
LVM snapshot options for lvcreate.
Definition at line 120 of file sbuild-chroot-lvm-snapshot.h.
Referenced by get_snapshot_options().