The patch series is missing Makefile entries for test data, so I will just fix this on a per-patch basis rather than doing another review cycle.
Cheers, Riba On Wed, Jul 30, 2014 at 6:36 PM, Yuto KAWAMURA(kawamuray) < [email protected]> wrote: > Ganeti supports LXC as one of its hypervisor but it is outdated and broken. > This patch series fixes existing broken implementation of LXC hypervisor. > > First, fix existing broken implementation of LXC hypervisor to make it > working. > Fix around storage mount, instance start, instance stop, daemonized process > handling and add unit tests. > These changes are expecting LXC >= 1.0.0 is installed, but the old > implementation was totally broken so I believe adding this requirement > won't > be a problem. > > Second, improve around cgroup management to support various environment. > Existing implementation of cgroup functions in hv_lxc is very poor because > it assuming cgroup fs is already mounted, and also assuming first mount > point > of cgroup fs that appeares in /proc/mounts, containing all subsystems in > it. > We should mount required cgroup fs manually if needed and respect cgroup > hierarchy that is currently belonging. > > Third, change location of lxc-start log file for usability. > - Add instance uuid to lxc-start log file name to keep it isolated between > old/new instances having same name. > - Move lxc-start log file location from var/run/ganeti/lxc/*.log > to var/log/ganeti/lxc/*.log. It is more handy if we could do something > like: > tail -F /var/log/ganeti/{,lxc/}*.log > > Yuto KAWAMURA(kawamuray) (24): > Fix quote style in hv_lxc > Fix broken StopInstance in hv_lxc > Fix GetAllInstanceInfo in hv_lxc > Add functions to perform block device partition mapping > Add functions to manage instance stash file in hv_lxc > Mount rootfs by LXC container > Change StartInstance behavior in hv_lxc > Add _IsInstanceAlive method in hv_lxc > Change GetInstanceInfo to use _IsInstanceAlive in hv_lxc > Change StopInstance to use _IsInstanceAlive in hv_lxc > Add RunResultOk helper to hv_lxc unit test > Add unit tests for _IsInstanceAlive of hv_lxc > Add unit tests for GetInstanceInfo of hv_lxc > Extend failed_by_timeout flag to RunResult > Improve starting process of LXC container > Rename functions _Instance*File to _Instance*FilePath > Changed strategy of cgroup fs management in hv_lxc > Add _GetCgroupInstanceValue in hv_lxc > Respect cgroup hierarchy currently belonging in hv_lxc > Add unit tests for cgroup management functions of hv_lxc > Add function _EnsureCgroupMounts in hv_lxc > Include the instance uuid in the lxc instance log filename > Move lxc-start log file location to var/log/ganeti/lxc > Add additional verification procedure to hv_lxc > > lib/hypervisor/hv_lxc.py | 531 > +++++++++++++++++---- > lib/utils/process.py | 6 +- > lib/utils/storage.py | 69 ++- > man/gnt-instance.rst | 32 ++ > src/Ganeti/Constants.hs | 18 +- > .../cpuset/some_group/lxc/instance1/cpuset.cpus | 1 + > .../devices/some_group/lxc/instance1/devices.list | 1 + > .../memory/lxc/instance1/memory.limit_in_bytes | 1 + > test/data/proc_cgroup.txt | 4 + > test/py/ganeti.hypervisor.hv_lxc_unittest.py | 185 +++++++ > test/py/ganeti.utils.process_unittest.py | 10 + > 11 files changed, 762 insertions(+), 96 deletions(-) > create mode 100644 > test/data/cgroup_root/cpuset/some_group/lxc/instance1/cpuset.cpus > create mode 100644 > test/data/cgroup_root/devices/some_group/lxc/instance1/devices.list > create mode 100644 > test/data/cgroup_root/memory/lxc/instance1/memory.limit_in_bytes > create mode 100644 test/data/proc_cgroup.txt > > -- > 1.8.5.5 > > Hrvoje Ribicic Ganeti Engineering Google Germany GmbH Dienerstr. 12, 80331, München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores Steuernummer: 48/725/00206 Umsatzsteueridentifikationsnummer: DE813741370
