Skip to content

Commit

Permalink
tests: Support cgmanager
Browse files Browse the repository at this point in the history
When cgmanager is around, use dbus-send to setup the cgroups, this
allows the tests to work in a container without cgroupfs access.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
  • Loading branch information
stgraber committed Mar 13, 2014
1 parent 3f50041 commit 3f458ed
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 10 deletions.
26 changes: 21 additions & 5 deletions src/tests/lxc-test-unpriv
Expand Up @@ -93,11 +93,27 @@ chown -R $TUSER /run/user/$(id -u $TUSER)

cd $HDIR

for d in /sys/fs/cgroup/*; do
[ ! -d $d/lxctest ] && mkdir $d/lxctest
chown -R $TUSER $d/lxctest
echo $$ > $d/lxctest/tasks
done
if [ -e /sys/fs/cgroup/cgmanager/sock ]; then
for d in hugetlb cpuset cpu cpuacct memory devices freezer blkio perf_event; do
dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
--type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \
string:$d string:$TUSER >/dev/null

dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
--type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \
string:$d string:$TUSER int32:$(id -u $TUSER) int32:$(id -g $TUSER) >/dev/null

dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
--type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \
string:$d string:$TUSER int32:$$ >/dev/null
done
else
for d in /sys/fs/cgroup/*; do
[ ! -d $d/lxctest ] && mkdir $d/lxctest
chown -R $TUSER $d/lxctest
echo $$ > $d/lxctest/tasks
done
fi

run_cmd lxc-create -t download -n c1 -- -d ubuntu -r trusty -a $ARCH
run_cmd lxc-start -n c1 -d
Expand Down
26 changes: 21 additions & 5 deletions src/tests/lxc-test-usernic.in
Expand Up @@ -86,11 +86,27 @@ lxc.id_map = u 0 910000 10000
lxc.id_map = g 0 910000 10000
EOF

for d in /sys/fs/cgroup/*; do
[ ! -d $d/lxctest ] && mkdir $d/lxctest
chown -R usernic-user $d/lxctest
echo $$ > $d/lxctest/tasks
done
if [ -e /sys/fs/cgroup/cgmanager/sock ]; then
for d in hugetlb cpuset cpu cpuacct memory devices freezer blkio perf_event; do
dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
--type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Create \
string:$d string:usernic-user >/dev/null

dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
--type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.Chown \
string:$d string:usernic-user int32:$(id -u usernic-user) int32:$(id -g usernic-user) >/dev/null

dbus-send --print-reply --address=unix:path=/sys/fs/cgroup/cgmanager/sock \
--type=method_call /org/linuxcontainers/cgmanager org.linuxcontainers.cgmanager0_0.MovePid \
string:$d string:usernic-user int32:$$ >/dev/null
done
else
for d in /sys/fs/cgroup/*; do
[ ! -d $d/lxctest ] && mkdir $d/lxctest
chown -R usernic-user $d/lxctest
echo $$ > $d/lxctest/tasks
done
fi

mkdir -p /run/user/$(id -u usernic-user)
chown -R usernic-user /run/user/$(id -u usernic-user) /home/usernic-user
Expand Down

0 comments on commit 3f458ed

Please sign in to comment.