#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, EXEC_START, EXEC_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_location () const |
Get the location of the chroot. | |
virtual std::string | get_path () const |
Get the path to 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_exec_scripts () const |
Check if chroot exec scripts will be run. | |
void | set_run_exec_scripts (bool run_exec_scripts) |
Set whether chroot exec scripts will be run. | |
string_list const & | get_command_prefix () const |
Get the command_prefix for the chroot. | |
void | set_command_prefix (string_list const &command_prefix) |
Set the command_prefix for the chroot. | |
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 | set_location (std::string const &location) |
Set the location of the chroot. | |
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 | location |
Location inside the mount location root. | |
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_exec_scripts |
Run chroot exec scripts? | |
string_list | command_prefix |
Command prefix. | |
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 command_prefix for the chroot. This is a command to prefix to any command run in the chroot.
|
|
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, sbuild::chroot_plain, and sbuild::chroot_source. |
|
Get the location of the chroot. This is the path to the root of the chroot, and is typically the same as the mount location, but is overridden by the chroot type if required.
Reimplemented in sbuild::chroot_block_device, 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.
|
|
Get the name of the chroot.
|
|
Get the path to the chroot. This is the absolute path to the root of the chroot, and is typically the same as the mount location and location concatenated together, but is overridden by the chroot type if required.
Reimplemented in sbuild::chroot_plain. |
|
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 exec 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, sbuild::chroot_plain, and sbuild::chroot_source. |
|
Set the activity status of the chroot.
|
|
Set the aliases of the chroot. These are alternative names for the chroot.
|
|
Set the command_prefix for the chroot. This is a command to prefix to any command run in 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, sbuild::chroot_plain, and sbuild::chroot_source. |
|
Set the location of the chroot. This is the path to the root of the chroot, and is typically the same as the mount location, but is overridden by the chroot type if required.
Reimplemented in sbuild::chroot_block_device, 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 exec 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, sbuild::chroot_plain, and sbuild::chroot_source. |
|
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.
|
|
Command prefix.
|
|
Chroot description.
|
|
Groups allowed to access the chroot.
|
|
Location inside the mount location root.
|
|
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 chroot exec scripts?
|
|
Run chroot setup scripts?
|