#include <sbuild-chroot.h>
Inheritance diagram for sbuild::chroot:
Public Types | |
typedef runtime_error_custom< chroot > | error |
Exception type. | |
typedef std::tr1::shared_ptr< chroot > | ptr |
A shared_ptr to a chroot object. | |
enum | setup_type { SETUP_START, SETUP_RECOVER, SETUP_STOP, RUN_START, RUN_STOP } |
Type of setup to perform. More... | |
enum | session_flags { SESSION_CREATE = 1 << 0 } |
Chroot session properties. More... | |
Public Member Functions | |
virtual | ~chroot () |
The destructor. | |
virtual ptr | clone () const =0 |
Copy the chroot. | |
std::string const & | get_name () const |
Get the name of the chroot. | |
void | set_name (std::string const &name) |
Set the name of the chroot. | |
std::string const & | get_description () const |
Get the description of the chroot. | |
void | set_description (std::string const &description) |
Set the description of the chroot. | |
virtual std::string const & | get_mount_location () const |
Get the mount location of the chroot. | |
void | set_mount_location (std::string const &location) |
Set the mount location of the chroot. | |
virtual std::string const & | get_mount_device () const |
Get the mount device of the chroot. | |
void | set_mount_device (std::string const &device) |
Set the mount device of the chroot. | |
unsigned int | get_priority () const |
Get the priority of the chroot. | |
void | set_priority (unsigned int priority) |
Set the priority of a chroot. | |
string_list const & | get_groups () const |
Get the groups allowed to access the chroot. | |
void | set_groups (string_list const &groups) |
Set the groups allowed to access the chroot. | |
string_list const & | get_root_groups () const |
Get the groups allowed to access the chroot as root. | |
void | set_root_groups (string_list const &groups) |
Set the groups allowed to access the chroot as root. | |
string_list const & | get_aliases () const |
Get the aliases of the chroot. | |
void | set_aliases (string_list const &aliases) |
Set the aliases of the chroot. | |
bool | get_active () const |
Get the activity status of the chroot. | |
void | set_active (bool active) |
Set the activity status of the chroot. | |
bool | get_run_setup_scripts () const |
Check if chroot setup scripts will be run. | |
void | set_run_setup_scripts (bool run_setup_scripts) |
Set whether chroot setup scripts will be run. | |
bool | get_run_session_scripts () const |
Check if chroot session scripts will be run. | |
void | set_run_session_scripts (bool run_session_scripts) |
Set whether chroot session scripts will be run. | |
virtual std::string const & | get_chroot_type () const =0 |
Get the type of the chroot. | |
virtual void | setup_env (environment &env) |
Set environment. | |
virtual void | setup_lock (setup_type type, bool lock)=0 |
Lock a chroot during setup. | |
virtual session_flags | get_session_flags () const =0 |
Get the session flags of the chroot. | |
Static Public Member Functions | |
static ptr | create (std::string const &type) |
Create a chroot. | |
Protected Member Functions | |
chroot () | |
The constructor. | |
virtual void | setup_session_info (bool start) |
Set up persistent session information. | |
template<typename T> | |
format_detail< T > | format_details (std::string const &name, T const &value) const |
Format a name-value pair for output. | |
virtual void | print_details (std::ostream &stream) const |
Print detailed information about the chroot to a stream. | |
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 | name |
Chroot name. | |
std::string | description |
Chroot description. | |
unsigned int | priority |
Chroot prioroty. | |
string_list | groups |
Groups allowed to access the chroot. | |
string_list | root_groups |
Groups allowed to access the chroot as root. | |
string_list | aliases |
Alternative names for the chroot. | |
std::string | mount_location |
Location to mount chroot in the filesystem (if any). | |
std::string | mount_device |
Block device to mount (if any). | |
bool | active |
Chroot activity status. | |
bool | run_setup_scripts |
Run chroot setup scripts? | |
bool | run_session_scripts |
Run session setup scripts? | |
Friends | |
std::ostream & | operator<< (std::ostream &stream, ptr const &rhs) |
Print detailed information about the chroot to a stream. | |
keyfile const & | operator>> (keyfile const &keyfile, ptr &rhs) |
Chroot initialisation from a keyfile. | |
keyfile & | operator<< (keyfile &keyfile, ptr const &rhs) |
Chroot serialisation to a keyfile. | |
Classes | |
class | format_detail |
Helper to perform formatting of chroot details. More... |
This class contains all of the metadata associated with a single chroot, for all chroot types. This is the in-core representation of a chroot definition in the configuration file, and may be initialised directly from an open keyfile.
|
Exception type.
|
|
A shared_ptr to a chroot object.
|
|
Chroot session properties.
|
|
Type of setup to perform.
|
|
The constructor.
|
|
The destructor.
|
|
Copy the chroot. This is a virtual copy constructor.
Implemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Create a chroot. This is a factory function.
|
|
Format a name-value pair for output. This is a convenience wrapper to construct a format_detail of the appropriate type.
|
|
Get the activity status of the chroot.
|
|
Get the aliases of the chroot. These are alternative names for the chroot.
|
|
Get the type of the chroot.
Implemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Get the description of the chroot.
|
|
Get the groups allowed to access the chroot.
|
|
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.
Reimplemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Get the mount device of the chroot.
Reimplemented in sbuild::chroot_block_device, and sbuild::chroot_lvm_snapshot. |
|
Get the mount location of the chroot.
Reimplemented in sbuild::chroot_plain. |
|
Get the name of the chroot.
|
|
Get the priority of the chroot. This is a number indicating whether than a ditribution is older than another.
|
|
Get the groups allowed to access the chroot as root. Mmebers of these groups can switch to root without authenticating themselves.
|
|
Check if chroot session scripts will be run.
|
|
Check if chroot setup scripts will be run.
|
|
Get the session flags of the chroot. These determine how the Session controlling the chroot will operate.
Implemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Print detailed information about the chroot to a stream. The information is printed in plain text with one line per property.
Reimplemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Set the activity status of the chroot.
|
|
Set the aliases of the chroot. These are alternative names for the chroot.
|
|
Set the description of the chroot.
|
|
Set the groups allowed to access the chroot.
|
|
Set the chroot properties from a keyfile. The chroot name must have previously been set, so that the correct keyfile group may be determined.
Reimplemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Set the mount device of the chroot.
|
|
Set the mount location of the chroot.
|
|
Set the name of the chroot.
|
|
Set the priority of a chroot. This is a number indicating whether a distribution is older than another. For example, "oldstable" and "oldstable-security" might be 0, while "stable" and "stable-security" 1, "testing" 2 and "unstable" 3. The values are not important, but the difference between them is.
|
|
Set the groups allowed to access the chroot as root. Mmebers of these groups can switch to root without authenticating themselves.
|
|
Set whether chroot session scripts will be run.
|
|
Set whether chroot setup scripts will be run.
|
|
Set environment. Set the environment that the setup scripts will see during execution.
Reimplemented in sbuild::chroot_block_device, sbuild::chroot_file, sbuild::chroot_lvm_snapshot, and sbuild::chroot_plain. |
|
Lock 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.
|
|
Set up persistent session information.
|
|
Chroot serialisation to a keyfile.
|
|
Print detailed information about the chroot to a stream. The information is printed in plain text with one line per property.
|
|
Chroot initialisation from a keyfile.
|
|
Chroot activity status.
|
|
Alternative names for the chroot.
|
|
Chroot description.
|
|
Groups allowed to access the chroot.
|
|
Block device to mount (if any).
|
|
Location to mount chroot in the filesystem (if any).
|
|
Chroot name.
|
|
Chroot prioroty.
|
|
Groups allowed to access the chroot as root.
|
|
Run session setup scripts?
|
|
Run chroot setup scripts?
|