LGTM, only one nitpick! :D

On Thu, Jul 24, 2014 at 2:31 AM, Yuto KAWAMURA(kawamuray) <
[email protected]> wrote:

> _GetCgroupInstanceValue reads a cgroup parameter of an instance from the
> cgroup fs and returns it.
> This method was added to provide an unified interface for reading cgroup
> parameters and remove code which violates the DRY rule.
>
> Signed-off-by: Yuto KAWAMURA(kawamuray) <[email protected]>
> ---
>  lib/hypervisor/hv_lxc.py | 38 +++++++++++++++++++++++++++-----------
>  1 file changed, 27 insertions(+), 11 deletions(-)
>
> diff --git a/lib/hypervisor/hv_lxc.py b/lib/hypervisor/hv_lxc.py
> index 15548a5..5bcaa6f 100644
> --- a/lib/hypervisor/hv_lxc.py
> +++ b/lib/hypervisor/hv_lxc.py
> @@ -236,36 +236,52 @@ class LXCHypervisor(hv_base.BaseHypervisor):
>      return cls._MountCgroupSubsystem(subsystem)
>
>    @classmethod
> +  def _GetCgroupInstanceValue(cls, instance_name, subsystem, param):
> +    """Return the value of specified cgroup parameter.
>

... the specified ...


> +
> +    @type instance_name: string
> +    @param instance_name: instance name
> +    @type subsystem: string
> +    @param subsystem: cgroup subsystem name
> +    @type param: string
> +    @param param: cgroup subsystem parameter name
> +    @rtype string
> +    @return value read from cgroup subsystem fs
> +
> +    """
> +    subsys_dir = cls._GetOrPrepareCgroupSubsysMountPoint(subsystem)
> +    param_file = utils.PathJoin(subsys_dir, "lxc", instance_name, param)
> +    return utils.ReadFile(param_file).rstrip("\n")
> +
> +  @classmethod
>    def _GetCgroupCpuList(cls, instance_name):
>      """Return the list of CPU ids for an instance.
>
>      """
> -    cgroup = cls._GetOrPrepareCgroupSubsysMountPoint("cpuset")
>      try:
> -      cpus = utils.ReadFile(utils.PathJoin(cgroup, 'lxc',
> -                                           instance_name,
> -                                           "cpuset.cpus"))
> +      cpumask = cls._GetCgroupInstanceValue(instance_name,
> +                                            "cpuset", "cpuset.cpus")
>      except EnvironmentError, err:
>        raise errors.HypervisorError("Getting CPU list for instance"
>                                     " %s failed: %s" % (instance_name,
> err))
>
> -    return utils.ParseCpuMask(cpus)
> +    return utils.ParseCpuMask(cpumask)
>
>    @classmethod
>    def _GetCgroupMemoryLimit(cls, instance_name):
>      """Return the memory limit for an instance
>
>      """
> -    cgroup = cls._GetOrPrepareCgroupSubsysMountPoint("memory")
>      try:
> -      memory = int(utils.ReadFile(utils.PathJoin(cgroup, 'lxc',
> -                                                 instance_name,
> -
> "memory.limit_in_bytes")))
> +      mem_limit = cls._GetCgroupInstanceValue(instance_name,
> +                                              "memory",
> +                                              "memory.limit_in_bytes")
> +      mem_limit = int(mem_limit)
>      except EnvironmentError:
>        # memory resource controller may be disabled, ignore
> -      memory = 0
> +      mem_limit = 0
>
> -    return memory
> +    return mem_limit
>
>    def ListInstances(self, hvparams=None):
>      """Get the list of running instances.
> --
> 1.8.5.5
>
>

Reply via email to