sbuild  1.6.0
Public Member Functions | Protected Member Functions | Private Attributes | Friends
sbuild::chroot_lvm_snapshot Class Reference

A chroot stored on an LVM logical volume (LV). More...

#include <sbuild-chroot-lvm-snapshot.h>

+ Inheritance diagram for sbuild::chroot_lvm_snapshot:
+ Collaboration diagram for sbuild::chroot_lvm_snapshot:

List of all members.

Public Member Functions

virtual ~chroot_lvm_snapshot ()
 The destructor.
virtual chroot::ptr clone () const
 Copy the chroot.
virtual chroot::ptr clone_session (std::string const &session_id, std::string const &alias, 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_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.
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 (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.
- Public Member Functions inherited from sbuild::chroot_block_device_base
virtual ~chroot_block_device_base ()
 The destructor.
std::string const & get_device () const
 Get the block device of the chroot.
void set_device (std::string const &device)
 Set the block device of the chroot.
virtual std::string get_path () const
 Get the path to the chroot.
- Public Member Functions inherited from sbuild::chroot
virtual ~chroot ()
 The destructor.
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.
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.
string_list const & get_users () const
 Get the users allowed to access the chroot.
void set_users (string_list const &users)
 Set the users allowed to access the chroot.
string_list const & get_groups () const
 Get the groups allowed to access the chroot.
void set_groups (string_list const &groups)
 Set the users allowed to access the chroot.
string_list const & get_root_users () const
 Get the users allowed to access the chroot as root.
void set_root_users (string_list const &users)
 Set the users allowed to access the chroot as root.
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_preserve_environment () const
 Check if the environment should be preserved in the chroot.
void set_preserve_environment (bool preserve_environment)
 Set if the environment should be preserved in the chroot.
std::string const & get_default_shell () const
 Get default shell.
void set_default_shell (std::string const &default_shell)
 Set the default shell.
regex const & get_environment_filter () const
 Get the environment filter of the chroot.
void set_environment_filter (regex const &environment_filter)
 Set the environment filter of the chroot.
bool get_active () const
 Get the activity status of the chroot.
bool get_original () const
 Get the originality of the chroot.
void set_original (bool original)
 Set the originality of the chroot.
bool get_run_setup_scripts () const
 Check if chroot setup scripts will be run.
std::string const & get_script_config () const
 Get the script configuration file for the chroot.
void set_script_config (std::string const &script_config)
 Set the script configuration file for the chroot.
std::string const & get_profile () const
 Get the configuration profile for the chroot.
void set_profile (std::string const &profile)
 Set configuration profile for the chroot.
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.
verbosity get_verbosity () const
 Get the message verbosity.
const char * get_verbosity_string () const
 Get the message verbosity as a readable string.
void set_verbosity (verbosity verbosity)
 Set the message verbosity.
void set_verbosity (std::string const &verbosity)
 Set the message verbosity.
void setup_env (environment &env) const
 Set environment.
void lock (setup_type type)
 Lock a chroot during setup.
void unlock (setup_type type, int status)
 Unlock a chroot during setup.
template<typename T >
std::shared_ptr< T > get_facet ()
 Get a chroot facet.
template<typename T >
const std::shared_ptr< const T > get_facet () const
 Get a chroot facet.
template<typename T >
void add_facet (std::shared_ptr< T > facet)
 Add a chroot facet.
template<typename T >
void remove_facet ()
 Remove a chroot facet.
template<typename T >
void remove_facet (std::shared_ptr< T > facet)
 Remove a chroot facet.
template<typename T >
void replace_facet (std::shared_ptr< T > facet)
 Replace an existing chroot facet with a new facet.
string_list list_facets () const
 List all registered chroot facets.
session_flags get_session_flags () const
 Get the session flags of the chroot.
void get_details (format_detail &detail) const
 Get detailed information about the chroot for output.
void print_details (std::ostream &stream) const
 Print detailed information about the chroot to a stream.
void get_keyfile (keyfile &keyfile) const
 Copy the chroot properties into a keyfile.
void set_keyfile (keyfile const &keyfile)
 Set the chroot properties from a keyfile.

Protected Member Functions

 chroot_lvm_snapshot ()
 The constructor.
 chroot_lvm_snapshot (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.
- Protected Member Functions inherited from sbuild::chroot_block_device_base
 chroot_block_device_base ()
 The constructor.
 chroot_block_device_base (const chroot_block_device_base &rhs)
 The copy constructor.
- Protected Member Functions inherited from sbuild::chroot
 chroot ()
 The constructor.
 chroot (const chroot &rhs)
 The copy constructor.
void set_run_setup_scripts (bool run_setup_scripts)
 Set whether chroot setup scripts will be run.
virtual void setup_session_info (bool start)
 Set up persistent session information.

Private Attributes

std::string snapshot_device
 LVM snapshot device name for lvcreate.
std::string snapshot_options
 LVM snapshot options for lvcreate.

Friends

class chroot

Additional Inherited Members

- Protected Attributes inherited from sbuild::chroot_block_device_base
std::string device
 The block device to use.

Detailed Description

A chroot stored on an LVM logical volume (LV).

A snapshot LV will be created and mounted on demand.


Member Function Documentation

sbuild::chroot::ptr chroot_lvm_snapshot::clone ( ) const
virtual

Copy the chroot.

This is a virtual copy constructor.

 @returns a shared_ptr to the new copy of the chroot.

Implements sbuild::chroot.

References chroot_lvm_snapshot().

Referenced by clone_source().

+ Here is the caller graph for this function:

sbuild::chroot::ptr chroot_lvm_snapshot::clone_session ( std::string const &  session_id,
std::string const &  alias,
std::string const &  user,
bool  root 
) const
virtual

Create a session chroot.

Parameters:
session_idthe identifier (session_id) for the new session.
aliasused to initially identify the chroot.
userthe user creating the session.
roottrue if the user has root access, otherwise false.
Returns:
a session chroot.

Implements sbuild::chroot.

References chroot_lvm_snapshot().

sbuild::chroot::ptr chroot_lvm_snapshot::clone_source ( ) const
virtual

Create a source chroot.

Returns:
a source chroot.

Implements sbuild::chroot.

References clone().

std::string const & chroot_lvm_snapshot::get_chroot_type ( ) const
virtual

Get the type of the chroot.

Returns:
the chroot type.

Implements sbuild::chroot.

void chroot_lvm_snapshot::get_details ( chroot const &  chroot,
format_detail detail 
) const
protectedvirtual

Get detailed information about the chroot for output.

Parameters:
chrootthe chroot to use.
detailthe details to output to.

Reimplemented from sbuild::chroot_block_device_base.

References sbuild::_(), sbuild::format_detail::add(), get_snapshot_device(), get_snapshot_options(), snapshot_device, and snapshot_options.

void chroot_lvm_snapshot::get_keyfile ( chroot const &  chroot,
keyfile keyfile 
) const
protectedvirtual

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.

Parameters:
chrootthe chroot to use.
keyfilethe keyfile to use.

Reimplemented from sbuild::chroot_block_device_base.

References sbuild::chroot::get_name(), get_snapshot_device(), get_snapshot_options(), and sbuild::basic_keyfile< K, P >::set_object_value().

sbuild::chroot::session_flags chroot_lvm_snapshot::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.

Parameters:
chrootthe chroot to use.
Returns:
the session flags.

Reimplemented from sbuild::chroot_block_device_base.

References sbuild::chroot::SESSION_NOFLAGS, and sbuild::chroot::SESSION_PURGE.

std::string const & chroot_lvm_snapshot::get_snapshot_device ( ) const

Get the logical volume snapshot device name.

This is used by lvcreate.

Returns:
the device name.

References snapshot_device.

Referenced by get_details(), get_keyfile(), setup_env(), and setup_lock().

+ Here is the caller graph for this function:

std::string const & chroot_lvm_snapshot::get_snapshot_options ( ) const

Get the logical volume snapshot options.

These are used by lvcreate.

Returns:
the options.

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_keyfile ( chroot chroot,
keyfile const &  keyfile,
string_list used_keys 
)
protectedvirtual

Set the chroot properties from a keyfile.

The chroot name must have previously been set, so that the correct keyfile group may be determined.

Parameters:
chrootthe chroot to use.
keyfilethe keyfile to get the properties from.
used_keysa list of the keys used will be set.

Reimplemented from sbuild::chroot_block_device_base.

References sbuild::chroot::get_name(), sbuild::basic_keyfile< K, P >::get_object_value(), sbuild::keyfile_base::PRIORITY_DEPRECATED, sbuild::keyfile_base::PRIORITY_DISALLOWED, sbuild::keyfile_base::PRIORITY_REQUIRED, set_snapshot_device(), and set_snapshot_options().

void chroot_lvm_snapshot::set_snapshot_device ( std::string const &  snapshot_device)

Set the logical volume snapshot device name.

This is used by lvcreate.

Parameters:
snapshot_devicethe device name.

References sbuild::chroot::DEVICE_ABS, sbuild::is_absname(), and snapshot_device.

Referenced by set_keyfile().

+ 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.

Parameters:
snapshot_optionsthe options.

References snapshot_options.

Referenced by set_keyfile().

+ Here is the caller graph for this function:

void chroot_lvm_snapshot::setup_env ( chroot const &  chroot,
environment env 
) const
virtual

Set environment.

Set the environment that the setup scripts will see during execution.

Parameters:
chrootthe chroot to use.
envthe environment to set.

Reimplemented from sbuild::chroot_block_device_base.

References sbuild::environment::add(), sbuild::basename(), get_snapshot_device(), and get_snapshot_options().

void chroot_lvm_snapshot::setup_lock ( chroot::setup_type  type,
bool  lock,
int  status 
)
protectedvirtual

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.

Parameters:
typethe type of setup being performed
locktrue to lock, false to unlock
statusthe exit status of the setup commands (0 for success, nonzero for failure).

Implements sbuild::chroot.

References sbuild::chroot::CHROOT_DEVICE, 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(), get_snapshot_device(), sbuild::stat::is_block(), 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().


The documentation for this class was generated from the following files: