8f892eaeeb
add script to build VM image and container, to extract VM image from container update doc remove version check with agent update vm image upload auto upload VM image from pkg root dir show simplified version string Change-Id: I9dc44c52656d81f271c91d6826dc0e128fed980d
87 lines
2.4 KiB
Bash
87 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Scriot to extract the same version kloudbuster VM image from docker hub
|
|
# and store it on the current directory
|
|
# Should be used when running kloudbuster using PyPI or git clone and
|
|
# rebuilding the VM is not an option
|
|
|
|
# Requires kloudbuster to be installed (pip install -e .)
|
|
# Requires docker to be installed!
|
|
|
|
function usage {
|
|
echo "
|
|
Usage: kb_extract_img_from_docker.sh [--version <version>]
|
|
|
|
<version> optional KloudBuster version to extract (e.g. 7.0.0)
|
|
|
|
Extracts a KloudBuster VM image from DockerHub and stores it on the local directory
|
|
|
|
If version is provided, the image for that version is retrieved
|
|
|
|
If version is not provided, the image for the current KloudBuster installation is
|
|
retrieved (requires KloudBuster to be installed using 'pip install -e .')
|
|
|
|
This script should only be used when not running KloudBuster from Docker
|
|
(e.g. running it from pip or from a git clone) and when rebuilding the VM image
|
|
is not an option.
|
|
"
|
|
exit 1
|
|
}
|
|
|
|
# Get the exact version
|
|
# Get the kloudbuster version (must be retrieved from stderr)
|
|
function get_kloudbuster_version {
|
|
KB_VER=$(kloudbuster --version 2>&1)
|
|
if [ $? != 0 ]; then
|
|
echo "Error running kloudbuster, make sure it is installed with 'pip install -e .'"
|
|
echo
|
|
exit 2
|
|
fi
|
|
}
|
|
|
|
function extract_vm_image {
|
|
VM_IMG_NAME=kloudbuster-$KB_VER.qcow2
|
|
if [ -f $VM_IMG_NAME ]; then
|
|
echo "$VM_IMG_NAME is already available"
|
|
else
|
|
# Pull the right version container from docker hub
|
|
IMG_NAME=berrypatch/kloudbuster:$KB_VER
|
|
docker pull $IMG_NAME
|
|
if [ $? != 0 ]; then
|
|
echo "Error pulling $IMG_NAME, please check it is available"
|
|
exit 1
|
|
fi
|
|
|
|
docker run --rm -v $PWD:/tmp/local $IMG_NAME cp /kloudbuster/$VM_IMG_NAME /tmp/local
|
|
if [ $? != 0 ]; then
|
|
echo "Error extracting $VM_IMG_NAME from the container"
|
|
exit 3
|
|
else
|
|
echo "Successfully extracted $VM_IMG_NAME from the container"
|
|
fi
|
|
fi
|
|
|
|
ls -l $VM_IMG_NAME
|
|
}
|
|
|
|
KB_VER=0
|
|
while [[ $# -gt 0 ]]; do
|
|
key="$1"
|
|
case "$key" in
|
|
--version|-v)
|
|
KB_VER=$2
|
|
shift
|
|
;;
|
|
-h|--help|*)
|
|
usage
|
|
;;
|
|
esac
|
|
# Shift after checking all the cases to get the next option
|
|
shift
|
|
done
|
|
|
|
if [ $KB_VER = 0 ]; then
|
|
get_kloudbuster_version
|
|
fi
|
|
extract_vm_image
|