diff --git a/Makefile b/Makefile index 0f776b53..ace8f651 100644 --- a/Makefile +++ b/Makefile @@ -86,6 +86,7 @@ clean: @echo "--> Cleaning Directory" ; go clean -testcache rm -rf bin + CLEANUP_ONLY=1 ./ci/ci-test.sh chmod -R u+w ${GOPATH}/bin/${CSI_DRIVER} 2>/dev/null || true chmod -R u+w ${GOPATH}/pkg/* 2>/dev/null || true rm -rf ${GOPATH}/bin/${CSI_DRIVER} diff --git a/ci/ci-test.sh b/ci/ci-test.sh index ef76c81f..e5d8cece 100755 --- a/ci/ci-test.sh +++ b/ci/ci-test.sh @@ -20,7 +20,7 @@ CRDS_TO_DELETE_ON_CLEANUP="lvmnodes.local.openebs.io lvmsnapshots.local.openebs. # Clean up generated resources for successive tests. cleanup_loopdev() { - sudo losetup -l | grep '(deleted)' | awk '{print $1}' \ + losetup -l | grep '(deleted)' | awk '{print $1}' \ | while IFS= read -r disk do sudo losetup -d "${disk}" @@ -36,12 +36,28 @@ cleanup_foreign_lvmvg() { cleanup_loopdev } +# Clean up loop devices and vgs created by the ginkgo lvm_utils.go +cleanup_ginkgo_loop_lvm() { + for device in $(losetup -l -J | jq -r '.loopdevices[]|select(."back-file" | startswith("/tmp/openebs_lvm_localpv_disk_"))' | jq -r '.name'); do + echo "Found stale loop device: $device" + + sudo "$(which vgremove)" -y --select="pv_name=$device" || : + sudo losetup -d "$device" 2>/dev/null || : + done +} + cleanup() { set +e echo "Cleaning up test resources" cleanup_foreign_lvmvg + cleanup_ginkgo_loop_lvm + + if kubectl get nodes 2>/dev/null; then + kubectl delete pvc -n "$OPENEBS_NAMESPACE" lvmpv-pvc + kubectl delete -f "${SNAP_CLASS}" + kubectl delete pvc -n "$OPENEBS_NAMESPACE" lvmpv-pvc kubectl delete -f "${SNAP_CLASS}" @@ -53,8 +69,8 @@ cleanup() { return 0 } # trap "cleanup 2>/dev/null" EXIT -[ -n "${CLEANUP_ONLY}" ] && cleanup 2>/dev/null && exit 0 -[ -n "${RESET}" ] && cleanup 2>/dev/null +[ -n "${CLEANUP_ONLY}" ] && cleanup && exit 0 +[ -n "${RESET}" ] && cleanup # setup a foreign lvm to test