8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# lxc: linux Container library
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Serge Hallyn <serge.hallyn@ubuntu.com>
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# This library is free software; you can redistribute it and/or
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# modify it under the terms of the GNU Lesser General Public
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# License as published by the Free Software Foundation; either
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# version 2.1 of the License, or (at your option) any later version.
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# This library is distributed in the hope that it will be useful,
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# but WITHOUT ANY WARRANTY; without even the implied warranty of
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Lesser General Public License for more details.
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# You should have received a copy of the GNU Lesser General Public
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# License along with this library; if not, write to the Free Software
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# At the moment this only tests cgroup automount. Testing proc and
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# sys automounts would be worthwhile.
9ec45e7faa3648a36cb01aed9e230bd49b450fe0Serge Hallyn# cgmanager doesn't do the same cgroup filesystem mounting
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# Tests are as follows:
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 1. check that freezer controller is mounted
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 2. check that it is cgroupfs for cgroup-full (/cgroup.procs exists) or
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# tmpfs for cgroup
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 3. check that root cgroup dir is readonly or not (try mkdir)
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 4. check that the container's cgroup dir is readonly or not
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# 5. check that the container's cgroup dir is cgroupfs (/cgroup.procs exists)
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup:ro proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup:rw proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyn# cgroup-full
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup-full:mixed proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynrmdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup-full:ro proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xy || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/$cg/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "Starting phase $PHASE"
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynecho "lxc.mount.auto = cgroup-full:rw proc:mixed sys:mixed" >> $config
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallyncg=`awk -F: '/freezer/ { print $3 }' /proc/$pid/cgroup`
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynstat /proc/$pid/root/sys/fs/cgroup/freezer/cgroup.procs || notfound=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/xx || ro=1
8aa1044fd83c407e38c66a1ff46a9edfe02d7c78Serge Hallynmkdir /proc/$pid/root/sys/fs/cgroup/freezer/$cg/xx || ro=1