#!/bin/sh
# copyright (C) 2013 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 args
if [ $# -lt 1 ]; then
	echo "usage lxcf erase LXCNAME"
	exit 1
fi

# erase one container
lxcf_erase1() {
  LXCNAME=$1

  if ! /usr/lib/lxcf/lxcf-parmchk-cname $LXCNAME ; then
    echo $LXCNAME "is not a container name"
    exit 1
  fi

  # check lxcf container
#  if [ ! -e /opt/lxcf/${LXCNAME} ] ; then
#        echo ${LXCNAME} "is the unknown container name"
#	return 1
#  fi

  # check container state
  LXCSTATE=`LANG=C virsh -c lxc:/// list | /usr/bin/awk '($2 == "'${LXCNAME}'"){print $3}'`

  # stop container
  if [ -n "${LXCSTATE}" ] && [ ${LXCSTATE} = "paused" ] ; then
	/usr/bin/virsh -c lxc:/// resume ${LXCNAME} >& /dev/null
	sleep 3
	/usr/bin/virsh -c lxc:/// destroy ${LXCNAME} >& /dev/null
        echo "stop "${LXCNAME}
	sleep 3
  elif [ -n "${LXCSTATE}" ] && [ ${LXCSTATE} = "running" ] ; then
	/usr/bin/virsh -c lxc:/// destroy ${LXCNAME} >& /dev/null
        echo "stop "${LXCNAME}
	sleep 3
  fi

  sync;sync;sync

  # erase a container
  /usr/bin/virsh -c lxc:/// undefine ${LXCNAME} >& /dev/null

  echo "erase /opt/lxcf/"${LXCNAME}
  if [ -L /opt/lxcf/${LXCNAME} ] ; then
	FILEPATH=`ls -l /opt/lxcf/${LXCNAME} | awk '{n=split($0,a," ");print a[n];}'`
	echo "erase" $FILEPATH
	/usr/bin/rm -rf $FILEPATH
  fi

  /usr/bin/rm -rf /opt/lxcf/${LXCNAME}

  echo "erase /etc/lxcf/rsc/"${LXCNAME}

  /usr/bin/rm -rf /etc/lxcf/rsc/${LXCNAME}

  /usr/lib/lxcf/lxcf-erase-setup ${LXCNAME}

  # delete known_hosts entry
  sed -i "/^${LXCNAME}[ |,]/d"  /root/.ssh/known_hosts
  
  echo "erased " ${LXCNAME}
}

# erase containers of args
for i in $*
do
	lxcf_erase1 $i
done

exit 0

