From 20b01a6b7163971201a5aa0d6db354d80657d17f Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Thu, 8 Mar 2018 11:39:42 +0000 Subject: [PATCH] bifrost: Ensure OS images are present in the PXE directory The XCI deployment script may wipe the PXE directories so we need to place the OS images after this has happened so we don't download them every time. Change-Id: Iccf943bc75592e7f5dddea59dfee14b2b080e7ef Signed-off-by: Markos Chandras --- bifrost/playbooks/opnfv-virtual.yaml | 4 ++-- bifrost/scripts/bifrost-provision.sh | 6 ++++++ xci/scripts/vm/start-new-vm.sh | 7 +++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/bifrost/playbooks/opnfv-virtual.yaml b/bifrost/playbooks/opnfv-virtual.yaml index cfcb71a1..2ebf86f8 100644 --- a/bifrost/playbooks/opnfv-virtual.yaml +++ b/bifrost/playbooks/opnfv-virtual.yaml @@ -33,13 +33,13 @@ become: yes - name: Download the {{ xci_distro }} image checksum file get_url: - dest: /httpboot/{{ xci_distro }}.qcow2.sha256.txt + dest: /httpboot/deployment_image.qcow2.sha256.txt force: no url: http://artifacts.opnfv.org/releng/xci/images/{{ xci_distro }}.qcow2.sha256.txt timeout: 3000 become: yes - name: Extract checksum - shell: awk '{print $1}' /httpboot/{{ xci_distro }}.qcow2.sha256.txt + shell: awk '{print $1}' /httpboot/deployment_image.qcow2.sha256.txt register: _image_checksum - fail: msg: "Failed to get image checksum" diff --git a/bifrost/scripts/bifrost-provision.sh b/bifrost/scripts/bifrost-provision.sh index 5ebe2031..dccb3231 100755 --- a/bifrost/scripts/bifrost-provision.sh +++ b/bifrost/scripts/bifrost-provision.sh @@ -77,6 +77,12 @@ export DIB_OS_PACKAGES=${DIB_OS_PACKAGES:-"vlan,vim,less,bridge-utils,language-p # Additional dib elements export EXTRA_DIB_ELEMENTS=${EXTRA_DIB_ELEMENTS:-"openssh-server"} +# Copy the OS images if found +if [[ -e ${XCI_PATH}/deployment_image.qcow2 ]]; then + sudo mkdir -p /httpboot + sudo mv ${XCI_PATH}/deployment_image.qcow2* /httpboot/ +fi + if [ ${USE_VENV} = "true" ]; then export VENV=/opt/stack/bifrost $SCRIPT_HOME/env-setup.sh &>/dev/null diff --git a/xci/scripts/vm/start-new-vm.sh b/xci/scripts/vm/start-new-vm.sh index e2a918b3..868de6c3 100755 --- a/xci/scripts/vm/start-new-vm.sh +++ b/xci/scripts/vm/start-new-vm.sh @@ -180,6 +180,8 @@ sudo rm -f ${BASE_PATH}/${OS}.qcow2 sudo chmod 777 -R $XCI_CACHE_DIR/clean_vm/images/ sudo chown $uid:$gid -R $XCI_CACHE_DIR/clean_vm/images/ cp ${XCI_CACHE_DIR}/clean_vm/images/${OS}.qcow2* ${BASE_PATH}/ +cp ${XCI_CACHE_DIR}/clean_vm/images/${OS}.qcow2.sha256.txt ${BASE_PATH}/deployment_image.qcow2.sha256.txt +cp ${XCI_CACHE_DIR}/clean_vm/images/${OS}.qcow2 ${BASE_PATH}/deployment_image.qcow2 declare -r OS_IMAGE_FILE=${OS}.qcow2 [[ ! -e ${OS_IMAGE_FILE} ]] && echo "${OS_IMAGE_FILE} not found! This should never happen!" && exit 1 @@ -324,6 +326,7 @@ EOF do_copy() { rsync -a \ --exclude "${VM_NAME}*" \ + --exclude "${OS}*" \ --exclude "build.log" \ -e "$vm_ssh" ${BASE_PATH}/ ${VM_NAME}:~/releng-xci/ } @@ -338,10 +341,6 @@ $vm_ssh ${VM_NAME} "sudo mv /home/devuser/releng-xci/vm_hosts.txt /etc/hosts" # Disable 3-level nested virtualization since it makes things terribly slow $vm_ssh ${VM_NAME} "sudo bash -c 'echo \"options kvm_intel nested=0\" > /etc/modprobe.d/qemu-system-x86.conf'" $vm_ssh ${VM_NAME} "sudo modprobe -r kvm_intel && sudo modprobe -a kvm_intel" -# Copy image files over -$vm_ssh ${VM_NAME} "sudo mkdir /httpboot" -$vm_ssh ${VM_NAME} "sudo mv /home/devuser/releng-xci/${OS}.qcow2.sha256.txt /httpboot" -$vm_ssh ${VM_NAME} "sudo mv /home/devuser/releng-xci/${OS}.qcow2 /httpboot/deployment_image.qcow2" set +e -- 2.16.6