Create the /images directory used by the resize functionality.
XenServer's resize uses /images as a known-path for each hypervisor.
This is a symlink to the storage repository so disks can be moved between
the /images path and the storage repository efficiently.
Change-Id: I13b39dbf5537ad45160c1af4cc10bd867b7f89c1
diff --git a/tools/xen/functions b/tools/xen/functions
index ebfd483..35c17d7 100644
--- a/tools/xen/functions
+++ b/tools/xen/functions
@@ -24,6 +24,16 @@
fi
}
+function create_directory_for_images {
+ if [ -d "/images" ]; then
+ echo "INFO: /images directory already exists, using that" >&2
+ else
+ local LOCALPATH="$(get_local_sr_path)/os-images"
+ mkdir -p $LOCALPATH
+ ln -s $LOCALPATH /images
+ fi
+}
+
function extract_remote_zipball {
local ZIPBALL_URL=$1
diff --git a/tools/xen/install_os_domU.sh b/tools/xen/install_os_domU.sh
index a744869..deaf7e5 100755
--- a/tools/xen/install_os_domU.sh
+++ b/tools/xen/install_os_domU.sh
@@ -63,6 +63,7 @@
fi
create_directory_for_kernels
+create_directory_for_images
#
# Configure Networking
diff --git a/tools/xen/test_functions.sh b/tools/xen/test_functions.sh
index 62393ca..410df5f 100755
--- a/tools/xen/test_functions.sh
+++ b/tools/xen/test_functions.sh
@@ -138,6 +138,29 @@
EOF
}
+function test_create_directory_for_images {
+ (
+ . mocks
+ mock_out get_local_sr uuid1
+ create_directory_for_images
+ )
+
+ assert_directory_exists "/var/run/sr-mount/uuid1/os-images"
+ assert_symlink "/images" "/var/run/sr-mount/uuid1/os-images"
+}
+
+function test_create_directory_for_images_existing_dir {
+ (
+ . mocks
+ given_directory_exists "/images"
+ create_directory_for_images
+ )
+
+ diff -u $LIST_OF_ACTIONS - << EOF
+[ -d /images ]
+EOF
+}
+
function test_extract_remote_zipball {
local RESULT=$(. mocks && extract_remote_zipball "someurl")