Commit Graph

2861 Commits

Author SHA1 Message Date
Michael H. Warfield
41cf1ac30d Updated lxc-opensuse for common configuration changes.
Updated the lxc-opensuse template for the changes for the common
configuration used by the download template.  Changed the default
network mode in the container to dhcp.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-18 16:56:11 -04:00
Serge Hallyn
52036991a0 seccomp: warn but continue on unresolvable syscalls
If a syscall is listed which is not resolvable, continue.  This allows
us to keep a more complete list of syscalls in a global seccomp policy
without having to worry about older kernels not supporting the newer
syscalls.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-18 16:56:04 -04:00
Leonid Isaev
08182d4452 bdev.c: initialize a pointer to avoid build failures with -Werror=maybe-uninitialized
Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-17 22:57:56 -04:00
José Martínez
654bf1af09 lxc-ubuntu: use btrfs subvolumes and snapshots
Try to create the cache rootfs as a btrfs subvolume, and use btrfs
snapshots to copy the rootfs if btrfs is selected as backing store.

Signed-off-by: José Martínez <xosemp@gmail.com>
2014-06-17 23:01:33 +02:00
Stéphane Graber
f44b73e189 lxc-autostart: Respect -P
-P was only used for log setup and not when retrieving the container list.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-17 11:55:29 -04:00
Stéphane Graber
f69fd24ea3 tests: Avoid the download template when possible
The use of the download template with an hardcoded --arch=amd64 in aa.c
was causing test failures on any platform incapable of running amd64
binaries.

This wasn't noticed in the CI environment as we run the tests within
containers on an amd64 kernel but this caused failures on the Ubuntu CI
environment.

Instead, let's use the busybox template, tweaking the configuration when
needed to match the needs of the testcase.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-14 15:48:55 -04:00
Stéphane Graber
6ebc050477 tests: Don't fail when HOME isn't defined
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-14 15:48:49 -04:00
Stéphane Graber
91e7b27880 tests: apparmor: Always end with a newline
Some error messages in lxc-test-apparmor didn't end with a newline,
leading to slightly difficult to read output.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-14 15:48:40 -04:00
Stéphane Graber
b38b62a6d4 cgfs: Log the whole cgroup path too
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-10 16:12:56 -04:00
Stéphane Graber
b7aa56b85c tests: Wait 5s for init to respond in lxc-test-autostart
lxc-test-autostart occasionaly fails at the restart test in the CI
environment. Looking at the current test case, the most obvious race
there is if lxc-wait exists succesfuly immediately after LXC marked the
container RUNNING (init spawned) but before init had a chance to setup
the signal handlers.

To avoid this potential race period, let's add a 5s delay between the
tests to give a chance for init to finish starting up.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-10 16:12:39 -04:00
Serge Hallyn
1c1c70514f container start: check for start hooks in container rootfs
Do so early enough that we can report a meaningful failure.

(This should fix https://github.com/lxc/lxc/issues/225)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-09 23:42:39 -04:00
Stéphane Graber
4e31246a25 python3: Fix crashes in snapshot()
This makes sure all PyObject structs are always initialized to NULL,
this will fix issues such as (issue #239).

Also add a snapshot/list/restore testcase to the python3 api test code.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-09 15:24:10 -04:00
KATOH Yasufumi
0f84d97e6d doc: Fix typo in lxc-autostart(1)
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-05 09:31:19 -04:00
KATOH Yasufumi
f57517ef96 doc: Update Japanese man pages for the description of boot and group handling
Update lxc-autostart(1) and lxc.container.conf(5) for commit 015f0dd.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-05 09:31:17 -04:00
Stéphane Graber
307ab05d0f Try to be more helpful on container startup failure
This hides some of the confusing "command X failed to receive response"
why are usually caused by another more understandable error.

On failure to start() from lxc-start, a new error message is displayed,
suggesting the user sets logfile and loglevel and if using -d, restarts
the container in the foreground instead.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-04 17:03:24 -04:00
Stéphane Graber
809a1539a3 lxc-download: Attempt to get the GPG key 3 times
This is to deal with the GPG pool occasionaly yielding broken servers.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-03 15:52:43 -04:00
Michael H. Warfield
e5469dadd9 lxc-fedora.in: Correct some systemd target setups.
Set the halt.target action to be sigpwr.target.  This allows
SIGPWR to properly shut the container down from lxc-stop.

Renable the systemd-journald.service.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 15:06:35 -04:00
Serge Hallyn
840f05df8a lxcapi_snapshot: check that c is defined
before using it, like the other snapshot api methods do.

This will need to go into stable-1.0 as well.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 15:06:30 -04:00
Stéphane Graber
1b03969c7c python3: Handle invalid global config keys
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-03 11:31:31 -04:00
Stéphane Graber
8df68465f2 python3: Don't require a template name
The template name isn't required, if it's not passed, then create will
simply be asked to create a container without a rootfs.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-03 11:31:09 -04:00
bartekplus
0d6b9aea63 Free lxc configuration structure
Signed-off-by: Bartosz Tomczyk <bartekplus@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 11:29:20 -04:00
bartekplus
8255688a65 Corrected debug message
Signed-off-by: Bartosz Tomczyk <bartekplus@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 11:25:50 -04:00
TAMUKI Shoichi
aadd458215 lxc-plamo: fix for configuring network interface
Fix configure_plamo so as not to configure wireless network interface
in containers even if the host uses wireless network interface.

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 11:11:51 -04:00
Dwight Engen
0520c252da point user to updated man page in template boilerplate
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-03 11:11:42 -04:00
Michael H. Warfield
015f0dd792 lxc-autostart: rework boot and group handling
This adds new functionality to lxc-autostart.

*) The -g / --groups option is multiple cummulative entry.
	This may be mixed freely with the previous comma separated
	group list convention.  Groups are processed in the
	order they first appear in the aggregated group list.

*) The NULL group may be specified in the group list using either a
	leading comma, a trailing comma, or an embedded comma.

*) Booting proceeds in order of the groups specified on the command line
	then ordered by lxc.start.order and name collalating sequence.

*) Default host bootup is now specified as "-g onboot," meaning that first
	the "onboot" group is booted and then any remaining enabled
	containers in the NULL group are booted.

*) Adds documentation to lxc-autostart for -g processing order and
	combinations.

*) Parameterizes bootgroups, options, and shutdown delay in init scripts
	and services.

*) Update the various init scripts to use lxc-autostart in a similar way.

Reported-by: CDR <venefax@gmail.com>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 11:10:01 -04:00
Serge Hallyn
77ae87cdeb Fix building init.lxc.static under bionic
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2014-06-03 10:11:09 -04:00
Serge Hallyn
07ffb1303e configure.ac: don't let -lcgmanager end up in LIBS
AC_SEARCH_LIBS always places the library being queried into LIBS.  We
don't want that - we were only checking whether a function is
available.  Not everything (notably not init.lxc.static) needs to
link against -lcgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 10:11:05 -04:00
Serge Hallyn
9d9c111c61 execute: don't bind mount init.lxc.static if lxc-init is in the container
Move choose_init into utils.c so we can re-use it.  Make it and on_path
accept an optional rootfs argument to prepend to the paths when checking
whether the file exists.

Also add lxc.init.static to .gitignore

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 10:11:01 -04:00
Serge Hallyn
041cb4999b execute: try /lxc.init.static as last resort
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 10:10:56 -04:00
Serge Hallyn
2322903baa execute: bind init.lxc.static into container
Changelog:

May 19: put init.lxc.static into container's root dir
	rather than under SBINDIR [stgraber].

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 10:10:55 -04:00
Serge Hallyn
2d4b3e3d91 add init.lxc.static binary
To avoid having to copy all the library dependencies into the container.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-06-03 10:10:39 -04:00
bartekplus
c83462d56d Fix incorrect value used in comparison
Signed-off-by: Bartosz Tomczyk <bartekplus@gmail.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
2014-05-28 13:52:12 -04:00
Serge Hallyn
bfd0b144b6 nbd: give paritions some time to show up
If you attach a file to /dev/nbd0, it may take some time for /dev/nbd0p1
to show up.  Allow up to 5 seconds in that case, then bail.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-25 10:43:53 -04:00
Serge Hallyn
35120d9c59 Specially handle block device rootfs
It is not possible to mount a block device from a non-init user namespace.
Therefore if root on the host is starting a container with a uid
mapping, and the rootfs is a block device, then mount the rootfs before
we spawn the container init task.

This addresses https://github.com/lxc/lxc/issues/221

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-25 10:43:50 -04:00
Serge Hallyn
9b8e3c96d8 attach: get personality through get_config command
Newer kernels optionally disallow reading /proc/$$/personality by
non-root users.  We can get the personality through the lxc command
interface, so do so.

Also try to be more consistent about personality being a signed long.
We had it as int, unsigned long, signed long throughout the code.

(This addresses bug
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1322067 :
3.15.0-1.x breaks lxc-attach for unprivileged containers)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-25 10:40:29 -04:00
S.Çağlar Onur
7e36f87e25 destroy the original container after making sure the snapshot exists (fixes #224)
Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-05-25 10:39:20 -04:00
S.Çağlar Onur
f49ad55851 move bdev_specs struct into lxccontainer.h to allow API users to use it
Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2014-05-21 15:23:40 -04:00
Serge Hallyn
ef4deb7f20 unpriv tests: also move caller into unbound cgroups
Otherwise the name=systemd cgroup isn't changed to one which
the lxc-unpriv user can write to, causing the test to fail.

This allows lxc-test-unpriv and lxc-test-usernic to pass when run in an
unprivileged container with cgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-21 15:23:40 -04:00
Serge Hallyn
df9b1831fb coverity: null check after dereference
we actually meant to check *p not p.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2014-05-21 11:53:11 -05:00
Dwight Engen
5b457f7bd8 lxc-oracle: fix ssh login under libvirt-lxc
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-20 17:09:27 -04:00
Serge Hallyn
fd527175ad cgmanager: slow down there (don't always grab abs cgroup path)
When I converted attach and enter to using move_pid_abs, these needed
to use the new get_pid_cgroup_abs method to get an absolute path.  But
for some inexplicable reason I also converted the functions which get
and set cgroup properties to use the absolute paths.  These are simply
not compatible with the cgmanager set_value and get_value methods.
This breaks for instance lxc-test-cgpath.

So undo that.  With this patch lxc-test-cgpath, lxc-test-autotest,
and lxc-test-concurrent once again pass in a nested container.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-20 17:09:13 -04:00
Dwight Engen
fd4d297dd6 lxc-oracle: set hostname with systemd
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-20 10:49:18 -04:00
ChangZhuo Chen (陳昌倬)
e702123afe lxc-devsetup: Don't use [[ because sh does not support it
Signed-off-by: ChangZhuo Chen (陳昌倬) <czchen@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-20 14:53:11 +02:00
Dwight Engen
b20ded6371 remove TODO file with old item in it
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-19 23:29:11 +02:00
Stéphane Graber
16bc569bc3
Fix syntax error in japanese manpage
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-19 23:03:43 +02:00
KATOH Yasufumi
a4dbc45fc7 doc: Update Japanese lxc.container.conf(5) for lxc.rootfs conventions
Update for commit f1c26f2

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-19 18:09:06 +02:00
KATOH Yasufumi
e053b31ef0 doc: Update Japanese lxc.container.conf(5) for guidance of lxc.mount.entry
Update for commit 6191f4f

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2014-05-19 18:09:02 +02:00
Serge Hallyn
6191f4f421 lxc.container.conf(5): update guidance for lxc.mount.entry mount target
For years it has been best practice to use a relative path as
the mount target.  But the manpage hasn't reflect that.  Fix it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
2014-05-16 14:26:52 -04:00
Serge Hallyn
3abd3e54eb nbd: exit cleanly if nbd fails to attach
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
2014-05-16 09:58:39 -04:00
Serge Hallyn
f1c26f2cbd lxc.container.conf: document the type: lxc.rootfs conventions
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
2014-05-16 09:58:22 -04:00