blob: a7d779841fccddd64dd7da98c45db56eb996ea75 [file] [log] [blame]
Mate Lakat57e3da92013-03-22 16:34:05 +00001#!/bin/bash
2
3function xapi_plugin_location {
Mate Lakatfe586b12013-03-28 15:02:27 +00004 for PLUGIN_DIR in "/etc/xapi.d/plugins/" "/usr/lib/xcp/plugins/"; do
5 if [ -d $PLUGIN_DIR ]; then
Mate Lakat57e3da92013-03-22 16:34:05 +00006 echo $PLUGIN_DIR
7 return 0
8 fi
9 done
10 return 1
11}
12
13function zip_snapshot_location {
14 echo $1 | sed "s:\.git$::;s:$:/zipball/$2:g"
15}
16
17function create_directory_for_kernels {
Mate Lakatfe586b12013-03-28 15:02:27 +000018 if [ -d "/boot/guest" ]; then
19 echo "INFO: /boot/guest directory already exists, using that" >&2
20 else
21 local LOCALPATH="$(get_local_sr_path)/os-guest-kernels"
22 mkdir -p $LOCALPATH
23 ln -s $LOCALPATH /boot/guest
24 fi
Mate Lakat57e3da92013-03-22 16:34:05 +000025}
26
27function extract_remote_zipball {
28 local ZIPBALL_URL=$1
29
30 local LOCAL_ZIPBALL=$(mktemp)
31 local EXTRACTED_FILES=$(mktemp -d)
32
33 (
34 wget -nv $ZIPBALL_URL -O $LOCAL_ZIPBALL --no-check-certificate
35 unzip -q -o $LOCAL_ZIPBALL -d $EXTRACTED_FILES
36 rm -f $LOCAL_ZIPBALL
37 ) >&2
38
39 echo "$EXTRACTED_FILES"
40}
41
42function find_xapi_plugins_dir {
43 find $1 -path '*/xapi.d/plugins' -type d -print
44}
45
46function install_xapi_plugins_from_zipball {
47 local XAPI_PLUGIN_DIR
48 local EXTRACTED_FILES
49 local EXTRACTED_PLUGINS_DIR
50
51 XAPI_PLUGIN_DIR=$(xapi_plugin_location)
52
53 EXTRACTED_FILES=$(extract_remote_zipball $1)
54 EXTRACTED_PLUGINS_DIR=$(find_xapi_plugins_dir $EXTRACTED_FILES)
55
56 cp -pr $EXTRACTED_PLUGINS_DIR/* $XAPI_PLUGIN_DIR
57 rm -rf $EXTRACTED_FILES
58 chmod a+x ${XAPI_PLUGIN_DIR}*
59}
Mate Lakatfe586b12013-03-28 15:02:27 +000060
61function get_local_sr {
62 xe sr-list name-label="Local storage" --minimal
63}
64
65function get_local_sr_path {
66 echo "/var/run/sr-mount/$(get_local_sr)"
67}