From dd6eeed47dfa116fc6234e06468c40053cf30ce0 Mon Sep 17 00:00:00 2001 From: Todd Malsbary Date: Thu, 10 Mar 2022 10:37:34 -0800 Subject: [PATCH] Remove sushy state even when not running Signed-off-by: Todd Malsbary Change-Id: I2c981c874b32f9f9cfec7082ac70993fdc0ecb4f --- tools/vagrant/start_sushy.sh | 47 +++++++++++++++++++++++--------------------- tools/vagrant/stop_sushy.sh | 6 ++++-- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/tools/vagrant/start_sushy.sh b/tools/vagrant/start_sushy.sh index f3d5b53..a6c2f62 100755 --- a/tools/vagrant/start_sushy.sh +++ b/tools/vagrant/start_sushy.sh @@ -3,32 +3,35 @@ set -eu -o pipefail listen_ip=$1 -if [[ -f ${HOME}/.sushy/emulator.pid && $(ps -p $(cat ${HOME}/.sushy/emulator.pid) 2>/dev/null) ]]; then - echo sushy-emulator is already started -else - # Install prerequisites - if [[ $(which apt-get 2>/dev/null) ]]; then - DEBIAN_FRONTEND=noninteractive sudo apt-get install -y make apache2-utils libvirt-dev ovmf python3-pip - elif [[ $(which yum) ]]; then - # TODO OVMF doesn't include OVMF_CODE.fd - sudo yum install -y make httpd-tools libvirt-devel OVMF python3-pip +if [[ -f ${HOME}/.sushy/emulator.pid ]]; then + if ps -p $(cat ${HOME}/.sushy/emulator.pid); then + echo sushy-emulator is already started + exit 0 fi - sudo python3 -m pip install libvirt-python sushy-tools - # Add route to provisioning network - sushy-emulator needs to - # fetch ISOs over this during virtual media boot - dev=$(ip -o addr show to ${listen_ip} | awk '{print $2}') - sudo ip route add 172.22.0.0/24 dev ${dev} - # Configure sushy-emulator - mkdir -p ${HOME}/.sushy - openssl req -x509 -newkey rsa:4096 -keyout ${HOME}/.sushy/key.pem -out ${HOME}/.sushy/cert.pem -sha256 -days 365 -nodes -subj "/CN=${listen_ip}" - htpasswd -c -b -B ${HOME}/.sushy/htpasswd admin password - cat <${HOME}/.sushy/emulator.conf +fi + +# Install prerequisites +if [[ $(which apt-get 2>/dev/null) ]]; then + DEBIAN_FRONTEND=noninteractive sudo apt-get install -y make apache2-utils libvirt-dev ovmf python3-pip +elif [[ $(which yum) ]]; then + # TODO OVMF doesn't include OVMF_CODE.fd + sudo yum install -y make httpd-tools libvirt-devel OVMF python3-pip +fi +sudo python3 -m pip install libvirt-python sushy-tools +# Add route to provisioning network - sushy-emulator needs to +# fetch ISOs over this during virtual media boot +dev=$(ip -o addr show to ${listen_ip} | awk '{print $2}') +sudo ip route add 172.22.0.0/24 dev ${dev} +# Configure sushy-emulator +mkdir -p ${HOME}/.sushy +openssl req -x509 -newkey rsa:4096 -keyout ${HOME}/.sushy/key.pem -out ${HOME}/.sushy/cert.pem -sha256 -days 365 -nodes -subj "/CN=${listen_ip}" +htpasswd -c -b -B ${HOME}/.sushy/htpasswd admin password +cat <${HOME}/.sushy/emulator.conf SUSHY_EMULATOR_LISTEN_IP = u'${listen_ip}' SUSHY_EMULATOR_SSL_CERT = u'${HOME}/.sushy/cert.pem' SUSHY_EMULATOR_SSL_KEY = u'${HOME}/.sushy/key.pem' SUSHY_EMULATOR_AUTH_FILE = u'${HOME}/.sushy/htpasswd' SUSHY_EMULATOR_VMEDIA_VERIFY_SSL = False EOF - sushy-emulator --config ${HOME}/.sushy/emulator.conf 1>${HOME}/.sushy/emulator-stdout.log 2>${HOME}/.sushy/emulator-stderr.log & - echo $! >${HOME}/.sushy/emulator.pid -fi +sushy-emulator --config ${HOME}/.sushy/emulator.conf 1>${HOME}/.sushy/emulator-stdout.log 2>${HOME}/.sushy/emulator-stderr.log & +echo $! >${HOME}/.sushy/emulator.pid diff --git a/tools/vagrant/stop_sushy.sh b/tools/vagrant/stop_sushy.sh index 2e3f3a8..435ee7d 100755 --- a/tools/vagrant/stop_sushy.sh +++ b/tools/vagrant/stop_sushy.sh @@ -3,8 +3,10 @@ set -eu -o pipefail listen_ip=$1 -if [[ -f ${HOME}/.sushy/emulator.pid && $(ps -p $(cat ${HOME}/.sushy/emulator.pid) 2>/dev/null) ]]; then - kill $(cat ${HOME}/.sushy/emulator.pid) +if [[ -f ${HOME}/.sushy/emulator.pid ]]; then + if ps -p $(cat ${HOME}/.sushy/emulator.pid); then + kill $(cat ${HOME}/.sushy/emulator.pid) + fi rm ${HOME}/.sushy/emulator.pid echo Stopped sushy-emulator dev=$(ip -o addr show to ${listen_ip} | awk '{print $2}') -- 2.16.6