labs: move VM export function from osbash.sh into lib
This patch moves export_appliance in osbash.sh to vm_export_ova in virtualbox.functions. Change-Id: I80178fe647f1e76a2790b319a0abacd39428a9e0
This commit is contained in:
parent
e00c0077bd
commit
8e697a119b
@ -380,6 +380,38 @@ function vm_create {
|
|||||||
echo >&2 "Created VM \"$VM_NAME\""
|
echo >&2 "Created VM \"$VM_NAME\""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# VM export
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Export node VMs to OVA package file
|
||||||
|
function vm_export_ova {
|
||||||
|
local ova_file=$1
|
||||||
|
local nodes=$2
|
||||||
|
echo >&2 "Removing shared folders for export"
|
||||||
|
local -a share_paths
|
||||||
|
local node
|
||||||
|
for node in $nodes; do
|
||||||
|
local share_path=$(vm_get_share_path "$node")
|
||||||
|
share_paths+=("$share_path")
|
||||||
|
if [ -n "$share_path" ]; then
|
||||||
|
vm_rm_share "$node" "$SHARE_NAME"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f "$ova_file"
|
||||||
|
mkdir -pv "$IMG_DIR"
|
||||||
|
$VBM export $nodes --output "$ova_file"
|
||||||
|
echo >&2 "Appliance exported"
|
||||||
|
echo >&2 "Reattaching shared folders"
|
||||||
|
local ii=0
|
||||||
|
for node in $nodes; do
|
||||||
|
if [ -n "${share_paths[$ii]}" ]; then
|
||||||
|
vm_add_share "$node" "$SHARE_DIR" "$SHARE_NAME"
|
||||||
|
fi
|
||||||
|
ii=$(($ii + 1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# VM unregister, remove, delete
|
# VM unregister, remove, delete
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
@ -161,32 +161,8 @@ for node in $nodes; do
|
|||||||
vm_build_node "$node"
|
vm_build_node "$node"
|
||||||
done
|
done
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
function export_appliance {
|
if [ -n "${EXPORT_OVA:-}" ]; then
|
||||||
if [ -n "${EXPORT_OVA:-}" ]; then
|
vm_export_ova "$EXPORT_OVA" "$nodes"
|
||||||
echo >&2 "Removing shared folders for export"
|
fi
|
||||||
local -a share_paths
|
|
||||||
local node
|
|
||||||
for node in $nodes; do
|
|
||||||
local share_path=$(vm_get_share_path "$node")
|
|
||||||
share_paths+=("$share_path")
|
|
||||||
if [ -n "$share_path" ]; then
|
|
||||||
vm_rm_share "$node" "$SHARE_NAME"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
rm -f "$EXPORT_OVA"
|
|
||||||
mkdir -pv "$IMG_DIR"
|
|
||||||
$VBM export $nodes --output "$EXPORT_OVA"
|
|
||||||
echo >&2 "Appliance exported"
|
|
||||||
echo >&2 "Reattaching shared folders"
|
|
||||||
local ii=0
|
|
||||||
for node in $nodes; do
|
|
||||||
if [ -n "${share_paths[$ii]}" ]; then
|
|
||||||
vm_add_share "$node" "$SHARE_DIR" "$SHARE_NAME"
|
|
||||||
fi
|
|
||||||
ii=$(($ii + 1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
export_appliance
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
echo >&2 "$(date) osbash finished successfully"
|
echo >&2 "$(date) osbash finished successfully"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user