23 #ifndef __LXC_CONTAINER_H
24 #define __LXC_CONTAINER_H
26 #include <semaphore.h>
37 #define LXC_CLONE_KEEPNAME (1 << 0)
38 #define LXC_CLONE_KEEPMACADDR (1 << 1)
39 #define LXC_CLONE_SNAPSHOT (1 << 2)
40 #define LXC_CLONE_KEEPBDEVTYPE (1 << 3)
41 #define LXC_CLONE_MAYBE_SNAPSHOT (1 << 4)
42 #define LXC_CLONE_MAXFLAGS (1 << 5)
43 #define LXC_CREATE_QUIET (1 << 0)
44 #define LXC_CREATE_MAXFLAGS (1 << 1)
104 struct lxc_conf *lxc_conf;
319 struct bdev_specs *specs,
int flags,
char *
const argv[]);
476 char** (*get_ips)(
struct lxc_container *c,
const char* interface,
const char* family,
int scope);
566 const char *lxcpath,
int flags,
const char *bdevtype,
567 const char *bdevdata, uint64_t newsize,
char **hookargs);
607 int stdinfd,
int stdoutfd,
int stderrfd,
int escape);
void(* free)(struct lxc_snapshot *s)
De-allocate the snapshot.
Definition: lxccontainer.h:761
int(* lxc_attach_exec_t)(void *payload)
Definition: attach_options.h:72
Definition: lxccontainer.h:59
bool daemonize
Definition: lxccontainer.h:114
int(* get_keys)(struct lxc_container *c, const char *key, char *retv, int inlen)
Retrieve a list of config item keys given a key prefix.
Definition: lxccontainer.h:448
bool(* save_config)(struct lxc_container *c, const char *alt_file)
Save configuaration to a file.
Definition: lxccontainer.h:299
int(* console)(struct lxc_container *c, int ttynum, int stdinfd, int stdoutfd, int stderrfd, int escape)
Allocate and run a console tty.
Definition: lxccontainer.h:606
bool(* want_daemonize)(struct lxc_container *c, bool state)
Change whether the container wants to run disconnected from the terminal.
Definition: lxccontainer.h:231
int lxc_get_wait_states(const char **states)
Obtain a list of all container states.
bool(* snapshot_restore)(struct lxc_container *c, const char *snapname, const char *newname)
Create a new container based on a snapshot.
Definition: lxccontainer.h:700
bool(* wait)(struct lxc_container *c, const char *state, int timeout)
Wait for container to reach a particular state.
Definition: lxccontainer.h:267
char * error_string
Definition: lxccontainer.h:108
const char * lxc_get_global_config_item(const char *key)
Get the value for a global config key.
char * vg
Definition: lxccontainer.h:775
const char *(* state)(struct lxc_container *c)
Determine state of container.
Definition: lxccontainer.h:137
Specifications for how to create a new backing store.
Definition: lxccontainer.h:768
int(* attach)(struct lxc_container *c, lxc_attach_exec_t exec_function, void *exec_payload, lxc_attach_options_t *options, pid_t *attached_process)
Create a sub-process attached to a container and run a function inside it.
Definition: lxccontainer.h:622
bool(* stop)(struct lxc_container *c)
Stop the container.
Definition: lxccontainer.h:220
int(* console_getfd)(struct lxc_container *c, int *ttynum, int *masterfd)
Allocate a console tty for the container.
Definition: lxccontainer.h:587
uint64_t fssize
Definition: lxccontainer.h:770
bool(* set_config_path)(struct lxc_container *c, const char *path)
Set the full path to the containers configuration file.
Definition: lxccontainer.h:533
bool(* unfreeze)(struct lxc_container *c)
Thaw a frozen container.
Definition: lxccontainer.h:164
pid_t(* init_pid)(struct lxc_container *c)
Determine process ID of the containers init process.
Definition: lxccontainer.h:174
char * zfsroot
Definition: lxccontainer.h:772
char * timestamp
Definition: lxccontainer.h:754
int list_defined_containers(const char *lxcpath, char ***names, struct lxc_container ***cret)
Get a list of defined containers in a lxcpath.
bool(* destroy)(struct lxc_container *c)
Delete the container.
Definition: lxccontainer.h:289
char * name
Definition: lxccontainer.h:752
int(* snapshot_list)(struct lxc_container *c, struct lxc_snapshot **snapshots)
Obtain a list of container snapshots.
Definition: lxccontainer.h:681
int lxc_container_put(struct lxc_container *c)
Drop a reference to the specified container.
void lxc_log_close(void)
Close log file.
bool(* set_cgroup_item)(struct lxc_container *c, const char *subsys, const char *value)
Set the specified cgroup subsystem value for the container.
Definition: lxccontainer.h:504
int(* attach_run_waitl)(struct lxc_container *c, lxc_attach_options_t *options, const char *program, const char *arg,...)
Run a program inside a container and wait for it to exit (list variant).
Definition: lxccontainer.h:649
int(* get_cgroup_item)(struct lxc_container *c, const char *subsys, char *retv, int inlen)
Retrieve the specified cgroup subsystem value for the container.
Definition: lxccontainer.h:493
bool(* is_running)(struct lxc_container *c)
Determine if container is running.
Definition: lxccontainer.h:146
bool(* may_control)(struct lxc_container *c)
Determine if the caller may control the container.
Definition: lxccontainer.h:721
bool(* load_config)(struct lxc_container *c, const char *alt_file)
Load the specified configuration for the container.
Definition: lxccontainer.h:185
int error_num
Definition: lxccontainer.h:111
bool(* start)(struct lxc_container *c, int useinit, char *const argv[])
Start the container.
Definition: lxccontainer.h:196
char * thinpool
Definition: lxccontainer.h:777
An LXC container snapshot.
Definition: lxccontainer.h:751
bool(* add_device_node)(struct lxc_container *c, const char *src_path, const char *dest_path)
Add specified device to the container.
Definition: lxccontainer.h:733
char * lxcpath
Definition: lxccontainer.h:755
void(* clear_config)(struct lxc_container *c)
Completely clear the containers in-memory configuration.
Definition: lxccontainer.h:380
int lxc_container_get(struct lxc_container *c)
Add a reference to the specified container.
int list_all_containers(const char *lxcpath, char ***names, struct lxc_container ***cret)
Get a complete list of all containers for a given lxcpath.
bool(* set_config_item)(struct lxc_container *c, const char *key, const char *value)
Set a key/value configuration option.
Definition: lxccontainer.h:278
bool(* want_close_all_fds)(struct lxc_container *c, bool state)
Change whether the container wishes all file descriptors to be closed on startup. ...
Definition: lxccontainer.h:242
int(* attach_run_wait)(struct lxc_container *c, lxc_attach_options_t *options, const char *program, const char *const argv[])
Run a program inside a container and wait for it to exit.
Definition: lxccontainer.h:636
char * lv
Definition: lxccontainer.h:776
int(* snapshot)(struct lxc_container *c, const char *commentfile)
Create a container snapshot.
Definition: lxccontainer.h:667
bool(* is_defined)(struct lxc_container *c)
Determine if /var/lib/lxc/$name/config exists.
Definition: lxccontainer.h:126
struct lxc_container * lxc_container_new(const char *name, const char *configpath)
Create a new container.
Definition: attach_options.h:77
int list_active_containers(const char *lxcpath, char ***names, struct lxc_container ***cret)
Get a list of active containers for a given lxcpath.
bool(* startl)(struct lxc_container *c, int useinit,...)
Start the container (list variant).
Definition: lxccontainer.h:211
char * fstype
Definition: lxccontainer.h:769
bool(* createl)(struct lxc_container *c, const char *t, const char *bdevtype, struct bdev_specs *specs, int flags,...)
Create a container (list variant).
Definition: lxccontainer.h:341
char * comment_pathname
Definition: lxccontainer.h:753
const char * lxc_get_version(void)
Determine version of LXC.
bool(* reboot)(struct lxc_container *c)
Request the container reboot by sending it SIGINT.
Definition: lxccontainer.h:361
int(* get_config_item)(struct lxc_container *c, const char *key, char *retv, int inlen)
Retrieve the value of a config item.
Definition: lxccontainer.h:412
bool(* clear_config_item)(struct lxc_container *c, const char *key)
Clear a configuration item.
Definition: lxccontainer.h:392
bool(* rename)(struct lxc_container *c, const char *newname)
Rename a container.
Definition: lxccontainer.h:352
char * config_path
Definition: lxccontainer.h:117
bool(* snapshot_destroy)(struct lxc_container *c, const char *snapname)
Destroy the specified snapshot.
Definition: lxccontainer.h:710
bool(* create)(struct lxc_container *c, const char *t, const char *bdevtype, struct bdev_specs *specs, int flags, char *const argv[])
Create a container.
Definition: lxccontainer.h:318
bool(* remove_device_node)(struct lxc_container *c, const char *src_path, const char *dest_path)
Remove specified device from the container.
Definition: lxccontainer.h:745
bool(* shutdown)(struct lxc_container *c, int timeout)
Request the container shutdown by sending it SIGPWR.
Definition: lxccontainer.h:373
bool(* freeze)(struct lxc_container *c)
Freeze running container.
Definition: lxccontainer.h:155
char * dir
Definition: lxccontainer.h:779