From 977fe907b2e04a7280a859639dda235bbf76a0a4 Mon Sep 17 00:00:00 2001 From: Stefan Kooman Date: Thu, 29 Jun 2017 11:10:39 +0200 Subject: [PATCH] Add support for CEPH_KEY datastore attribute to be able to authenticate to a Ceph cluster. See https://dev.opennebula.org/issues/5208 --- src/datastore_mad/remotes/ceph/clone | 6 ++++++ src/datastore_mad/remotes/ceph/cp | 6 ++++++ src/datastore_mad/remotes/ceph/export | 9 +++++++++ src/datastore_mad/remotes/ceph/mkfs | 6 ++++++ src/datastore_mad/remotes/ceph/monitor | 6 ++++++ src/datastore_mad/remotes/ceph/rm | 6 ++++++ src/datastore_mad/remotes/ceph/snap_delete | 6 ++++++ src/datastore_mad/remotes/ceph/snap_flatten | 6 ++++++ src/datastore_mad/remotes/ceph/snap_revert | 6 ++++++ src/oca/java/test/oned.conf | 1 + src/tm_mad/ceph/clone | 6 ++++++ src/tm_mad/ceph/cpds | 6 ++++++ src/tm_mad/ceph/delete | 6 ++++++ src/tm_mad/ceph/ln | 6 ++++++ src/tm_mad/ceph/mkimage | 6 ++++++ src/tm_mad/ceph/monitor | 6 ++++++ src/tm_mad/ceph/resize | 6 ++++++ src/tm_mad/ceph/snap_create | 6 ++++++ src/tm_mad/ceph/snap_create_live | 6 ++++++ src/tm_mad/ceph/snap_delete | 6 ++++++ src/tm_mad/ceph/snap_revert | 2 ++ 21 files changed, 120 insertions(+) diff --git a/src/datastore_mad/remotes/ceph/clone b/src/datastore_mad/remotes/ceph/clone index 95479d6c98..b0874612c0 100755 --- a/src/datastore_mad/remotes/ceph/clone +++ b/src/datastore_mad/remotes/ceph/clone @@ -51,6 +51,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/SIZE \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -62,6 +63,7 @@ RBD_FORMAT="${XPATH_ELEMENTS[i++]:-$RBD_FORMAT}" SRC="${XPATH_ELEMENTS[i++]}" SIZE="${XPATH_ELEMENTS[i++]}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -75,6 +77,10 @@ if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi diff --git a/src/datastore_mad/remotes/ceph/cp b/src/datastore_mad/remotes/ceph/cp index a4c38395c6..b7615f4eae 100755 --- a/src/datastore_mad/remotes/ceph/cp +++ b/src/datastore_mad/remotes/ceph/cp @@ -64,6 +64,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/NO_DECOMPRESS \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/LIMIT_TRANSFER_BW \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -82,6 +83,7 @@ SHA1="${XPATH_ELEMENTS[i++]}" NO_DECOMPRESS="${XPATH_ELEMENTS[i++]}" LIMIT_TRANSFER_BW="${XPATH_ELEMENTS[i++]}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -95,6 +97,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/datastore_mad/remotes/ceph/export b/src/datastore_mad/remotes/ceph/export index 0639115f68..51b969fef5 100755 --- a/src/datastore_mad/remotes/ceph/export +++ b/src/datastore_mad/remotes/ceph/export @@ -53,6 +53,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/POOL_NAME \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -65,6 +66,7 @@ FORMAT="${XPATH_ELEMENTS[i++]:-raw}" BRIDGE_LIST="${XPATH_ELEMENTS[i++]}" POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -81,11 +83,18 @@ if [ -n "$CEPH_USER" ]; then IMPORT_SOURCE="${IMPORT_SOURCE}?CEPH_USER=${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_USER}" + IMPORT_SOURCE="${IMPORT_SOURCE}?CEPH_USER=${CEPH_USER}?CEPH_KEY=${CEPH_KEY}?" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" if [ -n "$CEPH_USER" ]; then IMPORT_SOURCE="${IMPORT_SOURCE}&" + elif [ -n "$CEPH_KEY" ]; then + IMPORT_SOURCE="${IMPORT_SOURCE}&" else IMPORT_SOURCE="${IMPORT_SOURCE}?" fi diff --git a/src/datastore_mad/remotes/ceph/mkfs b/src/datastore_mad/remotes/ceph/mkfs index 5fe7897593..37cd732b7d 100755 --- a/src/datastore_mad/remotes/ceph/mkfs +++ b/src/datastore_mad/remotes/ceph/mkfs @@ -56,6 +56,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH \ /DS_DRIVER_ACTION_DATA/IMAGE/FSTYPE \ /DS_DRIVER_ACTION_DATA/IMAGE/SIZE \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -70,6 +71,7 @@ RBD_FORMAT="${XPATH_ELEMENTS[i++]:-$RBD_FORMAT}" FSTYPE="${XPATH_ELEMENTS[i++]}" SIZE="${XPATH_ELEMENTS[i++]}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -83,6 +85,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/datastore_mad/remotes/ceph/monitor b/src/datastore_mad/remotes/ceph/monitor index 5665c00705..9bba67f6fc 100755 --- a/src/datastore_mad/remotes/ceph/monitor +++ b/src/datastore_mad/remotes/ceph/monitor @@ -49,11 +49,13 @@ while IFS= read -r -d '' element; do done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/POOL_NAME \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" POOL_NAME="${XPATH_ELEMENTS[j++]:-$POOL_NAME}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" HOST=`get_destination_host` @@ -67,6 +69,10 @@ if [ -n "$CEPH_USER" ]; then CEPH="$CEPH --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then CEPH="$CEPH --conf ${CEPH_CONF}" RADOS="$RADOS --conf ${CEPH_CONF}" diff --git a/src/datastore_mad/remotes/ceph/rm b/src/datastore_mad/remotes/ceph/rm index 391712f2d4..5f364de773 100755 --- a/src/datastore_mad/remotes/ceph/rm +++ b/src/datastore_mad/remotes/ceph/rm @@ -49,11 +49,13 @@ while IFS= read -r -d '' element; do done < <($XPATH /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) RBD_SRC="${XPATH_ELEMENTS[j++]}" BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" DST_HOST=`get_destination_host $ID` @@ -67,6 +69,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/datastore_mad/remotes/ceph/snap_delete b/src/datastore_mad/remotes/ceph/snap_delete index 2427d7bfc5..b29995ce13 100755 --- a/src/datastore_mad/remotes/ceph/snap_delete +++ b/src/datastore_mad/remotes/ceph/snap_delete @@ -52,6 +52,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/IMAGE/TARGET_SNAPSHOT \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -61,6 +62,7 @@ POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" RBD_SRC="${XPATH_ELEMENTS[i++]}" SNAP_ID="${XPATH_ELEMENTS[i++]}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -74,6 +76,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/datastore_mad/remotes/ceph/snap_flatten b/src/datastore_mad/remotes/ceph/snap_flatten index 3befc0e59c..a0d0e6c12b 100755 --- a/src/datastore_mad/remotes/ceph/snap_flatten +++ b/src/datastore_mad/remotes/ceph/snap_flatten @@ -52,6 +52,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/IMAGE/TARGET_SNAPSHOT \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -61,6 +62,7 @@ POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" RBD_SRC="${XPATH_ELEMENTS[i++]}" SNAP_ID="${XPATH_ELEMENTS[i++]}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -74,6 +76,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/datastore_mad/remotes/ceph/snap_revert b/src/datastore_mad/remotes/ceph/snap_revert index f0eef03176..204115a3d6 100755 --- a/src/datastore_mad/remotes/ceph/snap_revert +++ b/src/datastore_mad/remotes/ceph/snap_revert @@ -52,6 +52,7 @@ done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/IMAGE/SOURCE \ /DS_DRIVER_ACTION_DATA/IMAGE/TARGET_SNAPSHOT \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) unset i @@ -61,6 +62,7 @@ POOL_NAME="${XPATH_ELEMENTS[i++]:-$POOL_NAME}" RBD_SRC="${XPATH_ELEMENTS[i++]}" SNAP_ID="${XPATH_ELEMENTS[i++]}" CEPH_USER="${XPATH_ELEMENTS[i++]}" +CEPH_KEY="${XPATH_ELEMENTS[i++]}" CEPH_CONF="${XPATH_ELEMENTS[i++]}" DST_HOST=`get_destination_host $ID` @@ -74,6 +76,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/oca/java/test/oned.conf b/src/oca/java/test/oned.conf index c8f6851e63..95f732c096 100644 --- a/src/oca/java/test/oned.conf +++ b/src/oca/java/test/oned.conf @@ -817,6 +817,7 @@ VNET_RESTRICTED_ATTR = "AR/BRIDGE" INHERIT_DATASTORE_ATTR = "CEPH_HOST" INHERIT_DATASTORE_ATTR = "CEPH_SECRET" INHERIT_DATASTORE_ATTR = "CEPH_USER" +INHERIT_DATASTORE_ATTR = "CEPH_KEY" INHERIT_DATASTORE_ATTR = "CEPH_CONF" INHERIT_DATASTORE_ATTR = "POOL_NAME" diff --git a/src/tm_mad/ceph/clone b/src/tm_mad/ceph/clone index 47b4d8bd74..fd1507da0f 100755 --- a/src/tm_mad/ceph/clone +++ b/src/tm_mad/ceph/clone @@ -67,11 +67,13 @@ 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]/CEPH_USER \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SIZE \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/ORIGINAL_SIZE) CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" SIZE="${XPATH_ELEMENTS[j++]}" ORIGINAL_SIZE="${XPATH_ELEMENTS[j++]}" @@ -84,6 +86,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/cpds b/src/tm_mad/ceph/cpds index d0ec85632e..8c93696be7 100755 --- a/src/tm_mad/ceph/cpds +++ b/src/tm_mad/ceph/cpds @@ -69,11 +69,13 @@ 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 \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF) RBD_SRC="${XPATH_ELEMENTS[j++]}" CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" #------------------------------------------------------------------------------- @@ -90,6 +92,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/delete b/src/tm_mad/ceph/delete index 5214ef274c..1189dcac0b 100755 --- a/src/tm_mad/ceph/delete +++ b/src/tm_mad/ceph/delete @@ -66,12 +66,14 @@ if [ `is_disk $DST_PATH` -eq 0 ]; then /DATASTORE/TEMPLATE/SOURCE \ /DATASTORE/TEMPLATE/CLONE \ /DATASTORE/TEMPLATE/CEPH_USER \ + /DATASTORE/TEMPLATE/CEPH_KEY \ /DATASTORE/TEMPLATE/CEPH_CONF \ /DATASTORE/TEMPLATE/POOL_NAME) SRC="${XPATH_ELEMENTS[j++]}" CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" + CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" POOL_NAME="${XPATH_ELEMENTS[j++]:-$POOL_NAME}" @@ -79,6 +81,10 @@ if [ `is_disk $DST_PATH` -eq 0 ]; then RBD="$RBD --id ${CEPH_USER}" fi + if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" + fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/ln b/src/tm_mad/ceph/ln index df8029d8b9..669eaeab1a 100755 --- a/src/tm_mad/ceph/ln +++ b/src/tm_mad/ceph/ln @@ -65,9 +65,11 @@ 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]/CEPH_USER \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF) CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" #------------------------------------------------------------------------------- @@ -78,6 +80,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/mkimage b/src/tm_mad/ceph/mkimage index f01bb71711..e2c069d973 100755 --- a/src/tm_mad/ceph/mkimage +++ b/src/tm_mad/ceph/mkimage @@ -72,11 +72,13 @@ while IFS= read -r -d '' element; do XPATH_ELEMENTS[i++]="$element" done < <(onevm show -x $VMID | $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_USER \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/POOL_NAME \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/RBD_FORMAT) CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" POOL_NAME="${XPATH_ELEMENTS[j++]:-$POOL_NAME}" RBD_FORMAT="${XPATH_ELEMENTS[j++]:-$RBD_FORMAT}" @@ -85,6 +87,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/monitor b/src/tm_mad/ceph/monitor index 505572cfff..e151b26529 100755 --- a/src/tm_mad/ceph/monitor +++ b/src/tm_mad/ceph/monitor @@ -49,11 +49,13 @@ while IFS= read -r -d '' element; do done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/BRIDGE_LIST \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/POOL_NAME \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_USER \ + /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_KEY \ /DS_DRIVER_ACTION_DATA/DATASTORE/TEMPLATE/CEPH_CONF) BRIDGE_LIST="${XPATH_ELEMENTS[j++]}" POOL_NAME="${XPATH_ELEMENTS[j++]:-$POOL_NAME}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" HOST=`get_destination_host` @@ -67,6 +69,10 @@ if [ -n "$CEPH_USER" ]; then CEPH="$CEPH --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then CEPH="$CEPH --conf ${CEPH_CONF}" RADOS="$RADOS --conf ${CEPH_CONF}" diff --git a/src/tm_mad/ceph/resize b/src/tm_mad/ceph/resize index 03bd8c185c..572b7ea544 100755 --- a/src/tm_mad/ceph/resize +++ b/src/tm_mad/ceph/resize @@ -61,11 +61,13 @@ while IFS= read -r -d '' element; do done < <(onevm show -x $VM_ID| $XPATH \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/SOURCE \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_USER \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/PERSISTENT) RBD_SRC="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" PERSISTENT="${XPATH_ELEMENTS[j++]}" @@ -83,6 +85,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/snap_create b/src/tm_mad/ceph/snap_create index f603e1b817..e4f09e4f0c 100755 --- a/src/tm_mad/ceph/snap_create +++ b/src/tm_mad/ceph/snap_create @@ -63,11 +63,13 @@ 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 \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF) RBD_SRC="${XPATH_ELEMENTS[j++]}" CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" if [ "$CLONE" = "NO" ]; then @@ -84,6 +86,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/snap_create_live b/src/tm_mad/ceph/snap_create_live index aceae44a5c..ec645b610e 100755 --- a/src/tm_mad/ceph/snap_create_live +++ b/src/tm_mad/ceph/snap_create_live @@ -65,12 +65,14 @@ 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 \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF) DEPLOY_ID="${XPATH_ELEMENTS[j++]}" RBD_SRC="${XPATH_ELEMENTS[j++]}" CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" if [ "$CLONE" = "NO" ]; then @@ -87,6 +89,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/snap_delete b/src/tm_mad/ceph/snap_delete index 63c3c86665..7b7e0c16bf 100755 --- a/src/tm_mad/ceph/snap_delete +++ b/src/tm_mad/ceph/snap_delete @@ -63,11 +63,13 @@ 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 \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF) RBD_SRC="${XPATH_ELEMENTS[j++]}" CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" if [ "$CLONE" = "NO" ]; then @@ -86,6 +88,10 @@ if [ -n "$CEPH_USER" ]; then RBD="$RBD --id ${CEPH_USER}" fi +if [ -n "$CEPH_KEY" ]; then + RBD="$RBD --keyfile ${CEPH_KEY}" +fi + if [ -n "$CEPH_CONF" ]; then RBD="$RBD --conf ${CEPH_CONF}" fi diff --git a/src/tm_mad/ceph/snap_revert b/src/tm_mad/ceph/snap_revert index aa58a156de..f65f7b7cfd 100755 --- a/src/tm_mad/ceph/snap_revert +++ b/src/tm_mad/ceph/snap_revert @@ -63,11 +63,13 @@ 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 \ + /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_KEY \ /VM/TEMPLATE/DISK[DISK_ID=$DISK_ID]/CEPH_CONF) RBD_SRC="${XPATH_ELEMENTS[j++]}" CLONE="${XPATH_ELEMENTS[j++]}" CEPH_USER="${XPATH_ELEMENTS[j++]}" +CEPH_KEY="${XPATH_ELEMENTS[j++]}" CEPH_CONF="${XPATH_ELEMENTS[j++]}" if [ "$CLONE" = "NO" ]; then