diff options
author | Michel Normand <normand@fr.ibm.com> | 2009-11-24 09:47:27 +0100 |
---|---|---|
committer | Daniel Lezcano <dlezcano@fr.ibm.com> | 2009-11-24 09:47:27 +0100 |
commit | fa0822279412ab29f535a9f1ad996949f04286d8 (patch) | |
tree | 727f951fc037457d2ebeaa98a3d0c3270e624e3c | |
parent | fix fdleak and errors in lxc_create_tty() (diff) | |
download | lxc-fa0822279412ab29f535a9f1ad996949f04286d8.tar.gz lxc-fa0822279412ab29f535a9f1ad996949f04286d8.tar.bz2 lxc-fa0822279412ab29f535a9f1ad996949f04286d8.zip |
lxc-info to report the FROZEN state
this state is reported when the lxc-freeze command
was issued on the container.
Signed-off-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
-rw-r--r-- | src/lxc/state.c | 16 | ||||
-rw-r--r-- | src/lxc/state.h | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/lxc/state.c b/src/lxc/state.c index 0496657..029f0ae 100644 --- a/src/lxc/state.c +++ b/src/lxc/state.c @@ -40,7 +40,7 @@ lxc_log_define(lxc_state, lxc); static char *strstate[] = { "STOPPED", "STARTING", "RUNNING", "STOPPING", - "ABORTING", "FREEZING", "FROZEN", + "ABORTING", "FREEZING", "FROZEN", "THAWED", }; const char *lxc_state2str(lxc_state_t state) @@ -72,13 +72,17 @@ int lxc_rmstate(const char *name) static int freezer_state(const char *name) { + char *nsgroup; char freezer[MAXPATHLEN]; char status[MAXPATHLEN]; FILE *file; int err; - snprintf(freezer, MAXPATHLEN, - LXCPATH "/%s/freezer.state", name); + err = lxc_cgroup_path_get(&nsgroup, name); + if (err) + return -1; + + snprintf(freezer, MAXPATHLEN, "%s/freezer.state", nsgroup); file = fopen(freezer, "r"); if (!file) @@ -95,7 +99,7 @@ static int freezer_state(const char *name) return lxc_str2state(status); } -lxc_state_t lxc_getstate(const char *name) +static lxc_state_t __lxc_getstate(const char *name) { struct lxc_command command = { .request = { .type = LXC_COMMAND_STATE }, @@ -128,11 +132,11 @@ lxc_state_t lxc_getstate(const char *name) return command.answer.ret; } -lxc_state_t lxc_state(const char *name) +lxc_state_t lxc_getstate(const char *name) { int state = freezer_state(name); if (state != FROZEN && state != FREEZING) - state = lxc_getstate(name); + state = __lxc_getstate(name); return state; } diff --git a/src/lxc/state.h b/src/lxc/state.h index c56860d..f641698 100644 --- a/src/lxc/state.h +++ b/src/lxc/state.h @@ -25,7 +25,7 @@ typedef enum { STOPPED, STARTING, RUNNING, STOPPING, - ABORTING, FREEZING, FROZEN, MAX_STATE, + ABORTING, FREEZING, FROZEN, THAWED, MAX_STATE, } lxc_state_t; extern int lxc_rmstate(const char *name); |