]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/workunits/cephadm: separate out test_adoption.sh; fix
authorSage Weil <sage@redhat.com>
Fri, 21 Feb 2020 13:17:15 +0000 (07:17 -0600)
committerSage Weil <sage@redhat.com>
Fri, 21 Feb 2020 13:17:47 +0000 (07:17 -0600)
- fix adoption test to handle different legacy fsids
- separate it out into a different script

Signed-off-by: Sage Weil <sage@redhat.com>
cephadm-adoption-corpus
qa/suites/rados/cephadm/workunits/task/test_adoption.yaml [new file with mode: 0644]
qa/workunits/cephadm/test_adoption.sh [new file with mode: 0755]
qa/workunits/cephadm/test_cephadm.sh

index 87b61cd97e4e8864913058e13cb192c28d359eee..3965bc7c8dfb24536f7c5b6ce7b8227b08f49402 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 87b61cd97e4e8864913058e13cb192c28d359eee
+Subproject commit 3965bc7c8dfb24536f7c5b6ce7b8227b08f49402
diff --git a/qa/suites/rados/cephadm/workunits/task/test_adoption.yaml b/qa/suites/rados/cephadm/workunits/task/test_adoption.yaml
new file mode 100644 (file)
index 0000000..e04fc1e
--- /dev/null
@@ -0,0 +1,11 @@
+roles:
+- [mon.a, mgr.x, osd.0, client.0]
+tasks:
+- install:
+- exec:
+    mon.a:
+      - yum install -y python3 || apt install -y python3
+- workunit:
+    clients:
+      client.0:
+        - cephadm/test_adoption.sh
diff --git a/qa/workunits/cephadm/test_adoption.sh b/qa/workunits/cephadm/test_adoption.sh
new file mode 100755 (executable)
index 0000000..4de6d3e
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/bash -ex
+
+SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+CEPHADM_SRC_DIR=${SCRIPT_DIR}/../../../src/cephadm
+
+CORPUS_GIT_SUBMOD="cephadm-adoption-corpus"
+TMPDIR=$(mktemp -d)
+git clone https://github.com/ceph/$CORPUS_GIT_SUBMOD $TMPDIR
+CORPUS_DIR=${TMPDIR}/archive
+trap "$SUDO rm -rf $TMPDIR" EXIT
+
+[ -z "$SUDO" ] && SUDO=sudo
+
+if [ -z "$CEPHADM" ]; then
+    CEPHADM=${CEPHADM_SRC_DIR}/cephadm
+fi
+
+# at this point, we need $CEPHADM set
+if ! [ -x "$CEPHADM" ]; then
+    echo "cephadm not found. Please set \$CEPHADM"
+    exit 1
+fi
+
+# respawn ourselves with a shebang
+if [ -z "$PYTHON_KLUDGE" ]; then
+    # see which pythons we should test with
+    PYTHONS=""
+    which python3 && PYTHONS="$PYTHONS python3"
+    which python2 && PYTHONS="$PYTHONS python2"
+    echo "PYTHONS $PYTHONS"
+    if [ -z "$PYTHONS" ]; then
+       echo "No PYTHONS found!"
+       exit 1
+    fi
+
+    TMPBINDIR=$(mktemp -d)
+    trap "rm -rf $TMPBINDIR" EXIT
+    ORIG_CEPHADM="$CEPHADM"
+    CEPHADM="$TMPBINDIR/cephadm"
+    for p in $PYTHONS; do
+       echo "=== re-running with $p ==="
+       ln -s `which $p` $TMPBINDIR/python
+       echo "#!$TMPBINDIR/python" > $CEPHADM
+       cat $ORIG_CEPHADM >> $CEPHADM
+       chmod 700 $CEPHADM
+       $TMPBINDIR/python --version
+       PYTHON_KLUDGE=1 CEPHADM=$CEPHADM $0
+       rm $TMPBINDIR/python
+    done
+    rm -rf $TMPBINDIR
+    echo "PASS with all of: $PYTHONS"
+    exit 0
+fi
+
+## adopt
+for subdir in `ls ${CORPUS_DIR}`; do
+    for tarfile in `ls ${CORPUS_DIR}/${subdir} | grep .tgz`; do
+       tarball=${CORPUS_DIR}/${subdir}/${tarfile}
+       FSID_LEGACY=`echo "$tarfile" | cut -c 1-36`
+       TMP_TAR_DIR=`mktemp -d -p $TMPDIR`
+       $SUDO tar xzvf $tarball -C $TMP_TAR_DIR
+       NAMES=$($CEPHADM ls --legacy-dir $TMP_TAR_DIR | jq -r '.[].name')
+       for name in $NAMES; do
+            $CEPHADM adopt \
+                     --style legacy \
+                     --legacy-dir $TMP_TAR_DIR \
+                     --name $name
+            # validate after adopt
+            out=$($CEPHADM ls | jq '.[]' \
+                      | jq 'select(.name == "'$name'")')
+            echo $out | jq -r '.style' | grep 'cephadm'
+            echo $out | jq -r '.fsid' | grep $FSID_LEGACY
+       done
+       # clean-up before next iter
+       $CEPHADM rm-cluster --fsid $FSID_LEGACY --force
+       $SUDO rm -rf $TMP_TAR_DIR
+    done
+done
+
+echo "OK"
index 83adc1dd1a7d102435518ddd3a6393b878ac4d1d..9618d5241f438863d71475d48a3ce20837b05f60 100755 (executable)
@@ -4,19 +4,14 @@ SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 FSID='00000000-0000-0000-0000-0000deadbeef'
-FSID_LEGACY='00000000-0000-0000-0000-ffffdeadbeef'
 
 # images that are used
 IMAGE_MASTER=${IMAGE_MASTER:-'docker.io/ceph/daemon-base:latest-master-devel'}
 IMAGE_NAUTILUS=${IMAGE_NAUTILUS:-'docker.io/ceph/daemon-base:latest-nautilus'}
 IMAGE_MIMIC=${IMAGE_MIMIC:-'docker.io/ceph/daemon-base:latest-mimic'}
 
-CORPUS_GIT_SUBMOD="cephadm-adoption-corpus"
 TMPDIR=$(mktemp -d)
 trap "rm -rf $TMPDIR" EXIT
-git clone https://github.com/ceph/$CORPUS_GIT_SUBMOD $TMPDIR
-CORPUS_DIR=${TMPDIR}/archive
-TEST_TARS=$(find ${CORPUS_DIR} -type f -iname *.tgz)
 
 OSD_IMAGE_NAME="${SCRIPT_NAME%.*}_osd.img"
 OSD_IMAGE_SIZE='6G'
@@ -79,7 +74,6 @@ CEPHADM="$SUDO $CEPHADM_BIN $CEPHADM_ARGS"
 
 # clean up previous run(s)?
 $CEPHADM rm-cluster --fsid $FSID --force
-$CEPHADM rm-cluster --fsid $FSID_LEGACY --force
 $SUDO vgchange -an $OSD_VG_NAME || true
 loopdev=$($SUDO losetup -a | grep $(basename $OSD_IMAGE_NAME) | awk -F : '{print $1}')
 if ! [ "$loopdev" = "" ]; then
@@ -270,27 +264,6 @@ echo "grafana ok"
 ## run
 # WRITE ME
 
-## adopt
-for tarball in $TEST_TARS; do
-    TMP_TAR_DIR=`mktemp -d -p $TMPDIR`
-    $SUDO tar xzvf $tarball -C $TMP_TAR_DIR
-    NAMES=$($CEPHADM ls --legacy-dir $TMP_TAR_DIR | jq -r '.[].name')
-    for name in $NAMES; do
-        $CEPHADM adopt \
-                --style legacy \
-                --legacy-dir $TMP_TAR_DIR \
-                --name $name
-        # validate after adopt
-        out=$($CEPHADM ls | jq '.[]' \
-                              | jq 'select(.name == "'$name'")')
-        echo $out | jq -r '.style' | grep 'cephadm'
-        echo $out | jq -r '.fsid' | grep $FSID_LEGACY
-    done
-    # clean-up before next iter
-    $CEPHADM rm-cluster --fsid $FSID_LEGACY --force
-    $SUDO rm -rf $TMP_TAR_DIR
-done
-
 ## unit
 $CEPHADM unit --fsid $FSID --name mon.a -- is-enabled
 $CEPHADM unit --fsid $FSID --name mon.a -- is-active