From 17328e1f83dc28f96f1b858d6ee7a7412dfbb8e8 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Mon, 11 Sep 2017 18:44:45 -0700 Subject: yardstick-cleanup.sh: try to fix docker rmi failure apex builds seem to be failing to remove the yardstick containers https://build.opnfv.org/ci/job/yardstick-apex-baremetal-daily-master/400/console [yardstick-apex-baremetal-daily-master] $ /bin/bash /tmp/hudson8974425724638109512.sh Cleaning up docker containers/images... Docker images to remove: REPOSITORY TAG IMAGE ID CREATED SIZE opnfv/yardstick latest 5b83d8e60fb7 6 days ago 1.84GB Removing docker image opnfv/yardstick:latest... Error response from daemon: No such image: opnfv/yardstick:latest Build step 'Execute shell' marked build as failure For some reason we can't remove the yardstick container. Try instead to remove based on ID Replace grep | awk with just awk. Also fixed shellcheck warnings: In jjb/yardstick/yardstick-cleanup.sh line 6: if [[ -n ${dangling_images} ]]; then ^-- SC2128: Expanding an array without an index only gives the first element. In jjb/yardstick/yardstick-cleanup.sh line 10: containers=$(docker ps -a | grep $image_id | awk '{print $1}') ^-- SC2086: Double quote to prevent globbing and word splitting. In jjb/yardstick/yardstick-cleanup.sh line 12: docker rm -f $containers >${redirect} ^-- SC2086: Double quote to prevent globbing and word splitting. In jjb/yardstick/yardstick-cleanup.sh line 14: docker rmi $image_id >${redirect} ^-- SC2086: Double quote to prevent globbing and word splitting. In jjb/yardstick/yardstick-cleanup.sh line 20: if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then ^-- SC2143: Use ! grep -q instead of comparing output with [ -z .. ]. In jjb/yardstick/yardstick-cleanup.sh line 27: if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then ^-- SC2143: Use ! grep -q instead of comparing output with [ -z .. ]. In jjb/yardstick/yardstick-cleanup.sh line 33: docker rmi opnfv/yardstick:$tag >$redirect ^-- SC2086: Double quote to prevent globbing and word splitting. Change-Id: I6545ac7f568161e5620e31d487faf70fa21da075 Signed-off-by: Ross Brattain --- jjb/yardstick/yardstick-cleanup.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/jjb/yardstick/yardstick-cleanup.sh b/jjb/yardstick/yardstick-cleanup.sh index 51455b593..47bf9bd10 100755 --- a/jjb/yardstick/yardstick-cleanup.sh +++ b/jjb/yardstick/yardstick-cleanup.sh @@ -1,36 +1,36 @@ #!/bin/bash -[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" +[[ ${CI_DEBUG} == true ]] && redirect="/dev/stdout" || redirect="/dev/null" # Remove containers along with image opnfv/yardstick*: -dangling_images=($(docker images -f "dangling=true" | grep opnfv/yardstick | awk '{print $3}')) -if [[ -n ${dangling_images} ]]; then +dangling_images=($(docker images -f "dangling=true" | awk '/opnfv[/]yardstick/ {print $3}')) +if [[ ${#dangling_images[@]} -eq 0 ]] ; then echo "Removing opnfv/yardstick: images and their containers..." for image_id in "${dangling_images[@]}"; do echo " Removing image_id: $image_id and its containers" - containers=$(docker ps -a | grep $image_id | awk '{print $1}') + containers=$(docker ps -a | awk "/${image_id}/ {print \$1}") if [[ -n "$containers" ]];then - docker rm -f $containers >${redirect} + docker rm -f "${containers}" >${redirect} fi - docker rmi $image_id >${redirect} + docker rmi "${image_id}" >${redirect} done fi echo "Cleaning up docker containers/images..." # Remove previous running containers if exist -if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then +if docker ps -a | grep -q opnfv/yardstick; then echo "Removing existing opnfv/yardstick containers..." - docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm -f >$redirect + docker ps -a | awk "/${image_id}/ {print \$1}" | xargs docker rm -f >${redirect} fi # Remove existing images if exist -if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then +if docker images | grep -q opnfv/yardstick; then echo "Docker images to remove:" docker images | head -1 && docker images | grep opnfv/yardstick - image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}')) - for tag in "${image_tags[@]}"; do - echo "Removing docker image opnfv/yardstick:$tag..." - docker rmi opnfv/yardstick:$tag >$redirect + image_ids=($(docker images | awk '/opnfv[/]yardstick/ {print $3}')) + for id in "${image_ids[@]}"; do + echo "Removing docker image id $id..." + docker rmi "${id}" >${redirect} done fi -- cgit 1.2.3-korg