-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathexecute_cbt.sh
38 lines (30 loc) · 1.26 KB
/
execute_cbt.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
set -eux
#This script runs the end-to-end cbt scripts
#example: ./execute_cbt.sh <host address> <username> <password> <vdi uuid>
HOST=$1
USERNAME=$2
PASSWORD=$3
VDI=$4
VM=$5
BASE_VDI_PATH="./testvdi.vhd"
BITMAP_PATH="./bitmap"
CHANGED_BLOCK_PATH="./testblocks.vhd"
COMBINED_VDI_PATH="./testcombined"
METADATA_PATH="./metadata"
CONNECTION="-ip $HOST -u $USERNAME -p $PASSWORD"
echo "Enabling CBT and exporting snapshot"
BASE_SNAPSHOT_UUID=$(python cbt_enable_and_snapshot.py $CONNECTION -v $VDI -o $BASE_VDI_PATH)
echo $BASE_SNAPSHOT_UUID
echo "Exporting VM metadata"
python cbt_vm_metadata_export.py $CONNECTION -v $VM -o $METADATA_PATH
echo "Taking new snapshot and exporting changed blocks"
OUTPUT=$(python cbt_export_changes.py $CONNECTION -v $VDI -s $BASE_SNAPSHOT_UUID -co $CHANGED_BLOCK_PATH -bo $BITMAP_PATH)
echo ${OUTPUT##* }
echo "Writing changed blocks to base VDI"
python cbt_write_changed_blocks_to_base_VDI.py -v $BASE_VDI_PATH -b $BITMAP_PATH -c $CHANGED_BLOCK_PATH -o $COMBINED_VDI_PATH
echo "Importing new VDI back to host"
NEW_VDI=$(python cbt_import_whole_vdi.py $CONNECTION -v $VDI -f $COMBINED_VDI_PATH --as-new-vdi)
echo $NEW_VDI
echo "Importing metadata to host"
python cbt_vm_metadata_import.py $CONNECTION -v $VM -i $METADATA_PATH $VDI $NEW_VDI