aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Normand <normand@fr.ibm.com>2009-11-24 09:47:27 +0100
committerDaniel Lezcano <dlezcano@fr.ibm.com>2009-11-24 09:47:27 +0100
commitfa0822279412ab29f535a9f1ad996949f04286d8 (patch)
tree727f951fc037457d2ebeaa98a3d0c3270e624e3c
parentfix fdleak and errors in lxc_create_tty() (diff)
downloadlxc-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.c16
-rw-r--r--src/lxc/state.h2
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);