]>
Commit | Line | Data |
---|---|---|
9f95a23c TL |
1 | #!/bin/bash -ex |
2 | ||
3 | SCRIPT_NAME=$(basename ${BASH_SOURCE[0]}) | |
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | |
5 | CEPHADM_SRC_DIR=${SCRIPT_DIR}/../../../src/cephadm | |
6 | ||
7 | [ -z "$SUDO" ] && SUDO=sudo | |
8 | if [ -z "$CEPHADM" ]; then | |
9 | CEPHADM=${CEPHADM_SRC_DIR}/cephadm | |
10 | fi | |
11 | ||
12 | # at this point, we need $CEPHADM set | |
13 | if ! [ -x "$CEPHADM" ]; then | |
14 | echo "cephadm not found. Please set \$CEPHADM" | |
15 | exit 1 | |
16 | fi | |
17 | ||
18 | # respawn ourselves with a shebang | |
19 | if [ -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 | |
47 | fi | |
48 | ||
49 | # combine into a single var | |
50 | CEPHADM_BIN="$CEPHADM" | |
51 | CEPHADM="$SUDO $CEPHADM_BIN" | |
52 | ||
53 | ## adopt | |
54 | CORPUS_GIT_SUBMOD="cephadm-adoption-corpus" | |
55 | TMPDIR=$(mktemp -d) | |
56 | git clone https://github.com/ceph/$CORPUS_GIT_SUBMOD $TMPDIR | |
57 | CORPUS_DIR=${TMPDIR}/archive | |
58 | trap "$SUDO rm -rf $TMPDIR" EXIT | |
59 | ||
60 | for 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 | |
82 | done | |
83 | ||
84 | echo "OK" |