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:
parent
d5277652ce
commit
7a02a4cf96
@ -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
|
||||
|
@ -19,3 +19,5 @@
|
||||
echo "USED_MB=9720"
|
||||
echo "TOTAL_MB=20480"
|
||||
echo "FREE_MB=20480"
|
||||
echo "LN_TARGET=NONE"
|
||||
echo "CLONE_TARTGET=SYSTEM"
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user