1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

feature #1678: Datastores report LN and CLONE target as SYSTEM, SELF or NONE

This commit is contained in:
Ruben S. Montero 2013-10-20 17:19:18 +02:00
parent d5277652ce
commit 7a02a4cf96
7 changed files with 39 additions and 3 deletions

View File

@ -79,6 +79,8 @@ EOF
MONITOR_DATA=$(ssh_monitor_and_log $HOST "$MONITOR_SCRIPT" 2>&1)
MONITOR_STATUS=$?
MONITOR_DATA="$MONITOR_DATA LN_TARGET=NONE CLONE_TARGET=SELF"
if [ "$MONITOR_STATUS" = "0" ]; then
echo "$MONITOR_DATA" | tr ' ' '\n'
else

View File

@ -19,3 +19,5 @@
echo "USED_MB=9720"
echo "TOTAL_MB=20480"
echo "FREE_MB=20480"
echo "LN_TARGET=NONE"
echo "CLONE_TARTGET=SYSTEM"

View File

@ -40,13 +40,32 @@ ID=$2
XPATH="${DRIVER_PATH}/../xpath.rb -b $DRV_ACTION"
unset i XPATH_ELEMENTS
unset i j XPATH_ELEMENTS
while IFS= read -r -d '' element; do
XPATH_ELEMENTS[i++]="$element"
done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH)
done < <($XPATH /DS_DRIVER_ACTION_DATA/DATASTORE/TM_MAD \
/DS_DRIVER_ACTION_DATA/DATASTORE/BASE_PATH)
BASE_PATH="${XPATH_ELEMENTS[0]}"
TM_MAD="${XPATH_ELEMENTS[j++]}"
BASE_PATH="${XPATH_ELEMENTS[j++]}"
case $TM_MAD in
"ssh")
LN_TARGET="SYSTEM"
CLONE_TARGET="SYSTEM"
;;
"lvm_shared")
LN_TARGET="SYSTEM"
CLONE_TARGET="SYSTEM"
;;
*) #shared, qcow2
LN_TARGET="NONE"
CLONE_TARGET="SYSTEM"
;;
esac
# ------------ Compute datastore usage -------------
@ -62,6 +81,8 @@ MONITOR_DATA=$(cat <<EOF
USED_MB=$USED_MB
TOTAL_MB=$TOTAL_MB
FREE_MB=$FREE_MB
LN_TARGET=$LN_TARGET
CLONE_TARGET=$CLONE_TARGET
EOF
)

View File

@ -78,6 +78,8 @@ EOF
MONITOR_DATA=$(ssh_monitor_and_log $HOST "$MONITOR_SCRIPT" 2>&1)
MONITOR_STATUS=$?
MONITOR_DATA="$MONITOR_DATA LN_TARGET=NONE CLONE_TARGET=SELF"
if [ "$MONITOR_STATUS" = "0" ]; then
echo "$MONITOR_DATA" | tr ' ' '\n'
else

View File

@ -77,6 +77,8 @@ EOF
MONITOR_DATA=$(ssh_monitor_and_log $HOST "$MONITOR_SCRIPT" 2>&1)
MONITOR_STATUS=$?
MONITOR_DATA="$MONITOR_DATA LN_TARGET=NONE CLONE_TARGET=SELF"
if [ "$MONITOR_STATUS" = "0" ]; then
echo "$MONITOR_DATA" | tr ' ' '\n'
else

View File

@ -78,6 +78,8 @@ EOF
MONITOR_DATA=$(ssh_monitor_and_log $HOST "$MONITOR_SCRIPT" 2>&1)
MONITOR_STATUS=$?
MONITOR_DATA="$MONITOR_DATA LN_TARGET=NONE CLONE_TARGET=SYSTEM"
if [ "$MONITOR_STATUS" = "0" ]; then
echo "$MONITOR_DATA" | tr ' ' '\n'
else

View File

@ -663,12 +663,17 @@ void ImageManagerDriver::process_poll(Datastore* ds, const string &monitor_str)
}
long long total, free, used;
string ln_tgt, cl_tgt;
monitor_data.get("TOTAL_MB", total);
monitor_data.get("FREE_MB", free);
monitor_data.get("USED_MB", used);
monitor_data.get("LN_TARGET", ln_tgt);
monitor_data.get("CLONE_TARGET", cl_tgt);
ds->update_monitor(total, free, used);
ds->replace_template_attribute("LN_TARGET", ln_tgt);
ds->replace_template_attribute("CLONE_TARGET", cl_tgt);
dspool->update(ds);