Skip to content

Commit

Permalink
lxc-ls: return all containers by default, new filter - list only defi…
Browse files Browse the repository at this point in the history
…ned containers.

1.x.x lxc-ls list all containers, new lxc-ls (2.x.x) implementation is
ignoring not defined containers.

related with issue: #984

Signed-off-by: Grzegorz Grzywacz <grzgrzgrz3@gmail.com>
  • Loading branch information
grzgrzgrz3 authored and stgraber committed Jul 14, 2017
1 parent 70325ef commit ffd6915
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
12 changes: 12 additions & 0 deletions doc/lxc-ls.sgml.in
Expand Up @@ -55,6 +55,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<arg choice="opt">--frozen</arg>
<arg choice="opt">--running</arg>
<arg choice="opt">--stopped</arg>
<arg choice="opt">--defined</arg>
<arg choice="opt">-f</arg>
<arg choice="opt">-F <replaceable>format</replaceable></arg>
<arg choice="opt">-g <replaceable>groups</replaceable></arg>
Expand Down Expand Up @@ -129,6 +130,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
</listitem>
</varlistentry>

<varlistentry>
<term>
<option>--defined</option>
</term>
<listitem>
<para>
List only defined containers.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<option>-f,--fancy</option>
Expand Down
1 change: 1 addition & 0 deletions src/lxc/arguments.h
Expand Up @@ -130,6 +130,7 @@ struct lxc_arguments {
bool ls_line;
bool ls_running;
bool ls_stopped;
bool ls_defined;

/* remaining arguments */
char *const *argv;
Expand Down
9 changes: 8 additions & 1 deletion src/lxc/tools/lxc_ls.c
Expand Up @@ -53,6 +53,7 @@ lxc_log_define(lxc_ls, lxc);
#define LS_RUNNING 4
#define LS_NESTING 5
#define LS_FILTER 6
#define LS_DEFINED 7

#ifndef SOCK_CLOEXEC
# define SOCK_CLOEXEC 02000000
Expand Down Expand Up @@ -167,6 +168,7 @@ static const struct option my_longopts[] = {
{"running", no_argument, 0, LS_RUNNING},
{"frozen", no_argument, 0, LS_FROZEN},
{"stopped", no_argument, 0, LS_STOPPED},
{"defined", no_argument, 0, LS_DEFINED},
{"nesting", optional_argument, 0, LS_NESTING},
{"groups", required_argument, 0, 'g'},
{"filter", required_argument, 0, LS_FILTER},
Expand All @@ -192,6 +194,7 @@ Options :\n\
--running list only running containers\n\
--frozen list only frozen containers\n\
--stopped list only stopped containers\n\
--defined list only defined containers\n\
--nesting=NUM list nested containers up to NUM (default is 5) levels of nesting\n\
--filter=REGEX filter container names by regular expression\n\
-g --groups comma separated list of groups a container must have to be displayed\n",
Expand Down Expand Up @@ -395,8 +398,9 @@ static int ls_get(struct ls **m, size_t *size, const struct lxc_arguments *args,
else if (!c)
continue;

if (!c->is_defined(c))
if (args->ls_defined && !c->is_defined(c)){
goto put_and_next;
}

/* This does not allocate memory so no worries about freeing it
* when we goto next or out. */
Expand Down Expand Up @@ -928,6 +932,9 @@ static int my_parser(struct lxc_arguments *args, int c, char *arg)
case LS_STOPPED:
args->ls_stopped = true;
break;
case LS_DEFINED:
args->ls_defined = true;
break;
case LS_NESTING:
/* In case strtoul() receives a string that represents a
* negative number it will return ULONG_MAX - the number that
Expand Down

0 comments on commit ffd6915

Please sign in to comment.