A chroot stored on an unmounted block device. More...
#include <sbuild-chroot-block-device.h>
Inheritance diagram for sbuild::chroot_block_device:
Collaboration diagram for sbuild::chroot_block_device:Public Types | |
| typedef chroot::error | error |
| Exception type. | |
Public Member Functions | |
| virtual | ~chroot_block_device () |
| The destructor. | |
| virtual chroot::ptr | clone () const |
| Copy the chroot. | |
| virtual chroot::ptr | clone_session (std::string const &session_id, std::string const &user, bool root) const |
| Create a session chroot. | |
| virtual chroot::ptr | clone_source () const |
| Create a source chroot. | |
| std::string const & | get_chroot_type () const |
| Get the type of the chroot. | |
| virtual void | setup_env (chroot const &chroot, environment &env) const |
| Set environment. | |
| virtual session_flags | get_session_flags (chroot const &chroot) const |
| Get the session flags of the chroot. | |
Protected Member Functions | |
| chroot_block_device () | |
| The constructor. | |
| chroot_block_device (const chroot_block_device &rhs) | |
| The copy constructor. | |
| chroot_block_device (const chroot_lvm_snapshot &rhs) | |
| The copy constructor. | |
| virtual void | setup_lock (chroot::setup_type type, bool lock, int status) |
| Unlock a chroot during setup. | |
| virtual void | get_details (chroot const &chroot, format_detail &detail) const |
| Get detailed information about the chroot for output. | |
| virtual void | get_keyfile (chroot const &chroot, keyfile &keyfile) const |
| Copy the chroot properties into a keyfile. | |
| virtual void | set_keyfile (chroot &chroot, keyfile const &keyfile, string_list &used_keys) |
| Set the chroot properties from a keyfile. | |
Friends | |
| class | chroot |
| class | chroot_lvm_snapshot |
A chroot stored on an unmounted block device.
The device will be mounted on demand.
| sbuild::chroot::ptr chroot_block_device::clone | ( | ) | const [virtual] |
Copy the chroot.
This is a virtual copy constructor.
Implements sbuild::chroot.
References chroot_block_device().
| sbuild::chroot::ptr chroot_block_device::clone_session | ( | std::string const & | name, | |
| std::string const & | user, | |||
| bool | root | |||
| ) | const [virtual] |
Create a session chroot.
| name | the identifier (session_id) for the new session. | |
| user | the user creating the session. | |
| root | true if the user has root access, otherwise false. |
Implements sbuild::chroot.
References chroot_block_device().
| sbuild::chroot::ptr chroot_block_device::clone_source | ( | ) | const [virtual] |
Create a source chroot.
Implements sbuild::chroot.
References chroot_block_device().
| std::string const & chroot_block_device::get_chroot_type | ( | ) | const [virtual] |
| void chroot_block_device::get_details | ( | chroot const & | chroot, | |
| format_detail & | detail | |||
| ) | const [protected, virtual] |
Get detailed information about the chroot for output.
| chroot | the chroot to use. | |
| detail | the details to output to. |
Reimplemented from sbuild::chroot_block_device_base.
| void chroot_block_device::get_keyfile | ( | chroot const & | chroot, | |
| 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.
| chroot | the chroot to use. | |
| keyfile | the keyfile to use. |
Reimplemented from sbuild::chroot_block_device_base.
| sbuild::chroot::session_flags chroot_block_device::get_session_flags | ( | chroot const & | chroot | ) | const [virtual] |
Get the session flags of the chroot.
These determine how the Session controlling the chroot will operate.
| chroot | the chroot to use. |
Reimplemented from sbuild::chroot_block_device_base.
References sbuild::chroot::get_session_flags().
| void chroot_block_device::set_keyfile | ( | chroot & | chroot, | |
| keyfile const & | keyfile, | |||
| string_list & | used_keys | |||
| ) | [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.
| chroot | the chroot to use. | |
| keyfile | the keyfile to get the properties from. | |
| used_keys | a list of the keys used will be set. |
Reimplemented from sbuild::chroot_block_device_base.
| void chroot_block_device::setup_env | ( | chroot const & | chroot, | |
| environment & | env | |||
| ) | const [virtual] |
Set environment.
Set the environment that the setup scripts will see during execution.
| chroot | the chroot to use. | |
| env | the environment to set. |
Reimplemented from sbuild::chroot_block_device_base.
| void chroot_block_device::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). |
Implements sbuild::chroot.
References sbuild::chroot_block_device_base::device, sbuild::chroot::DEVICE_LOCK, sbuild::chroot::DEVICE_NOTBLOCK, sbuild::chroot::DEVICE_UNLOCK, sbuild::chroot_block_device_base::get_device(), sbuild::chroot::get_facet(), 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().
1.7.1