#!/usr/bin/env bash # vim: tabstop=4 shiftwidth=4 softtabstop=4 # Copyright 2010 United States Government as represented by the # Administrator of the National Aeronautics and Space Administration. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. INSTANCES_PATH=${INSTANCES_PATH:-/var/lib/nova/instances} if [ -z "$1" ]; then echo "specify an instance id to debug"; exit; fi if [ -n "$3" ]; then DEVICE=$3; fi CMD="all" if [ -n "$2" ]; then CMD=$2; fi cd $INSTANCES_PATH/$1 if [ $CMD != "umount" ] && [ $CMD != "launch" ]; then # destroy the instance virsh destroy $1 # mount the filesystem mkdir t DEVICE=`losetup --show -f disk` echo $DEVICE kpartx -a $DEVICE mount /dev/mapper/${DEVICE:4}p1 t fi if [ $CMD != "mount" ] && [ $CMD != "umount" ]; then # make serial console listen on ttyS0 cat >t/etc/init/ttyS0.conf < debug.xml sed -i "s/.*<\/serial>/<\/serial>/g" debug.xml umount t virsh create debug.xml virsh console $1 virsh destroy $1 mount /dev/mapper/${DEVICE:4}p1 t # clear debug root password chroot t passwd -l root # remove the serial console conf rm -f t/etc/init/ttyS0.conf fi if [ $CMD != "mount" ] && [ $CMD != "launch" ]; then # unmount the filesystem umount t kpartx -d $DEVICE losetup -d $DEVICE rmdir t # recreate the instance virsh create libvirt.xml fi