From: Ilya Dryomov Date: Mon, 29 Jun 2026 09:40:02 +0000 (+0200) Subject: qa/suites/rbd: add mon_host + key[-ref] coverage to migration-external X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b2526294a0706cd85755b391d85a279cc74f4d38;p=ceph.git qa/suites/rbd: add mon_host + key[-ref] coverage to migration-external Signed-off-by: Ilya Dryomov (cherry picked from commit e246fad552854cdc942485047b6c9112524a9229) --- diff --git a/qa/suites/rbd/migration-external/6-prepare/native-clone-conf.yaml b/qa/suites/rbd/migration-external/6-prepare/native-clone-conf.yaml new file mode 100644 index 000000000000..96fc00125495 --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-clone-conf.yaml @@ -0,0 +1,32 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0-src + - rbd --cluster cluster2 migration execute client.0.0-src + - rbd --cluster cluster2 migration commit client.0.0-src + - rbd --cluster cluster2 snap create client.0.0-src@snap + - rbd --cluster cluster2 snap protect client.0.0-src@snap + - rbd --cluster cluster2 clone client.0.0-src@snap client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1-src + - rbd --cluster cluster2 snap create client.0.1-src@snap + - rbd --cluster cluster2 snap protect client.0.1-src@snap + - rbd --cluster cluster2 clone client.0.1-src@snap client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.2-src + - rbd --cluster cluster2 snap create client.0.2-src@snap + - rbd --cluster cluster2 snap protect client.0.2-src@snap + - rbd --cluster cluster2 clone client.0.2-src@snap client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' + - exec: + cluster1.client.0: + - ceph --cluster cluster2 auth get client.0 -o /etc/ceph/cluster2.client.0.keyring + - ceph --cluster cluster1 auth caps client.0 mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd' + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-clone-key-ref.yaml b/qa/suites/rbd/migration-external/6-prepare/native-clone-key-ref.yaml new file mode 100644 index 000000000000..035ade05fca6 --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-clone-key-ref.yaml @@ -0,0 +1,36 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0-src + - rbd --cluster cluster2 migration execute client.0.0-src + - rbd --cluster cluster2 migration commit client.0.0-src + - rbd --cluster cluster2 snap create client.0.0-src@snap + - rbd --cluster cluster2 snap protect client.0.0-src@snap + - rbd --cluster cluster2 clone client.0.0-src@snap client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1-src + - rbd --cluster cluster2 snap create client.0.1-src@snap + - rbd --cluster cluster2 snap protect client.0.1-src@snap + - rbd --cluster cluster2 clone client.0.1-src@snap client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.2-src + - rbd --cluster cluster2 snap create client.0.2-src@snap + - rbd --cluster cluster2 snap protect client.0.2-src@snap + - rbd --cluster cluster2 clone client.0.2-src@snap client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' + - exec: + cluster1.client.0: + - | + set -ex + MON_HOST="$(ceph-conf --cluster cluster2 mon_host)" + KEY="$(ceph --cluster cluster2 auth get-key client.0)" + ceph --cluster cluster1 config-key set rbd/migration/native/client.0/cluster2_key "$KEY" + ceph --cluster cluster1 auth caps client.0 mon 'profile rbd, allow command "config-key get" with key prefix rbd/migration/native/client.0/' mgr 'profile rbd' osd 'profile rbd' + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"config://rbd/migration/native/client.0/cluster2_key","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"config://rbd/migration/native/client.0/cluster2_key","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"config://rbd/migration/native/client.0/cluster2_key","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-clone-raw-key.yaml b/qa/suites/rbd/migration-external/6-prepare/native-clone-raw-key.yaml new file mode 100644 index 000000000000..279d162c763c --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-clone-raw-key.yaml @@ -0,0 +1,35 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0-src + - rbd --cluster cluster2 migration execute client.0.0-src + - rbd --cluster cluster2 migration commit client.0.0-src + - rbd --cluster cluster2 snap create client.0.0-src@snap + - rbd --cluster cluster2 snap protect client.0.0-src@snap + - rbd --cluster cluster2 clone client.0.0-src@snap client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1-src + - rbd --cluster cluster2 snap create client.0.1-src@snap + - rbd --cluster cluster2 snap protect client.0.1-src@snap + - rbd --cluster cluster2 clone client.0.1-src@snap client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.2-src + - rbd --cluster cluster2 snap create client.0.2-src@snap + - rbd --cluster cluster2 snap protect client.0.2-src@snap + - rbd --cluster cluster2 clone client.0.2-src@snap client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' + - exec: + cluster1.client.0: + - | + set -ex + MON_HOST="$(ceph-conf --cluster cluster2 mon_host)" + KEY="$(ceph --cluster cluster2 auth get-key client.0)" + ceph --cluster cluster1 auth caps client.0 mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd' + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"'"$KEY"'","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"'"$KEY"'","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"'"$KEY"'","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-clone.yaml b/qa/suites/rbd/migration-external/6-prepare/native-clone.yaml deleted file mode 100644 index 96fc00125495..000000000000 --- a/qa/suites/rbd/migration-external/6-prepare/native-clone.yaml +++ /dev/null @@ -1,32 +0,0 @@ -tasks: - - exec: - cluster2.client.0: - - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0-src - - rbd --cluster cluster2 migration execute client.0.0-src - - rbd --cluster cluster2 migration commit client.0.0-src - - rbd --cluster cluster2 snap create client.0.0-src@snap - - rbd --cluster cluster2 snap protect client.0.0-src@snap - - rbd --cluster cluster2 clone client.0.0-src@snap client.0.0 - - rbd --cluster cluster2 snap create client.0.0@snap - - rbd --cluster cluster2 create --size 1G client.0.1-src - - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1-src - - rbd --cluster cluster2 snap create client.0.1-src@snap - - rbd --cluster cluster2 snap protect client.0.1-src@snap - - rbd --cluster cluster2 clone client.0.1-src@snap client.0.1 - - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1 - - rbd --cluster cluster2 snap create client.0.1@snap - - rbd --cluster cluster2 create --size 1G client.0.2-src - - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.2-src - - rbd --cluster cluster2 snap create client.0.2-src@snap - - rbd --cluster cluster2 snap protect client.0.2-src@snap - - rbd --cluster cluster2 clone client.0.2-src@snap client.0.2 - - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 - - rbd --cluster cluster2 snap create client.0.2@snap - - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' - - exec: - cluster1.client.0: - - ceph --cluster cluster2 auth get client.0 -o /etc/ceph/cluster2.client.0.keyring - - ceph --cluster cluster1 auth caps client.0 mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd' - - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 - - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 - - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-standalone-conf.yaml b/qa/suites/rbd/migration-external/6-prepare/native-standalone-conf.yaml new file mode 100644 index 000000000000..9da9b799ffc1 --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-standalone-conf.yaml @@ -0,0 +1,21 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0 + - rbd --cluster cluster2 migration execute client.0.0 + - rbd --cluster cluster2 migration commit client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' + - exec: + cluster1.client.0: + - ceph --cluster cluster2 auth get client.0 -o /etc/ceph/cluster2.client.0.keyring + - ceph --cluster cluster1 auth caps client.0 mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd' + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-standalone-key-ref.yaml b/qa/suites/rbd/migration-external/6-prepare/native-standalone-key-ref.yaml new file mode 100644 index 000000000000..58c80838016f --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-standalone-key-ref.yaml @@ -0,0 +1,25 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0 + - rbd --cluster cluster2 migration execute client.0.0 + - rbd --cluster cluster2 migration commit client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' + - exec: + cluster1.client.0: + - | + set -ex + MON_HOST="$(ceph-conf --cluster cluster2 mon_host)" + KEY="$(ceph --cluster cluster2 auth get-key client.0)" + ceph --cluster cluster1 config-key set rbd/migration/native/client.0/cluster2_key "$KEY" + ceph --cluster cluster1 auth caps client.0 mon 'profile rbd, allow command "config-key get" with key prefix rbd/migration/native/client.0/' mgr 'profile rbd' osd 'profile rbd' + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"config://rbd/migration/native/client.0/cluster2_key","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"config://rbd/migration/native/client.0/cluster2_key","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"config://rbd/migration/native/client.0/cluster2_key","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-standalone-raw-key.yaml b/qa/suites/rbd/migration-external/6-prepare/native-standalone-raw-key.yaml new file mode 100644 index 000000000000..ad707212aeea --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-standalone-raw-key.yaml @@ -0,0 +1,24 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0 + - rbd --cluster cluster2 migration execute client.0.0 + - rbd --cluster cluster2 migration commit client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' + - exec: + cluster1.client.0: + - | + set -ex + MON_HOST="$(ceph-conf --cluster cluster2 mon_host)" + KEY="$(ceph --cluster cluster2 auth get-key client.0)" + ceph --cluster cluster1 auth caps client.0 mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd' + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"'"$KEY"'","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"'"$KEY"'","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + echo '{"type":"native","mon_host":"'"$MON_HOST"'","key":"'"$KEY"'","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml b/qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml deleted file mode 100644 index 9da9b799ffc1..000000000000 --- a/qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml +++ /dev/null @@ -1,21 +0,0 @@ -tasks: - - exec: - cluster2.client.0: - - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0 - - rbd --cluster cluster2 migration execute client.0.0 - - rbd --cluster cluster2 migration commit client.0.0 - - rbd --cluster cluster2 snap create client.0.0@snap - - rbd --cluster cluster2 create --size 1G client.0.1 - - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.1 - - rbd --cluster cluster2 snap create client.0.1@snap - - rbd --cluster cluster2 create --size 1G client.0.2 - - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 - - rbd --cluster cluster2 snap create client.0.2@snap - - ceph --cluster cluster2 auth caps client.0 mon 'profile rbd' mgr 'profile rbd-read-only' osd 'profile rbd-read-only' - - exec: - cluster1.client.0: - - ceph --cluster cluster2 auth get client.0 -o /etc/ceph/cluster2.client.0.keyring - - ceph --cluster cluster1 auth caps client.0 mon 'profile rbd' mgr 'profile rbd' osd 'profile rbd' - - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 - - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 - - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.0","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2