#!/usr/bin/python

import os

def main():
 
    cgroupDir = '/sys/fs/cgroup/'
    lxcDir = '/libvirt/lxc/'  

    print "################################"
    print "Memory stats per LinuX Container"
    print "################################"

    memoryDir = cgroupDir + 'memory' + lxcDir

    for dirname, dirnames, filenames in os.walk(memoryDir):
        for subdirname in dirnames:
            lxcName = os.path.relpath(subdirname)

            with open(os.path.join(dirname, subdirname)+'/memory.stat', 'r') as f:
                lines = f.read().splitlines()

            mem_rss = 0
            mem_cache = 0
            mem_swap = 0

            for line in lines:
                data = line.split()
                if data[0] == "total_rss":
                        mem_rss = int(data[1])
                elif data[0] == "total_cache":
                        mem_cache = int(data[1])
                elif data[0] == "total_swap":
                        mem_swap = int(data[1])

            print lxcName, mem_rss, mem_cache, mem_swap

    print
    print "#############################"
    print "CPU stats per LinuX Container"
    print "#############################"

    cpuacctDir = cgroupDir + 'cpu,cpuacct' + '/system/libvirtd.service/' + lxcDir

    for dirname, dirnames, filenames in os.walk(cpuacctDir):
        for subdirname in dirnames:
            lxcName = os.path.relpath(subdirname)

            cpu_usage = 0

            with open(os.path.join(dirname, subdirname)+'/cpuacct.usage', 'r') as f:
                cpu_usage = int(f.readline())

            print lxcName, cpu_usage

if __name__ == "__main__":
	main()
