mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-05-28 21:16:41 +00:00
Install legacy scripts when built without python.
Re-introduce the old lxc-ls script and manpage under a new legacy sub-directory. Those will be installed in place of their python equivalent when LXC is built without --enable-python. Any other script ported to python should be added to those lists. Signed-off-by: Stéphane Graber <stgraber@ubuntu.com> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
4e7186c535
commit
6a85cf9124
1
.gitignore
vendored
1
.gitignore
vendored
@ -64,6 +64,7 @@ src/lxc/lxc-unfreeze
|
|||||||
src/lxc/lxc-unshare
|
src/lxc/lxc-unshare
|
||||||
src/lxc/lxc-version
|
src/lxc/lxc-version
|
||||||
src/lxc/lxc-wait
|
src/lxc/lxc-wait
|
||||||
|
src/lxc/legacy/lxc-ls
|
||||||
|
|
||||||
src/python-lxc/lxc/__pycache__/
|
src/python-lxc/lxc/__pycache__/
|
||||||
|
|
||||||
|
@ -229,6 +229,7 @@ AC_CONFIG_FILES([
|
|||||||
doc/lxc.sgml
|
doc/lxc.sgml
|
||||||
doc/common_options.sgml
|
doc/common_options.sgml
|
||||||
doc/see_also.sgml
|
doc/see_also.sgml
|
||||||
|
doc/legacy/lxc-ls.sgml
|
||||||
|
|
||||||
doc/rootfs/Makefile
|
doc/rootfs/Makefile
|
||||||
|
|
||||||
@ -266,6 +267,7 @@ AC_CONFIG_FILES([
|
|||||||
src/lxc/lxc-shutdown
|
src/lxc/lxc-shutdown
|
||||||
src/lxc/lxc-start-ephemeral
|
src/lxc/lxc-start-ephemeral
|
||||||
src/lxc/lxc-destroy
|
src/lxc/lxc-destroy
|
||||||
|
src/lxc/legacy/lxc-ls
|
||||||
|
|
||||||
src/python-lxc/Makefile
|
src/python-lxc/Makefile
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ man_MANS = \
|
|||||||
lxc-unfreeze.1 \
|
lxc-unfreeze.1 \
|
||||||
lxc-monitor.1 \
|
lxc-monitor.1 \
|
||||||
lxc-wait.1 \
|
lxc-wait.1 \
|
||||||
lxc-ls.1 \
|
|
||||||
lxc-ps.1 \
|
lxc-ps.1 \
|
||||||
lxc-cgroup.1 \
|
lxc-cgroup.1 \
|
||||||
lxc-kill.1 \
|
lxc-kill.1 \
|
||||||
@ -29,15 +28,23 @@ man_MANS = \
|
|||||||
\
|
\
|
||||||
lxc.7
|
lxc.7
|
||||||
|
|
||||||
|
if ENABLE_PYTHON
|
||||||
|
man_MANS += lxc-ls.1
|
||||||
|
else
|
||||||
|
man_MANS += legacy/lxc-ls.1
|
||||||
|
endif
|
||||||
|
|
||||||
%.1 : %.sgml
|
%.1 : %.sgml
|
||||||
$(db2xman) $<
|
$(db2xman) $<
|
||||||
|
test "$(shell basename $@)" != "$@" && mv $(shell basename $@) $@ || true
|
||||||
|
|
||||||
%.5 : %.sgml
|
%.5 : %.sgml
|
||||||
$(db2xman) $<
|
$(db2xman) $<
|
||||||
|
test "$(shell basename $@)" != "$@" && mv $(shell basename $@) $@ || true
|
||||||
|
|
||||||
%.7 : %.sgml
|
%.7 : %.sgml
|
||||||
$(db2xman) $<
|
$(db2xman) $<
|
||||||
|
test "$(shell basename $@)" != "$@" && mv $(shell basename $@) $@ || true
|
||||||
|
|
||||||
lxc-%.sgml : common_options.sgml see_also.sgml
|
lxc-%.sgml : common_options.sgml see_also.sgml
|
||||||
|
|
||||||
|
156
doc/legacy/lxc-ls.sgml.in
Normal file
156
doc/legacy/lxc-ls.sgml.in
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
lxc: linux Container library
|
||||||
|
|
||||||
|
(C) Copyright IBM Corp. 2007, 2008
|
||||||
|
|
||||||
|
Authors:
|
||||||
|
Daniel Lezcano <dlezcano at fr.ibm.com>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||||
|
|
||||||
|
<!ENTITY seealso SYSTEM "@builddir@/../see_also.sgml">
|
||||||
|
]>
|
||||||
|
|
||||||
|
<refentry>
|
||||||
|
|
||||||
|
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
||||||
|
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>lxc-ls</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</refmeta>
|
||||||
|
|
||||||
|
<refnamediv>
|
||||||
|
<refname>lxc-ls</refname>
|
||||||
|
|
||||||
|
<refpurpose>
|
||||||
|
list the containers existing on the system
|
||||||
|
</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<cmdsynopsis>
|
||||||
|
<command>lxc-ls</command>
|
||||||
|
<arg choice="opt">--active</arg>
|
||||||
|
<arg choice="opt">ls option</arg>
|
||||||
|
</cmdsynopsis>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
<para>
|
||||||
|
<command>lxc-ls</command> list the containers existing on the
|
||||||
|
system.
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Options</title>
|
||||||
|
<variablelist>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<option><optional>--active</optional></option>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
List active containers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<option><optional>ls options</optional></option>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The option passed to <command>lxc-ls</command> are the
|
||||||
|
same as the <command>ls</command> command.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Examples</title>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>lxc-ls -l</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
list all the container and their permissions.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>lxc-ls --active -1</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
list active containers and display the list in one column.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>See Also</title>
|
||||||
|
|
||||||
|
<simpara>
|
||||||
|
<citerefentry>
|
||||||
|
<refentrytitle>ls</refentrytitle>
|
||||||
|
<manvolnum>1</manvolnum>
|
||||||
|
</citerefentry>,
|
||||||
|
</simpara>
|
||||||
|
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
&seealso;
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Author</title>
|
||||||
|
<para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
</refentry>
|
||||||
|
|
||||||
|
<!-- Keep this comment at the end of the file
|
||||||
|
Local variables:
|
||||||
|
mode: sgml
|
||||||
|
sgml-omittag:t
|
||||||
|
sgml-shorttag:t
|
||||||
|
sgml-minimize-attributes:nil
|
||||||
|
sgml-always-quote-attributes:t
|
||||||
|
sgml-indent-step:2
|
||||||
|
sgml-indent-data:t
|
||||||
|
sgml-parent-document:nil
|
||||||
|
sgml-default-dtd-file:nil
|
||||||
|
sgml-exposed-tags:nil
|
||||||
|
sgml-local-catalogs:nil
|
||||||
|
sgml-local-ecat-files:nil
|
||||||
|
End:
|
||||||
|
-->
|
@ -100,6 +100,8 @@ if ENABLE_PYTHON
|
|||||||
bin_SCRIPTS += lxc-device
|
bin_SCRIPTS += lxc-device
|
||||||
bin_SCRIPTS += lxc-ls
|
bin_SCRIPTS += lxc-ls
|
||||||
bin_SCRIPTS += lxc-start-ephemeral
|
bin_SCRIPTS += lxc-start-ephemeral
|
||||||
|
else
|
||||||
|
bin_SCRIPTS += legacy/lxc-ls
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
bin_PROGRAMS = \
|
||||||
|
94
src/lxc/legacy/lxc-ls.in
Normal file
94
src/lxc/legacy/lxc-ls.in
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# lxc: linux Container library
|
||||||
|
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
lxc_path=@LXCPATH@
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo "usage: $(basename $0) [--active] [--] [LS_OPTIONS...]" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
help() {
|
||||||
|
usage
|
||||||
|
echo >&2
|
||||||
|
echo "List containers existing on the system." >&2
|
||||||
|
echo >&2
|
||||||
|
echo " --active list active containers" >&2
|
||||||
|
echo " LS_OPTIONS ls command options (see \`ls --help')" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
get_parent_cgroup()
|
||||||
|
{
|
||||||
|
local hierarchies hierarchy fields subsystems init_cgroup mountpoint
|
||||||
|
|
||||||
|
parent_cgroup=""
|
||||||
|
|
||||||
|
# Obtain a list of hierarchies that contain one or more subsystems
|
||||||
|
hierarchies=$(tail -n +2 /proc/cgroups | cut -f 2)
|
||||||
|
|
||||||
|
# Iterate through the list until a suitable hierarchy is found
|
||||||
|
for hierarchy in $hierarchies; do
|
||||||
|
# Obtain information about the init process in the hierarchy
|
||||||
|
fields=$(grep -E "^$hierarchy:" /proc/1/cgroup | head -n 1)
|
||||||
|
if [ -z "$fields" ]; then continue; fi
|
||||||
|
fields=${fields#*:}
|
||||||
|
|
||||||
|
# Get a comma-separated list of the hierarchy's subsystems
|
||||||
|
subsystems=${fields%:*}
|
||||||
|
|
||||||
|
# Get the cgroup of the init process in the hierarchy
|
||||||
|
init_cgroup=${fields#*:}
|
||||||
|
|
||||||
|
# Get the filesystem mountpoint of the hierarchy
|
||||||
|
mountpoint=$(grep -E "^[^ ]+ [^ ]+ cgroup ([^ ]+,)?$subsystems(,[^ ]+)? " /proc/self/mounts | cut -d ' ' -f 2)
|
||||||
|
if [ -z "$mountpoint" ]; then continue; fi
|
||||||
|
|
||||||
|
# Return the absolute path to the containers' parent cgroup
|
||||||
|
# (do not append '/lxc' if the hierarchy contains the 'ns' subsystem)
|
||||||
|
if [[ ",$subsystems," == *,ns,* ]]; then
|
||||||
|
parent_cgroup="${mountpoint}${init_cgroup%/}"
|
||||||
|
else
|
||||||
|
parent_cgroup="${mountpoint}${init_cgroup%/}/lxc"
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
directory=$(readlink -f "$lxc_path")
|
||||||
|
|
||||||
|
for i in "$@"; do
|
||||||
|
case $i in
|
||||||
|
--help)
|
||||||
|
help; exit;;
|
||||||
|
--active)
|
||||||
|
get_parent_cgroup; directory="$parent_cgroup"; shift;;
|
||||||
|
--)
|
||||||
|
shift; break;;
|
||||||
|
*)
|
||||||
|
break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
containers=""
|
||||||
|
if [ ! -z "$directory" ]; then
|
||||||
|
containers=$(find $directory -mindepth 1 -maxdepth 1 -type d -printf "%f\n" 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$directory"
|
||||||
|
ls -d $@ -- $containers
|
Loading…
Reference in New Issue
Block a user