Commit Graph

1578 Commits

Author SHA1 Message Date
Dwight Engen
000559b5de Oracle template: make container also boot under libvirt
This allows containers created with lxc-create to also boot under
libvirt/Virtual Machine Monitor

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-27 15:00:30 -05:00
Dwight Engen
12a50cc6ab Make config api items const
This makes it easier to write a binding, and presents a cleaner API. Use
strdupa in a few places to get mutable strings for tokenizing / parsing.
Also change the argv type in lxcapi_start and lxcapi_create to match
that of execv(3).

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-27 14:59:33 -05:00
Natanael Copa
12ad0f90c1 lxc-setuid: use POSIX shell instead of bash
Avoid getop --longoptions.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-27 10:11:14 -05:00
Natanael Copa
f910f092e5 lxc-setcap: use POSIX shell instead of bash
Avoid getopt --longoptions

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-27 10:10:49 -05:00
Dwight Engen
b45a7402bf Use autoconf LXCPATH instead of hardcoded LXCDIR
LXCDIR is only used in lxc_container_new, whereas LXCPATH is used throughout
the rest of lxc, and even in the same file as lxc_container_new (for example
create_container_dir()).

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-27 10:07:51 -05:00
Natanael Copa
7ec3fa7139 lxc-checkconfig: use POSIX shell instead of bash
- replace 'echo -e' with printf
- replace 'if [[ ... ]]' with 'if [ ... ]'
- add \ at after && and || when those are at end of line

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-27 10:04:49 -05:00
Natanael Copa
89d3558804 lxc-version: use POSIX shell instead of bash
There is no reason to depend on bash for a single echo.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-27 10:04:04 -05:00
Serge Hallyn
6b1a07ba08 fix lxc-ubuntu-cloud option parsing bugs
The -u shortopt matching --userdata was not specified, and when -L
is found shift should have been by 1 not 2 since there is no optarg.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-26 15:12:26 -05:00
Natanael Copa
b917ef7522 lxc-info: add option -t, --state-is=STATE to test for a given test
Add an option to test for a give state. This is useful for scripts.
It lets us you do thing like:

 if lxc-info --name myname --state-is RUNNING; then
   ...

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 14:29:43 -05:00
Dwight Engen
83cab6e068 Ensure argv passed by createl to create is NULL terminated
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 13:14:18 -05:00
Dwight Engen
d95db067d2 Free allocated configuration memory
Most of these were found with valgrind by repeatedly doing lxc_container_new
followed by lxc_container_put. Also free memory when config items are
re-parsed, as happens when lxcapi_set_config_item() is called. Refactored
path type config items to use a common underlying routine.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 13:13:47 -05:00
Dwight Engen
9ebb03ad4a Fix use of list item memory after free
Valgrind showed use of ->next field after item has been free()ed.
Introduce a lxc_list_for_each_safe() which allows traversal of a list
when the body of the loop may remove the currently iterated item.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 12:54:00 -05:00
Dwight Engen
2312f31b07 Fix fd leak in lxc log
lxc_log_init will leak an fd when it is called by a long running
program that may call lxc_container_new multiple times. Fix by
only opening the log if it is not already open.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 12:53:57 -05:00
Stéphane Graber
181a9be7e4 gitignore: Ignore python cache
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 12:32:56 -05:00
Stéphane Graber
2cdb945b13 python: Use builtin len() function for network interfaces
Use our own len() function for network interfaces as doing
len(container.get_config_item("lxc.network")) will fail when the
list is empty.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 12:32:50 -05:00
Stéphane Graber
bde1853954 python: PEP8 compatibility
The new version of the pep8 command is detecting more indentation
mistakes than it used to, this fixes them.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 12:32:37 -05:00
Stéphane Graber
f79d43bbe7 Remove all trailing whitespaces.
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-26 12:08:13 -05:00
Dwight Engen
c93c7b1a0b Fix checkconfig to handle kernel memory cgroup name change
The kernel config option for the memory cgroup was changed in 3.6
from CONFIG_CGROUP_MEM_RES_CTLR to CONFIG_MEMCG with commit c255a458.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-26 11:56:04 -05:00
Stéphane Graber
ad493d03fe lxc.conf.sgml.in: Fix typo
Fix a typo in the previous lxc.conf.sgml.in change.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-26 11:45:28 -05:00
Serge Hallyn
c6883f383e Add lxc.autodev
Add a container config option to mount and populate /dev in a container.

We might want to add options to specify a max size for /dev other than
the default 100k, and to specify other devices to create.  And maybe
someone can think of a better name than autodev.

Changelog: Don't error out if we couldn't mknod a /dev/ttyN.
Changelog: Describe the option in lxc.conf manpage.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 10:02:47 -06:00
Stéphane Graber
69c478daf1 python: Add new lxc-device tool
Add a new lxc-device tool which uses the new add_device() function of
the python API and lets you add a new device node to a running container.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 09:32:58 -05:00
Stéphane Graber
2a41cf5d68 python: Add add_device() function
This introduces a new add_devices() call to the python API.

Parameters:
 - path => Mandatory, path to a character or block device on the host
 - destpath => Optional, alternative path inside the container

The function will allow the node in the container's devices cgroup and
then create the entry in the container.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2012-11-26 09:31:52 -05:00
Natanael Copa
7858afacec lxc-create: do not use 'local'
Apparently 'local' is not POSIX. Don't use it.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-26 09:29:22 -05:00
Natanael Copa
11cbdf441d lxc-create: fix passing over first argument to template script
The e60a8164c1 introduced a bug that caused
first argument passed over to the template script get lost.

This patch fixes it.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-26 09:28:46 -05:00
Natanael Copa
e60a8164c1 lxc-create: use posix shell instead of bash
- use '[ -x /path/prog ]' instead of 'type /path/prog'
- avoid getopt --longoptions
- add \ at after && and || when those are at end of line
- make sure condition expands to empty string if variable is empty

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-21 14:36:08 -05:00
Stéphane Graber
c3752c0b59 Use clearer error message on failure to create pidfile
As suggested by Serge Hallyn on lxc-devel.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-15 10:51:09 -05:00
Natanael Copa
3114c98242 lxc-start: add option -p, --pidfile=FILE
Add option to create a pidfile for lxc-start. This is helpful for
init scripts and process monitors when running as daemon.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-15 10:50:56 -05:00
Dwight Engen
f6a8db2d94 Fix package name needed for building docs with RPM
Tested on Oracle Linux 6 and Fedora 17

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-14 10:55:06 -05:00
Frederic Crozat
f8a59e3152 ensure btrfs subvolume is removed when container creating fails
Signed-off-by: Frederic Crozat <fcrozat@suse.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-14 10:54:54 -05:00
Serge Hallyn
f62b344996 dont fail on failure to link kmsg
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-14 08:55:07 -06:00
Stéphane Graber
18c266fc4c Add the test binaries to .gitignore
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-13 19:36:05 -05:00
Stéphane Graber
9935be1881 Check return value of all system calls in startone
One of the system() calls in src/tests/startone.c wasn't checked.
This was causing a build failure now that -Wall -Werror are set by default.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-13 19:35:17 -05:00
Serge Hallyn
ae9242c86a switch use of #define with static char*
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-13 17:54:01 -06:00
Serge Hallyn
c95cf86f39 Revert "Fix check against LXCROOTFSMOUNT to use strcmp"
This reverts commit 5bf2c5ce9b.
2012-11-13 17:50:40 -06:00
Serge Hallyn
8dff643f44 Initialize curtime to silence spurious compiler warning
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-13 17:49:13 -06:00
Serge Hallyn
ca0a33644a lxc-ssh: fix message about ssh key insertion
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-13 17:19:13 -06:00
Serge Hallyn
d7436fc1df Fix reverse check: error out only if mkdir(cgroup/lxc) fails NOT due to -EEXIST
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-13 17:18:22 -06:00
Stéphane Graber
24b292c917 lxc-create: Support passing a full path to -t
In some cases it may be useful to pass a full path to an executable
template script directly to lxc-create.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 16:41:14 -05:00
Stéphane Graber
aeb958be83 lxc-ls: Don't exit 1 when no container or help
lxc-ls is currently exiting with return code 1 when called with --help
or when called on a system without containers.

This behaviour isn't documented in the manpage and isn't terribly intuitive.
It's been the source of quite a few weird failures in scripts running with
set -e.

As a user calling --help is a voluntary action, lxc-ls should exit 0.

Also, as lxc-ls's goal is solely to list containers, showing an error and
exiting with return code 1 when there's no container seems counter-intuitive
and error-prone.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 16:20:53 -05:00
Stéphane Graber
9b106331e7 Update .gitignore for current list of binaries and templates
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 15:56:41 -05:00
Stéphane Graber
7822022c4c Detect which name to use for docbook2x-man
docbook2x-man doesn't have the same name on Debian based systems as
on RedHat based systems, add some magic to configure.ac to detect and
substitute the proper name in Makefile.am

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 15:38:50 -05:00
Peter Simons
aa8d013ec5 Update documentation to Docbook 4.5
The package 'docbook-tools' [1] required to format Docbook 3.0 into man pages
has been obsoleted a long time ago and can no longer be downloaded from its
former homepage. Recent versions of that package -- now called 'docbook2X' --,
cannot deal with that old markup format anymore (and don't support the '-w all'
command line switch either). To remedy these issues, all SGML files have been
updated to Docbook 4.5 so that recent versions of docbook2man can process them.

[1] http://sources.redhat.com/docbook-tools/
[2] http://docbook2x.sourceforge.net/

Signed-off-by: Peter Simons <simons@cryp.to>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 15:20:39 -05:00
Frank Scholten
e54d6cce17 Updated README and INSTALL. autogen.sh command should be run before configure.
Signed-off-by: Frank Scholten <frank@frankscholten.nl>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 14:56:02 -05:00
Stéphane Graber
5bf2c5ce9b Fix check against LXCROOTFSMOUNT to use strcmp
The check for conf->rootfs.mount not being equal to LXCROOTFSMOUNT
wasn't done with strcmp which was leading to undefined behaviour
and triggered gcc warnings.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 14:39:43 -05:00
Stéphane Graber
eeb6cb8305 Fix autogen failing because of clean/distclean overrides
A previous patch added a clean/distclean target to config/Makefile.am.
This conflicts with automake's own target.

This change replaces those by a clean-local and distclean-local target.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 14:33:55 -05:00
Stéphane Graber
ad563aea97 Set automake flags and CFLAGS
Set automake's flags to -Wall -Werror as well as the general
CFLAGS to -Wall and -Werror when building using gcc.

This should catch any regression on build warnings now that we are in
a pretty clean state.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 14:32:39 -05:00
Dwight Engen
434445ee1e Reinstate README file in rootfs directory
Change 5fd8314f removed the README file explaining why the
rootfs directory has to exist. Doing so broke the build on
Fedora 17 since this directory will not be created by make
install and thus the spec file cannot find it.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 13:47:51 -05:00
Diego Elio Pettenò
64c3c9020b build: make sure to expand all variables that are substituted.
This fixes lxc-sshd still referring to '${libdir}'.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 13:47:44 -05:00
Stéphane Graber
d76db55b6c lxc-start-ephemeral: Wipe the whole container on exit, not just the rootfs
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2012-11-12 13:18:32 -05:00
Stéphane Graber
f282a2f4b8 Revert "Update documentation to Docbook 4.5"
This reverts commit 9a84044bc97098821cce2721ea40a1368f17a091.

The changes made the branch to fail to build on Ubuntu/Debian, so
reverting the commits and re-opening the pull request.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2012-11-12 13:18:32 -05:00