#!/bin/sh # copyright (C) 2013-2014 FUJITSU LIMITED All Rights Reserved # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2 # of the License. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # check options FLG_D=0 while getopts d OPT do case $OPT in "d" ) FLG_D=1 ;; esac done shift `expr $OPTIND - 1` # check args if [ $# -lt 1 ]; then echo "usage lxcf autostart [-d] LXCNAME ..." exit 1 fi lsdir() { ls -f --ind=none $1 | sed '/^\.\{1,2\}$/d' } # When uuid is specified, the container name is returned. uuid2name() { NAME=$1 if [ -d /opt/lxcf/${NAME} ]; then echo -n $NAME return fi for i in `lsdir /etc/lxcf/rsc` do if [ x$NAME == x`cat /etc/lxcf/rsc/${i}/uuid` ]; then echo -n $i return fi done echo -n $NAME } # stop one container lxcf_autostart1() { LXCNAME=`uuid2name ${1}` if ! /usr/lib64/lxcf/lxcf-parmchk-cname $LXCNAME ; then echo "error:" $LXCNAME "is not a container name" echo " The container name must be alphanumeric character, \"-\", and \"_\"." exit 1 fi if [ ! -e /opt/lxcf/${LXCNAME} ] ; then echo "error:" $LXCNAME "is the unknown container name" exit 1 fi if [ ${FLG_D} -ne 1 ] ; then /usr/bin/virsh -c lxc:/// autostart ${LXCNAME} ; echo -n "autostart" > /etc/lxcf/rsc/$LXCNAME/autostart else /usr/bin/virsh -c lxc:/// autostart --disable ${LXCNAME} ; rm -f /etc/lxcf/rsc/$LXCNAME/autostart fi } # stop containers of args for i in $* do lxcf_autostart1 $i done exit 0