Quoting Dwight Engen (dwight.en...@gmail.com): > fix up api test to run and add test for new [gs]et_cgroup_item > > Signed-off-by: Dwight Engen <dwight.en...@oracle.com>
For the set, Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> > --- > src/lua-lxc/core.c | 35 +++++++++++++++++++++++++++++++++++ > src/lua-lxc/lxc.lua | 16 ++++++++++++++++ > src/lua-lxc/test/apitest.lua | 13 +++++++++++++ > 3 files changed, 64 insertions(+) > > diff --git a/src/lua-lxc/core.c b/src/lua-lxc/core.c > index 002e8bf..ea19cc3 100644 > --- a/src/lua-lxc/core.c > +++ b/src/lua-lxc/core.c > @@ -282,6 +282,29 @@ static int container_clear_config_item(lua_State *L) > return 1; > } > > +static int container_get_cgroup_item(lua_State *L) > +{ > + struct lxc_container *c = lua_unboxpointer(L, 1, CONTAINER_TYPENAME); > + const char *key = luaL_checkstring(L, 2); > + int len; > + char *value; > + > + len = c->get_cgroup_item(c, key, NULL, 0); > + if (len <= 0) > + goto not_found; > + > + value = alloca(sizeof(char)*len + 1); > + if (c->get_cgroup_item(c, key, value, len + 1) != len) > + goto not_found; > + > + lua_pushstring(L, value); > + return 1; > + > +not_found: > + lua_pushnil(L); > + return 1; > +} > + > static int container_get_config_item(lua_State *L) > { > struct lxc_container *c = lua_unboxpointer(L, 1, CONTAINER_TYPENAME); > @@ -305,6 +328,16 @@ not_found: > return 1; > } > > +static int container_set_cgroup_item(lua_State *L) > +{ > + struct lxc_container *c = lua_unboxpointer(L, 1, CONTAINER_TYPENAME); > + const char *key = luaL_checkstring(L, 2); > + const char *value = luaL_checkstring(L, 3); > + > + lua_pushboolean(L, !!c->set_cgroup_item(c, key, value)); > + return 1; > +} > + > static int container_set_config_item(lua_State *L) > { > struct lxc_container *c = lua_unboxpointer(L, 1, CONTAINER_TYPENAME); > @@ -361,6 +394,8 @@ static luaL_Reg lxc_container_methods[] = > {"config_file_name", container_config_file_name}, > {"load_config", container_load_config}, > {"save_config", container_save_config}, > + {"get_cgroup_item", container_get_cgroup_item}, > + {"set_cgroup_item", container_set_cgroup_item}, > {"get_config_path", container_get_config_path}, > {"set_config_path", container_set_config_path}, > {"get_config_item", container_get_config_item}, > diff --git a/src/lua-lxc/lxc.lua b/src/lua-lxc/lxc.lua > index aa80a95..7c9580e 100755 > --- a/src/lua-lxc/lxc.lua > +++ b/src/lua-lxc/lxc.lua > @@ -189,6 +189,10 @@ function container:clear_config_item(key) > return self.core:clear_config_item(key) > end > > +function container:get_cgroup_item(key) > + return self.core:get_cgroup_item(key) > +end > + > function container:get_config_item(key) > local value > local vals = {} > @@ -209,6 +213,10 @@ function container:get_config_item(key) > return vals > end > > +function container:set_cgroup_item(key, value) > + return self.core:set_cgroup_item(key, value) > +end > + > function container:set_config_item(key, value) > return self.core:set_config_item(key, value) > end > @@ -410,6 +418,14 @@ function M.containers_running(names_only) > return containers > end > > +function M.version_get() > + return core.version_get() > +end > + > +function M.default_config_path_get() > + return core.default_config_path_get() > +end > + > lxc_path = core.default_config_path_get() > cgroup_path = cgroup_path_get() > > diff --git a/src/lua-lxc/test/apitest.lua b/src/lua-lxc/test/apitest.lua > index 1365f91..f957ca4 100755 > --- a/src/lua-lxc/test/apitest.lua > +++ b/src/lua-lxc/test/apitest.lua > @@ -206,6 +206,17 @@ function test_container_in_cfglist(should_find) > end > end > > +function test_container_cgroup() > + log(0, "Test get/set cgroup items...") > + > + max_mem = container:get_cgroup_item("memory.max_usage_in_bytes") > + saved_limit = container:get_cgroup_item("memory.limit_in_bytes") > + assert(saved_limit ~= max_mem) > + assert(container:set_cgroup_item("memory.limit_in_bytes", max_mem)) > + assert(container:get_cgroup_item("memory.limit_in_bytes") ~= saved_limit) > + assert(container:set_cgroup_item("memory.limit_in_bytes", "-1")) > +end > + > function test_config_items() > log(0, "Test set/clear configuration items...") > > @@ -313,6 +324,8 @@ test_config_network(0) > test_container_start() > test_container_started() > > +test_container_cgroup() > + > test_container_freeze() > test_container_frozen() > test_container_unfreeze() > -- > 1.8.3.1 > > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Lxc-devel mailing list > Lxc-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lxc-devel ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel