On Wed, 21 Aug 2013 14:35:28 -0500
Serge Hallyn <serge.hal...@ubuntu.com> wrote:

> Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com>

Acked-by: Dwight Engen <dwight.en...@oracle.com>

> ---
>  src/lxc/lxc_cgroup.c | 31 ++++++++++++++++++++-----------
>  1 file changed, 20 insertions(+), 11 deletions(-)
> 
> diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c
> index 094686d..7f6eb63 100644
> --- a/src/lxc/lxc_cgroup.c
> +++ b/src/lxc/lxc_cgroup.c
> @@ -29,6 +29,7 @@
>  #include <lxc/lxc.h>
>  #include <lxc/log.h>
>  
> +#include <lxc/lxccontainer.h>
>  #include "arguments.h"
>  
>  lxc_log_define(lxc_cgroup_ui, lxc_cgroup);
> @@ -64,6 +65,7 @@ Options :\n\
>  int main(int argc, char *argv[])
>  {
>       char *state_object = NULL, *value = NULL;
> +     struct lxc_container *c;
>  
>       if (lxc_arguments_parse(&my_args, argc, argv))
>               return -1;
> @@ -74,29 +76,36 @@ int main(int argc, char *argv[])
>  
>       state_object = my_args.argv[0];
>  
> -     if ((argc) > 1)
> -             value = my_args.argv[1];
> +     c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
> +     if (!c)
> +             return -1;
> +     if (!c->is_running(c)) {
> +             ERROR("'%s:%s' is not running", my_args.lxcpath[0],
> my_args.name);
> +             lxc_container_put(c);
> +             return -1;
> +     }
>  
> -     if (value) {
> -             if (lxc_cgroup_set(my_args.name, state_object,
> value, my_args.lxcpath[0])) {
> +     if ((my_args.argc) > 1) {
> +             value = my_args.argv[1];
> +             if (!c->set_cgroup_item(c, state_object, value)) {
>                       ERROR("failed to assign '%s' value to '%s'
> for '%s'", value, state_object, my_args.name);
> +                     lxc_container_put(c);
>                       return -1;
>               }
>       } else {
> -             const unsigned long len = 4096;
> -             int ret;
> +             int len = 4096;
>               char buffer[len];
> -
> -             ret = lxc_cgroup_get(my_args.name, state_object,
> buffer, len, my_args.lxcpath[0]);
> +             int ret = c->get_cgroup_item(c, state_object,
> buffer, len); if (ret < 0) {
> -                     ERROR("failed to retrieve value of '%s' for
> '%s'",
> -                           state_object, my_args.name);
> +                     ERROR("failed to retrieve value of '%s' for
> '%s:%s'",
> +                           state_object, my_args.lxcpath[0],
> my_args.name);
> +                     lxc_container_put(c);
>                       return -1;
>               }
> -
>               printf("%*s", ret, buffer);
>       }
>  
> +     lxc_container_put(c);
>       return 0;
>  }


------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to