diff --git a/src/tm_mad/ceph/cpds b/src/tm_mad/ceph/cpds index ba800ec6bd..b4deda72b9 100755 --- a/src/tm_mad/ceph/cpds +++ b/src/tm_mad/ceph/cpds @@ -76,11 +76,14 @@ else RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" fi +if [ -n "$SNAP_ID" ]; then + RBD_DST="${RBD_DST}-${SNAP_ID}@${SNAP_ID}" +fi + if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi - ssh_exec_and_log "$SRC_HOST" "$RBD copy $RBD_DST $DST" \ "Error cloning $RBD_DST to $DST in $SRC_HOST" diff --git a/src/tm_mad/ceph/snap_create b/src/tm_mad/ceph/snap_create index 2ee456d010..8fc9242b7c 100755 --- a/src/tm_mad/ceph/snap_create +++ b/src/tm_mad/ceph/snap_create @@ -55,12 +55,18 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <(onevm show -x $VM_ID| $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SOURCE \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CLONE \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_USER) RBD_SRC="${XPATH_ELEMENTS[j++]}" +CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" -RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" +if [ "$CLONE" = "NO" ]; then + RBD_DST="${RBD_SRC}" +else + RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" +fi #------------------------------------------------------------------------------- # Create snapshots diff --git a/src/tm_mad/ceph/snap_delete b/src/tm_mad/ceph/snap_delete index e27810c8c3..60f4c27f39 100755 --- a/src/tm_mad/ceph/snap_delete +++ b/src/tm_mad/ceph/snap_delete @@ -55,15 +55,21 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <(onevm show -x $VM_ID| $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SOURCE \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CLONE \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_USER) RBD_SRC="${XPATH_ELEMENTS[j++]}" +CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" -RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" +if [ "$CLONE" = "NO" ]; then + RBD_DST="${RBD_SRC}" +else + RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" +fi #------------------------------------------------------------------------------- -# Create snapshots +# Delete snapshots #------------------------------------------------------------------------------- if [ -n "$CEPH_USER" ]; then diff --git a/src/tm_mad/ceph/snap_revert b/src/tm_mad/ceph/snap_revert index 7b72c48c02..63f8366563 100755 --- a/src/tm_mad/ceph/snap_revert +++ b/src/tm_mad/ceph/snap_revert @@ -55,12 +55,18 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <(onevm show -x $VM_ID| $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SOURCE \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CLONE \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_USER) RBD_SRC="${XPATH_ELEMENTS[j++]}" +CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" -RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" +if [ "$CLONE" = "NO" ]; then + RBD_DST="${RBD_SRC}" +else + RBD_DST="${RBD_SRC}-${VM_ID}-${DISK_ID}" +fi #------------------------------------------------------------------------------- # Create snapshots