]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: rename ceph-daemon tests -> cephadm
authorSage Weil <sage@redhat.com>
Wed, 11 Dec 2019 19:57:45 +0000 (13:57 -0600)
committerSage Weil <sage@redhat.com>
Thu, 12 Dec 2019 01:14:09 +0000 (19:14 -0600)
Also move the workunit to a better location.

Signed-off-by: Sage Weil <sage@redhat.com>
.github/CODEOWNERS
qa/standalone/test_ceph_daemon.sh [deleted file]
qa/suites/rados/singleton-nomsgr/all/ceph-daemon.yaml [deleted file]
qa/suites/rados/singleton-nomsgr/all/cephadm.yaml [new file with mode: 0644]
qa/workunits/cephadm/test_cephadm.sh [new file with mode: 0755]
src/cephadm/cephadm
src/cephadm/tests/test_ceph_daemon.py
test_ceph_daemon.sh [deleted file]
test_cephadm.sh [new file with mode: 0755]

index 51237b2330a1f761941b07553909cc2e29ab59b9..65bed6376fb917595b38f9f41b0ae88d66039cce 100644 (file)
@@ -16,7 +16,7 @@
 /src/pybind/mgr/ssh                             @ceph/orchestrators
 /src/pybind/mgr/test_orchestrator               @ceph/orchestrators
 /src/python-common/ceph/deployment              @ceph/orchestrators
-/qa/standalone/test_ceph_daemon.sh              @ceph/orchestrators
+/qa/workunits/cephadm/test_cephadm.sh           @ceph/orchestrators
 /qa/tasks/ceph2.py                              @ceph/orchestrators
 /qa/tasks/mgr/test_orchestrator_cli.py          @ceph/orchestrators
 /qa/tasks/mgr/test_ssh_orchestrator.py          @ceph/orchestrators
diff --git a/qa/standalone/test_ceph_daemon.sh b/qa/standalone/test_ceph_daemon.sh
deleted file mode 100755 (executable)
index 12d8c10..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/bin/bash -ex
-
-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:-'ceph/daemon-base:latest-master-devel'}
-IMAGE_NAUTILUS=${IMAGE_NAUTILUS:-'ceph/daemon-base:latest-nautilus'}
-IMAGE_MIMIC=${IMAGE_MIMIC:-'ceph/daemon-base:latest-mimic'}
-
-CORPUS_GIT_SUBMOD="ceph-daemon-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'
-OSD_TO_CREATE=6
-OSD_VG_NAME=${SCRIPT_NAME%.*}
-OSD_LV_NAME=${SCRIPT_NAME%.*}
-
-[ -z "$SUDO" ] && SUDO=sudo
-
-if [ -z "$CEPH_DAEMON" ]; then
-    CEPH_DAEMON=${SCRIPT_DIR}/../../src/cephadm/cephadm
-fi
-
-# at this point, we need $CEPH_DAEMON set
-if ! [ -x "$CEPH_DAEMON" ]; then
-    echo "cephadm not found. Please set \$CEPH_DAEMON"
-    exit 1
-fi
-
-# respawn ourselves with a shebang
-PYTHONS="python3 python2"  # which pythons we test
-if [ -z "$PYTHON_KLUDGE" ]; then
-   TMPBINDIR=$(mktemp -d)
-   trap "rm -rf $TMPBINDIR" EXIT
-   ORIG_CEPH_DAEMON="$CEPH_DAEMON"
-   CEPH_DAEMON="$TMPBINDIR/cephadm"
-   for p in $PYTHONS; do
-       echo "=== re-running with $p ==="
-       ln -s `which $p` $TMPBINDIR/python
-       echo "#!$TMPBINDIR/python" > $CEPH_DAEMON
-       cat $ORIG_CEPH_DAEMON >> $CEPH_DAEMON
-       chmod 700 $CEPH_DAEMON
-       $TMPBINDIR/python --version
-       PYTHON_KLUDGE=1 CEPH_DAEMON=$CEPH_DAEMON $0
-       rm $TMPBINDIR/python
-   done
-   rm -rf $TMPBINDIR
-   echo "PASS with all of: $PYTHONS"
-   exit 0
-fi
-
-# add image to args
-CEPH_DAEMON_ARGS="$CEPH_DAEMON_ARGS --image $IMAGE_MASTER"
-
-# combine into a single var
-CEPH_DAEMON_BIN="$CEPH_DAEMON"
-CEPH_DAEMON="$SUDO $CEPH_DAEMON_BIN $CEPH_DAEMON_ARGS"
-
-# clean up previous run(s)?
-$CEPH_DAEMON rm-cluster --fsid $FSID --force
-$CEPH_DAEMON rm-cluster --fsid $FSID_LEGACY --force
-vgchange -an $OSD_VG_NAME || true
-loopdev=$($SUDO losetup -a | grep $(basename $OSD_IMAGE_NAME) | awk -F : '{print $1}')
-if ! [ "$loopdev" = "" ]; then
-    $SUDO losetup -d $loopdev
-fi
-
-TMPDIR=`mktemp -d -p .`
-trap "rm -rf $TMPDIR" EXIT
-
-function expect_false()
-{
-        set -x
-        if "$@"; then return 1; else return 0; fi
-}
-
-## prepare + check host
-$SUDO $CEPH_DAEMON check-host
-
-## version + --image
-$SUDO CEPH_DAEMON_IMAGE=$IMAGE_NAUTILUS $CEPH_DAEMON_BIN version \
-    | grep 'ceph version 14'
-$SUDO $CEPH_DAEMON_BIN --image $IMAGE_MIMIC version \
-    | grep 'ceph version 13'
-$SUDO $CEPH_DAEMON_BIN --image $IMAGE_MASTER version | grep 'ceph version'
-
-# try force docker; this won't work if docker isn't installed
-which docker && ( $CEPH_DAEMON --docker version | grep 'ceph version' )
-
-## test shell before bootstrap, when crash dir isn't (yet) present on this host
-$CEPH_DAEMON shell -- ceph -v | grep 'ceph version'
-$CEPH_DAEMON shell --fsid $FSID -- ceph -v | grep 'ceph version'
-
-## bootstrap
-ORIG_CONFIG=`mktemp -p $TMPDIR`
-CONFIG=`mktemp -p $TMPDIR`
-KEYRING=`mktemp -p $TMPDIR`
-IP=127.0.0.1
-cat <<EOF > $ORIG_CONFIG
-[global]
-       log to file = true
-EOF
-$CEPH_DAEMON bootstrap \
-      --mon-id a \
-      --mgr-id x \
-      --mon-ip $IP \
-      --fsid $FSID \
-      --config $ORIG_CONFIG \
-      --output-config $CONFIG \
-      --output-keyring $KEYRING \
-      --allow-overwrite
-test -e $CONFIG
-test -e $KEYRING
-rm -f $ORIG_CONFIG
-
-$SUDO test -e /var/log/ceph/$FSID/ceph-mon.a.log
-$SUDO test -e /var/log/ceph/$FSID/ceph-mgr.x.log
-
-for u in ceph.target \
-            ceph-$FSID.target \
-            ceph-$FSID@mon.a \
-            ceph-$FSID@mgr.x; do
-    systemctl is-enabled $u
-    systemctl is-active $u
-done
-systemctl | grep system-ceph | grep -q .slice  # naming is escaped and annoying
-
-# check ceph -s works (via shell w/ passed config/keyring)
-$CEPH_DAEMON shell --fsid $FSID --config $CONFIG --keyring $KEYRING -- \
-      ceph -s | grep $FSID
-
-## ls
-$CEPH_DAEMON ls | jq '.[]' | jq 'select(.name == "mon.a").fsid' \
-    | grep $FSID
-$CEPH_DAEMON ls | jq '.[]' | jq 'select(.name == "mgr.x").fsid' \
-    | grep $FSID
-
-## deploy
-# add mon.b
-$CEPH_DAEMON deploy --name mon.b \
-      --fsid $FSID \
-      --mon-ip $IP:3301 \
-      --keyring /var/lib/ceph/$FSID/mon.a/keyring \
-      --config $CONFIG
-for u in ceph-$FSID@mon.b; do
-    systemctl is-enabled $u
-    systemctl is-active $u
-done
-
-# add mgr.y
-$CEPH_DAEMON shell --fsid $FSID --config $CONFIG --keyring $KEYRING -- \
-      ceph auth get-or-create mgr.y \
-      mon 'allow profile mgr' \
-      osd 'allow *' \
-      mds 'allow *' > $TMPDIR/keyring.mgr.y
-$CEPH_DAEMON deploy --name mgr.y \
-      --fsid $FSID \
-      --keyring $TMPDIR/keyring.mgr.y \
-      --config $CONFIG
-for u in ceph-$FSID@mgr.y; do
-    systemctl is-enabled $u
-    systemctl is-active $u
-done
-for f in `seq 1 30`; do
-    if $CEPH_DAEMON shell --fsid $FSID \
-            --config $CONFIG --keyring $KEYRING -- \
-         ceph -s -f json-pretty \
-       | jq '.mgrmap.num_standbys' | grep -q 1 ; then break; fi
-    sleep 1
-done
-$CEPH_DAEMON shell --fsid $FSID --config $CONFIG --keyring $KEYRING -- \
-      ceph -s -f json-pretty \
-    | jq '.mgrmap.num_standbys' | grep -q 1
-
-# add osd.{1,2,..}
-dd if=/dev/zero of=$TMPDIR/$OSD_IMAGE_NAME bs=1 count=0 seek=$OSD_IMAGE_SIZE
-loop_dev=$($SUDO losetup -f)
-$SUDO vgremove -f $OSD_VG_NAME || true
-$SUDO losetup $loop_dev $TMPDIR/$OSD_IMAGE_NAME
-$SUDO pvcreate $loop_dev && $SUDO vgcreate $OSD_VG_NAME $loop_dev
-for id in `seq 0 $((--OSD_TO_CREATE))`; do
-    $SUDO lvcreate -l $((100/$OSD_TO_CREATE))%VG -n $OSD_LV_NAME.$id $OSD_VG_NAME
-    $CEPH_DAEMON shell --config $CONFIG --keyring $KEYRING -- \
-            ceph orchestrator osd create \
-                $(hostname):/dev/$OSD_VG_NAME/$OSD_LV_NAME.$id
-done
-
-## run
-# WRITE ME
-
-## adopt
-if false; then
-for tarball in $TEST_TARS; do
-    TMP_TAR_DIR=`mktemp -d -p $TMPDIR`
-    $SUDO tar xzvf $tarball -C $TMP_TAR_DIR
-    NAMES=$($CEPH_DAEMON ls --legacy-dir $TMP_TAR_DIR | jq -r '.[].name')
-    for name in $NAMES; do
-        $CEPH_DAEMON adopt \
-                --style legacy \
-                --legacy-dir $TMP_TAR_DIR \
-                --name $name
-        # validate after adopt
-        out=$($CEPH_DAEMON 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
-    $CEPH_DAEMON rm-cluster --fsid $FSID_LEGACY --force
-    $SUDO rm -rf $TMP_TAR_DIR
-done
-fi
-
-## unit
-$CEPH_DAEMON unit --fsid $FSID --name mon.a -- is-enabled
-$CEPH_DAEMON unit --fsid $FSID --name mon.a -- is-active
-expect_false $CEPH_DAEMON unit --fsid $FSID --name mon.xyz -- is-active
-$CEPH_DAEMON unit --fsid $FSID --name mon.a -- disable
-expect_false $CEPH_DAEMON unit --fsid $FSID --name mon.a -- is-enabled
-$CEPH_DAEMON unit --fsid $FSID --name mon.a -- enable
-$CEPH_DAEMON unit --fsid $FSID --name mon.a -- is-enabled
-
-## shell
-$CEPH_DAEMON shell -- true
-$CEPH_DAEMON shell --fsid $FSID -- test -d /var/log/ceph
-
-## enter
-expect_false $CEPH_DAEMON enter
-$CEPH_DAEMON enter --fsid $FSID --name mon.a -- test -d /var/lib/ceph/mon/ceph-a
-$CEPH_DAEMON enter --fsid $FSID --name mgr.x -- test -d /var/lib/ceph/mgr/ceph-x
-$CEPH_DAEMON enter --fsid $FSID --name mon.a -- pidof ceph-mon
-expect_false $CEPH_DAEMON enter --fsid $FSID --name mgr.x -- pidof ceph-mon
-$CEPH_DAEMON enter --fsid $FSID --name mgr.x -- pidof ceph-mgr
-
-## ceph-volume
-$CEPH_DAEMON ceph-volume --fsid $FSID -- inventory --format=json \
-      | jq '.[]'
-
-## rm-daemon
-# mon and osd require --force
-expect_false $CEPH_DAEMON rm-daemon --fsid $FSID --name mon.a
-# mgr does not
-$CEPH_DAEMON rm-daemon --fsid $FSID --name mgr.x
-
-## rm-cluster
-expect_false $CEPH_DAEMON rm-cluster --fsid $FSID
-$CEPH_DAEMON rm-cluster --fsid $FSID --force
-
-rm -rf $TMPDIR
-echo PASS
diff --git a/qa/suites/rados/singleton-nomsgr/all/ceph-daemon.yaml b/qa/suites/rados/singleton-nomsgr/all/ceph-daemon.yaml
deleted file mode 100644 (file)
index ed19310..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-roles:
-- [mon.a, mgr.x, osd.0, client.0]
-tasks:
-- install:
-- exec:
-    mon.a:
-      - yum install -y python3 || apt install -y python3
-- workunit:
-    basedir: qa/standalone
-    clients:
-      client.0:
-        - test_ceph_daemon.sh
diff --git a/qa/suites/rados/singleton-nomsgr/all/cephadm.yaml b/qa/suites/rados/singleton-nomsgr/all/cephadm.yaml
new file mode 100644 (file)
index 0000000..4d25351
--- /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_cephadm.sh
diff --git a/qa/workunits/cephadm/test_cephadm.sh b/qa/workunits/cephadm/test_cephadm.sh
new file mode 100755 (executable)
index 0000000..390dfbd
--- /dev/null
@@ -0,0 +1,258 @@
+#!/bin/bash -ex
+
+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:-'ceph/daemon-base:latest-master-devel'}
+IMAGE_NAUTILUS=${IMAGE_NAUTILUS:-'ceph/daemon-base:latest-nautilus'}
+IMAGE_MIMIC=${IMAGE_MIMIC:-'ceph/daemon-base:latest-mimic'}
+
+CORPUS_GIT_SUBMOD="ceph-daemon-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'
+OSD_TO_CREATE=6
+OSD_VG_NAME=${SCRIPT_NAME%.*}
+OSD_LV_NAME=${SCRIPT_NAME%.*}
+
+[ -z "$SUDO" ] && SUDO=sudo
+
+if [ -z "$CEPHADM" ]; then
+    CEPHADM=${SCRIPT_DIR}/../../../src/cephadm/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
+PYTHONS="python3 python2"  # which pythons we test
+if [ -z "$PYTHON_KLUDGE" ]; then
+   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
+
+# add image to args
+CEPHADM_ARGS="$CEPHADM_ARGS --image $IMAGE_MASTER"
+
+# combine into a single var
+CEPHADM_BIN="$CEPHADM"
+CEPHADM="$SUDO $CEPHADM_BIN $CEPHADM_ARGS"
+
+# clean up previous run(s)?
+$CEPHADM rm-cluster --fsid $FSID --force
+$CEPHADM rm-cluster --fsid $FSID_LEGACY --force
+vgchange -an $OSD_VG_NAME || true
+loopdev=$($SUDO losetup -a | grep $(basename $OSD_IMAGE_NAME) | awk -F : '{print $1}')
+if ! [ "$loopdev" = "" ]; then
+    $SUDO losetup -d $loopdev
+fi
+
+function expect_false()
+{
+        set -x
+        if "$@"; then return 1; else return 0; fi
+}
+
+## prepare + check host
+$SUDO $CEPHADM check-host
+
+## version + --image
+$SUDO CEPHADM_IMAGE=$IMAGE_NAUTILUS $CEPHADM_BIN version
+$SUDO CEPHADM_IMAGE=$IMAGE_NAUTILUS $CEPHADM_BIN version \
+    | grep 'ceph version 14'
+$SUDO $CEPHADM_BIN --image $IMAGE_MIMIC version
+$SUDO $CEPHADM_BIN --image $IMAGE_MIMIC version \
+    | grep 'ceph version 13'
+$SUDO $CEPHADM_BIN --image $IMAGE_MASTER version | grep 'ceph version'
+
+# try force docker; this won't work if docker isn't installed
+which docker && ( $CEPHADM --docker version | grep 'ceph version' )
+
+## test shell before bootstrap, when crash dir isn't (yet) present on this host
+$CEPHADM shell -- ceph -v | grep 'ceph version'
+$CEPHADM shell --fsid $FSID -- ceph -v | grep 'ceph version'
+
+## bootstrap
+ORIG_CONFIG=`mktemp -p $TMPDIR`
+CONFIG=`mktemp -p $TMPDIR`
+KEYRING=`mktemp -p $TMPDIR`
+IP=127.0.0.1
+cat <<EOF > $ORIG_CONFIG
+[global]
+       log to file = true
+EOF
+$CEPHADM bootstrap \
+      --mon-id a \
+      --mgr-id x \
+      --mon-ip $IP \
+      --fsid $FSID \
+      --config $ORIG_CONFIG \
+      --output-config $CONFIG \
+      --output-keyring $KEYRING \
+      --allow-overwrite
+test -e $CONFIG
+test -e $KEYRING
+rm -f $ORIG_CONFIG
+
+$SUDO test -e /var/log/ceph/$FSID/ceph-mon.a.log
+$SUDO test -e /var/log/ceph/$FSID/ceph-mgr.x.log
+
+for u in ceph.target \
+            ceph-$FSID.target \
+            ceph-$FSID@mon.a \
+            ceph-$FSID@mgr.x; do
+    systemctl is-enabled $u
+    systemctl is-active $u
+done
+systemctl | grep system-ceph | grep -q .slice  # naming is escaped and annoying
+
+# check ceph -s works (via shell w/ passed config/keyring)
+$CEPHADM shell --fsid $FSID --config $CONFIG --keyring $KEYRING -- \
+      ceph -s | grep $FSID
+
+## ls
+$CEPHADM ls | jq '.[]' | jq 'select(.name == "mon.a").fsid' \
+    | grep $FSID
+$CEPHADM ls | jq '.[]' | jq 'select(.name == "mgr.x").fsid' \
+    | grep $FSID
+
+## deploy
+# add mon.b
+$CEPHADM deploy --name mon.b \
+      --fsid $FSID \
+      --mon-ip $IP:3301 \
+      --keyring /var/lib/ceph/$FSID/mon.a/keyring \
+      --config $CONFIG
+for u in ceph-$FSID@mon.b; do
+    systemctl is-enabled $u
+    systemctl is-active $u
+done
+
+# add mgr.y
+$CEPHADM shell --fsid $FSID --config $CONFIG --keyring $KEYRING -- \
+      ceph auth get-or-create mgr.y \
+      mon 'allow profile mgr' \
+      osd 'allow *' \
+      mds 'allow *' > $TMPDIR/keyring.mgr.y
+$CEPHADM deploy --name mgr.y \
+      --fsid $FSID \
+      --keyring $TMPDIR/keyring.mgr.y \
+      --config $CONFIG
+for u in ceph-$FSID@mgr.y; do
+    systemctl is-enabled $u
+    systemctl is-active $u
+done
+for f in `seq 1 30`; do
+    if $CEPHADM shell --fsid $FSID \
+            --config $CONFIG --keyring $KEYRING -- \
+         ceph -s -f json-pretty \
+       | jq '.mgrmap.num_standbys' | grep -q 1 ; then break; fi
+    sleep 1
+done
+$CEPHADM shell --fsid $FSID --config $CONFIG --keyring $KEYRING -- \
+      ceph -s -f json-pretty \
+    | jq '.mgrmap.num_standbys' | grep -q 1
+
+# add osd.{1,2,..}
+dd if=/dev/zero of=$TMPDIR/$OSD_IMAGE_NAME bs=1 count=0 seek=$OSD_IMAGE_SIZE
+loop_dev=$($SUDO losetup -f)
+$SUDO vgremove -f $OSD_VG_NAME || true
+$SUDO losetup $loop_dev $TMPDIR/$OSD_IMAGE_NAME
+$SUDO pvcreate $loop_dev && $SUDO vgcreate $OSD_VG_NAME $loop_dev
+for id in `seq 0 $((--OSD_TO_CREATE))`; do
+    $SUDO lvcreate -l $((100/$OSD_TO_CREATE))%VG -n $OSD_LV_NAME.$id $OSD_VG_NAME
+    $CEPHADM shell --config $CONFIG --keyring $KEYRING -- \
+            ceph orchestrator osd create \
+                $(hostname):/dev/$OSD_VG_NAME/$OSD_LV_NAME.$id
+done
+
+## run
+# WRITE ME
+
+## adopt
+if false; then
+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
+fi
+
+## unit
+$CEPHADM unit --fsid $FSID --name mon.a -- is-enabled
+$CEPHADM unit --fsid $FSID --name mon.a -- is-active
+expect_false $CEPHADM unit --fsid $FSID --name mon.xyz -- is-active
+$CEPHADM unit --fsid $FSID --name mon.a -- disable
+expect_false $CEPHADM unit --fsid $FSID --name mon.a -- is-enabled
+$CEPHADM unit --fsid $FSID --name mon.a -- enable
+$CEPHADM unit --fsid $FSID --name mon.a -- is-enabled
+
+## shell
+$CEPHADM shell -- true
+$CEPHADM shell --fsid $FSID -- test -d /var/log/ceph
+
+## enter
+expect_false $CEPHADM enter
+$CEPHADM enter --fsid $FSID --name mon.a -- test -d /var/lib/ceph/mon/ceph-a
+$CEPHADM enter --fsid $FSID --name mgr.x -- test -d /var/lib/ceph/mgr/ceph-x
+$CEPHADM enter --fsid $FSID --name mon.a -- pidof ceph-mon
+expect_false $CEPHADM enter --fsid $FSID --name mgr.x -- pidof ceph-mon
+$CEPHADM enter --fsid $FSID --name mgr.x -- pidof ceph-mgr
+
+## ceph-volume
+$CEPHADM ceph-volume --fsid $FSID -- inventory --format=json \
+      | jq '.[]'
+
+## rm-daemon
+# mon and osd require --force
+expect_false $CEPHADM rm-daemon --fsid $FSID --name mon.a
+# mgr does not
+$CEPHADM rm-daemon --fsid $FSID --name mgr.x
+
+## rm-cluster
+expect_false $CEPHADM rm-cluster --fsid $FSID
+$CEPHADM rm-cluster --fsid $FSID --force
+
+rm -rf $TMPDIR
+echo PASS
index 1dcf615e1f0209575c39c798f2a3c6c88890d26b..b9b4bf2d264930fce8d57f385c0eb21ce450fc3d 100755 (executable)
@@ -1770,8 +1770,8 @@ def _get_parser():
         formatter_class=argparse.ArgumentDefaultsHelpFormatter)
     parser.add_argument(
         '--image',
-        default=os.environ.get('CEPH_DAEMON_IMAGE', DEFAULT_IMAGE),
-        help='container image. Can also be set via the "CEPH_DAEMON_IMAGE" '
+        default=os.environ.get('CEPHADM_IMAGE', DEFAULT_IMAGE),
+        help='container image. Can also be set via the "CEPHADM_IMAGE" '
         'env var')
     parser.add_argument(
         '--docker',
index ada2beff714daa5fe1ff6a3ee0a998f0d07973e5..db94ba5d099f8beb304b179a68be0b246f9de4e6 100644 (file)
@@ -19,7 +19,7 @@ class TestCephDaemon(unittest.TestCase):
         args = p.parse_args(['--image', 'foo', 'version'])
         assert args.image == 'foo'
 
-    @mock.patch.dict(os.environ,{'CEPH_DAEMON_IMAGE':'bar'})
+    @mock.patch.dict(os.environ,{'CEPHADM_IMAGE':'bar'})
     def test__get_parser_image_with_envvar(self):
         p = cd._get_parser()
         args = p.parse_args(['version'])
diff --git a/test_ceph_daemon.sh b/test_ceph_daemon.sh
deleted file mode 100755 (executable)
index 5f68be4..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash -ex
-
-SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
-
-fsid='00000000-0000-0000-0000-0000deadbeef'
-image='ceph/daemon-base:latest-master-devel'
-[ -z "$ip" ] && ip=127.0.0.1
-
-OSD_IMAGE_NAME="${SCRIPT_NAME%.*}_osd.img"
-OSD_IMAGE_SIZE='6G'
-OSD_TO_CREATE=6
-OSD_VG_NAME=${SCRIPT_NAME%.*}
-OSD_LV_NAME=${SCRIPT_NAME%.*}
-
-CEPH_DAEMON=../src/cephadm/cephadm
-
-#A="-d"
-
-# clean up previous run(s)?
-$CEPH_DAEMON $A rm-cluster --fsid $fsid --force
-vgchange -an $OSD_VG_NAME || true
-loopdev=$(losetup -a | grep $(basename $OSD_IMAGE_NAME) | awk -F : '{print $1}')
-if ! [ "$loopdev" = "" ]; then
-    losetup -d $loopdev
-fi
-rm -f $OSD_IMAGE_NAME
-
-cat <<EOF > c
-[global]
-       log to file = true
-EOF
-
-$CEPH_DAEMON $A \
-    --image $image \
-    bootstrap \
-    --mon-id a \
-    --mgr-id x \
-    --fsid $fsid \
-    --mon-ip $ip \
-    --config c \
-    --output-keyring k \
-    --output-config c \
-    --allow-overwrite
-chmod 644 k c
-
-if [ -n "$ip2" ]; then
-    # mon.b
-    $CEPH_DAEMON $A \
-    --image $image \
-    deploy --name mon.b \
-    --fsid $fsid \
-    --mon-addrv "[v2:$ip2:3300,v1:$ip2:6789]" \
-    --keyring /var/lib/ceph/$fsid/mon.a/keyring \
-    --config c
-fi
-
-# mgr.b
-bin/ceph -c c -k k auth get-or-create mgr.y \
-        mon 'allow profile mgr' \
-        osd 'allow *' \
-        mds 'allow *' > k-mgr.y
-$CEPH_DAEMON $A \
-    --image $image \
-    deploy --name mgr.y \
-    --fsid $fsid \
-    --keyring k-mgr.y \
-    --config c
-
-# mds.{k,j}
-for id in k j; do
-    bin/ceph -c c -k k auth get-or-create mds.$id \
-            mon 'allow profile mds' \
-            mgr 'allow profile mds' \
-            osd 'allow *' \
-            mds 'allow *' > k-mds.$id
-    $CEPH_DAEMON $A \
-       --image $image \
-       deploy --name mds.$id \
-       --fsid $fsid \
-       --keyring k-mds.$id \
-       --config c
-done
-
-# add osd.{1,2,..}
-dd if=/dev/zero of=$OSD_IMAGE_NAME bs=1 count=0 seek=$OSD_IMAGE_SIZE
-loop_dev=$(losetup -f)
-losetup $loop_dev $OSD_IMAGE_NAME
-pvcreate $loop_dev && vgcreate $OSD_VG_NAME $loop_dev
-for id in `seq 0 $((--OSD_TO_CREATE))`; do
-    lvcreate -l $((100/$OSD_TO_CREATE))%VG -n $OSD_LV_NAME.$id $OSD_VG_NAME
-    $SUDO $CEPH_DAEMON shell --config c --keyring k -- \
-            ceph orchestrator osd create \
-                $(hostname):/dev/$OSD_VG_NAME/$OSD_LV_NAME.$id
-done
-
-bin/ceph -c c -k k -s
diff --git a/test_cephadm.sh b/test_cephadm.sh
new file mode 100755 (executable)
index 0000000..ac8763f
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/bash -ex
+
+SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
+
+fsid='00000000-0000-0000-0000-0000deadbeef'
+image='ceph/daemon-base:latest-master-devel'
+[ -z "$ip" ] && ip=127.0.0.1
+
+OSD_IMAGE_NAME="${SCRIPT_NAME%.*}_osd.img"
+OSD_IMAGE_SIZE='6G'
+OSD_TO_CREATE=6
+OSD_VG_NAME=${SCRIPT_NAME%.*}
+OSD_LV_NAME=${SCRIPT_NAME%.*}
+
+CEPHADM=../src/cephadm/cephadm
+
+#A="-d"
+
+# clean up previous run(s)?
+$CEPHADM $A rm-cluster --fsid $fsid --force
+vgchange -an $OSD_VG_NAME || true
+loopdev=$(losetup -a | grep $(basename $OSD_IMAGE_NAME) | awk -F : '{print $1}')
+if ! [ "$loopdev" = "" ]; then
+    losetup -d $loopdev
+fi
+rm -f $OSD_IMAGE_NAME
+
+cat <<EOF > c
+[global]
+       log to file = true
+EOF
+
+$CEPHADM $A \
+    --image $image \
+    bootstrap \
+    --mon-id a \
+    --mgr-id x \
+    --fsid $fsid \
+    --mon-ip $ip \
+    --config c \
+    --output-keyring k \
+    --output-config c \
+    --allow-overwrite
+chmod 644 k c
+
+if [ -n "$ip2" ]; then
+    # mon.b
+    $CEPHADM $A \
+    --image $image \
+    deploy --name mon.b \
+    --fsid $fsid \
+    --mon-addrv "[v2:$ip2:3300,v1:$ip2:6789]" \
+    --keyring /var/lib/ceph/$fsid/mon.a/keyring \
+    --config c
+fi
+
+# mgr.b
+bin/ceph -c c -k k auth get-or-create mgr.y \
+        mon 'allow profile mgr' \
+        osd 'allow *' \
+        mds 'allow *' > k-mgr.y
+$CEPHADM $A \
+    --image $image \
+    deploy --name mgr.y \
+    --fsid $fsid \
+    --keyring k-mgr.y \
+    --config c
+
+# mds.{k,j}
+for id in k j; do
+    bin/ceph -c c -k k auth get-or-create mds.$id \
+            mon 'allow profile mds' \
+            mgr 'allow profile mds' \
+            osd 'allow *' \
+            mds 'allow *' > k-mds.$id
+    $CEPHADM $A \
+       --image $image \
+       deploy --name mds.$id \
+       --fsid $fsid \
+       --keyring k-mds.$id \
+       --config c
+done
+
+# add osd.{1,2,..}
+dd if=/dev/zero of=$OSD_IMAGE_NAME bs=1 count=0 seek=$OSD_IMAGE_SIZE
+loop_dev=$(losetup -f)
+losetup $loop_dev $OSD_IMAGE_NAME
+pvcreate $loop_dev && vgcreate $OSD_VG_NAME $loop_dev
+for id in `seq 0 $((--OSD_TO_CREATE))`; do
+    lvcreate -l $((100/$OSD_TO_CREATE))%VG -n $OSD_LV_NAME.$id $OSD_VG_NAME
+    $SUDO $CEPHADM shell --config c --keyring k -- \
+            ceph orchestrator osd create \
+                $(hostname):/dev/$OSD_VG_NAME/$OSD_LV_NAME.$id
+done
+
+bin/ceph -c c -k k -s