]> git.proxmox.com Git - ceph.git/blame - ceph/qa/workunits/cephadm/test_adoption.sh
bump version to 15.2.1-pve1
[ceph.git] / ceph / qa / workunits / cephadm / test_adoption.sh
CommitLineData
9f95a23c
TL
1#!/bin/bash -ex
2
3SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
4SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5CEPHADM_SRC_DIR=${SCRIPT_DIR}/../../../src/cephadm
6
7[ -z "$SUDO" ] && SUDO=sudo
8if [ -z "$CEPHADM" ]; then
9 CEPHADM=${CEPHADM_SRC_DIR}/cephadm
10fi
11
12# at this point, we need $CEPHADM set
13if ! [ -x "$CEPHADM" ]; then
14 echo "cephadm not found. Please set \$CEPHADM"
15 exit 1
16fi
17
18# respawn ourselves with a shebang
19if [ -z "$PYTHON_KLUDGE" ]; then
20 # see which pythons we should test with
21 PYTHONS=""
22 which python3 && PYTHONS="$PYTHONS python3"
23 which python2 && PYTHONS="$PYTHONS python2"
24 echo "PYTHONS $PYTHONS"
25 if [ -z "$PYTHONS" ]; then
26 echo "No PYTHONS found!"
27 exit 1
28 fi
29
30 TMPBINDIR=$(mktemp -d)
31 trap "rm -rf $TMPBINDIR" EXIT
32 ORIG_CEPHADM="$CEPHADM"
33 CEPHADM="$TMPBINDIR/cephadm"
34 for p in $PYTHONS; do
35 echo "=== re-running with $p ==="
36 ln -s `which $p` $TMPBINDIR/python
37 echo "#!$TMPBINDIR/python" > $CEPHADM
38 cat $ORIG_CEPHADM >> $CEPHADM
39 chmod 700 $CEPHADM
40 $TMPBINDIR/python --version
41 PYTHON_KLUDGE=1 CEPHADM=$CEPHADM $0
42 rm $TMPBINDIR/python
43 done
44 rm -rf $TMPBINDIR
45 echo "PASS with all of: $PYTHONS"
46 exit 0
47fi
48
49# combine into a single var
50CEPHADM_BIN="$CEPHADM"
51CEPHADM="$SUDO $CEPHADM_BIN"
52
53## adopt
54CORPUS_GIT_SUBMOD="cephadm-adoption-corpus"
55TMPDIR=$(mktemp -d)
56git clone https://github.com/ceph/$CORPUS_GIT_SUBMOD $TMPDIR
57CORPUS_DIR=${TMPDIR}/archive
58trap "$SUDO rm -rf $TMPDIR" EXIT
59
60for subdir in `ls ${CORPUS_DIR}`; do
61 for tarfile in `ls ${CORPUS_DIR}/${subdir} | grep .tgz`; do
62 tarball=${CORPUS_DIR}/${subdir}/${tarfile}
63 FSID_LEGACY=`echo "$tarfile" | cut -c 1-36`
64 TMP_TAR_DIR=`mktemp -d -p $TMPDIR`
65 $SUDO tar xzvf $tarball -C $TMP_TAR_DIR
66 NAMES=$($CEPHADM ls --legacy-dir $TMP_TAR_DIR | jq -r '.[].name')
67 for name in $NAMES; do
68 $CEPHADM adopt \
69 --style legacy \
70 --legacy-dir $TMP_TAR_DIR \
71 --name $name
72 # validate after adopt
73 out=$($CEPHADM ls | jq '.[]' \
74 | jq 'select(.name == "'$name'")')
75 echo $out | jq -r '.style' | grep 'cephadm'
76 echo $out | jq -r '.fsid' | grep $FSID_LEGACY
77 done
78 # clean-up before next iter
79 $CEPHADM rm-cluster --fsid $FSID_LEGACY --force
80 $SUDO rm -rf $TMP_TAR_DIR
81 done
82done
83
84echo "OK"