[lxc-devel] [PATCH] lxc-ls: Add a few new columns
Serge Hallyn
serge.hallyn at ubuntu.com
Thu Feb 13 17:06:27 UTC 2014
Quoting Stéphane Graber (stgraber at ubuntu.com):
> This adds support for:
> - memory (total memory)
> - ram
> - swap
>
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> ---
> src/lxc/lxc-ls | 43 +++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 41 insertions(+), 2 deletions(-)
>
> diff --git a/src/lxc/lxc-ls b/src/lxc/lxc-ls
> index fa53fac..c65ae81 100755
> --- a/src/lxc/lxc-ls
> +++ b/src/lxc/lxc-ls
> @@ -111,7 +111,8 @@ def getSubContainers(container):
> return None
>
> # Constants
> -FIELDS = ("name", "state", "ipv4", "ipv6", "autostart", "pid")
> +FIELDS = ("name", "state", "ipv4", "ipv6", "autostart", "pid",
> + "memory", "ram", "swap")
>
> # Begin parsing the command line
> parser = argparse.ArgumentParser(description=_("LXC: List containers"),
> @@ -254,6 +255,45 @@ for container_name in lxc.list_containers(config_path=nest_lxcpath):
> except KeyError:
> pass
>
> + if 'memory' in args.fancy_format or \
> + 'ram' in args.fancy_format or \
> + 'swap' in args.fancy_format:
> +
> + if container.running:
> + try:
> + memory_total = int(container.get_cgroup_item(
> + "memory.usage_in_bytes"))
> + except:
> + memory_total = 0
> +
> + try:
> + memory_swap = int(container.get_cgroup_item(
> + "memory.memsw.usage_in_bytes"))
> + except:
> + memory_swap = 0
> + else:
> + memory_total = 0
> + memory_swap = 0
> +
> + if 'memory' in args.fancy_format:
> + if container.running:
> + entry['memory'] = "%sMB" % round(memory_total / 1048576, 2)
> + else:
> + entry['memory'] = "-"
> +
> + if 'ram' in args.fancy_format:
> + if container.running:
> + entry['ram'] = "%sMB" % round(
> + (memory_total - memory_swap) / 1048576, 2)
> + else:
> + entry['ram'] = "-"
> +
> + if 'swap' in args.fancy_format:
> + if container.running:
> + entry['swap'] = "%sMB" % round(memory_swap / 1048576, 2)
> + else:
> + entry['swap'] = "-"
> +
> # Get the IPs
> for family, protocol in {'inet': 'ipv4', 'inet6': 'ipv6'}.items():
> if protocol in args.fancy_format or args.nesting:
> @@ -263,7 +303,6 @@ for container_name in lxc.list_containers(config_path=nest_lxcpath):
> entry[protocol] = state
> continue
>
> - # FIXME: We should get get_ips working as non-root
> if container.running:
> if not SUPPORT_SETNS_NET:
> entry[protocol] = 'UNKNOWN'
> --
> 1.9.rc1
>
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
More information about the lxc-devel
mailing list