diff --git a/Makefile b/Makefile index 0299984e..09dd4b5d 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 27f02c98..123616f1 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,24 +36,40 @@ cleanup_foreign_lvmvg() { cleanup_loopdev } +# Clean up loop devices and vgs created by the ginkgo lvm_utils.go +cleanup_ginkgo_loop_lvm() { + devices=$() + 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}" + helm uninstall lvm-localpv -n "$OPENEBS_NAMESPACE" || true + kubectl delete crds "$CRDS_TO_DELETE_ON_CLEANUP" + fi - helm uninstall lvm-localpv -n "$OPENEBS_NAMESPACE" || true - kubectl delete crds "$CRDS_TO_DELETE_ON_CLEANUP" + set -e # always return true 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