Skip to content
Snippets Groups Projects
ceph-rbd-image-snapshot-create.sh 958 B
Newer Older
#!/usr/bin/env bash

# ceph-rbd-image-snapshot-create.sh <ceph-pool-name> <ostack-volume-id> <ostack-snapshot-name>
# returns 0 if RBD image snapshot is created and protected

set -eo pipefail

CEPH_CLIENT_DIR="/root/migrator"
CEPH_USER="${CEPH_USER:-"client.cinder"}"
CEPH_KEYRING="${CEPH_CLIENT_DIR}/${CEPH_USER}.keyring"
CEPH_CONFIG="${CEPH_CLIENT_DIR}/ceph.conf"

CEPH_POOL="$1"
OSTACK_VOLUME_ID="$2"
OSTACK_SNAPSHOT_NAME="$3"

test -n "${CEPH_POOL}"
test -n "${OSTACK_VOLUME_ID}"
test -n "${OSTACK_SNAPSHOT_NAME}"

RBD_IMAGE="$(rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} ls ${CEPH_POOL} | grep -E "^(volume.)?${OSTACK_VOLUME_ID}(_disk)?$")"

rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} snap create ${CEPH_POOL}/${RBD_IMAGE}@${OSTACK_SNAPSHOT_NAME}
rbd --conf="${CEPH_CONFIG}" --name "${CEPH_USER}" --keyring=${CEPH_KEYRING} snap protect ${CEPH_POOL}/${RBD_IMAGE}@${OSTACK_SNAPSHOT_NAME}