Statistics
| Branch: | Tag: | Revision:

root / xseg / tools / helpers.sh @ 7ce25cf6

History | View | Annotate | Download (2.3 kB)

1
#!/bin/bash
2
#
3
# Helper functions for xseg testing and setup
4

    
5
function usage {
6
	echo Usage: "`basename $0` $1"
7
	exit 1
8
}
9

    
10
function pretty_print {
11
	echo "======================="
12
	echo "$1"
13
	echo "======================="
14
}
15

    
16
function fail {
17
	echo "${1}"
18
	exit 1
19
}
20

    
21
function parse_config {
22
	[ -e ~/.xsegrc ] && source ~/.xsegrc
23

    
24
	[ -n "${XSEG_HOME}" ] || XSEG_HOME="/root/archip/xseg/"
25
	[ -n "${MODULES_DIR}" ] || MODULES_DIR="${XSEG_HOME}/sys/"
26
	[ -n "${SPEC}" ] || SPEC="segdev:xsegbd:128:8192:64:1024:12"
27
	[ -n "${REQS}" ] || REQS=128
28
	[ -n "${PORTS}" ] || PORTS=128
29
	[ -n "${FILED_PORT}" ] || FILED_PORT=0
30
	[ -n "${IMAGES}" ] || IMAGES="/srv/archip/images/"
31
	[ -n "${BLOCKD_LOGS}" ] || BLOCKD_LOGS="/root/logs/"
32
	[ -n "${DEVICE_PREFIX}" ] || DEVICE_PREFIX="/dev/xsegbd"
33
	[ -n "${XSEGBD_SYSFS}" ] || XSEGBD_SYSFS="/sys/bus/xsegbd"
34
	[ -n "${CHRDEV_NAME}" ] || CHRDEV_NAME="/dev/segdev"
35
	[ -n "${CHRDEV_MAJOR}" ] || CHRDEV_MAJOR=60
36
	[ -n "${NR_OPS}" ] || NR_OPS=16
37
}
38

    
39
function unload_module {
40
	rmmod "$1"
41
}
42

    
43
function unload_all {
44
	unload_module "xsegbd"
45
	rm "${CHRDEV_NAME}"
46
	unload_module "xseg_segdev"
47
	unload_module "segdev"
48
	unload_module "xseg"
49
}
50

    
51
function load_module {
52
	(lsmod | grep "$1" > /dev/null) || insmod "${MODULES_DIR}$1.ko" "$2" || exit 1
53
}
54

    
55
function mk_chardev {
56
	ls "${CHRDEV_NAME}" &> /dev/null || \
57
	mknod "${CHRDEV_NAME}" c "${CHRDEV_MAJOR}" 0 || exit 1
58
}
59

    
60
function load_all {
61
	load_module "xseg"
62
	load_module "segdev"
63
	load_module "xseg_segdev"
64
	mk_chardev
65
        "${XSEG_HOME}/peers/user/xseg" "${SPEC}" create
66
	load_module "xsegbd" "spec=$SPEC"
67
}
68

    
69
# spawn_blcokd - Spawn a block instance
70
#
71
# @param $1		target/volume name
72
# @param $2		xseg port
73
function spawn_blockd {
74
	"${XSEG_HOME}peers/user/blockd" "$1" -p "$2" -g "$SPEC" -n ${NR_OPS} &> "${BLOCKD_LOGS}/$1" || fail "blockd"
75
}
76

    
77
function spawn_filed {
78
	"${XSEG_HOME}peers/user/filed" "$1" -p "$2" -g "${SPEC}" -n ${NR_OPS} &> "${BLOCKD_LOGS}/filed-${HOSTNAME}" &
79
}
80

    
81
# map_volume - Map a volume to an xsegbd device
82
#
83
# @param $1		target/volume name
84
# @param $2		src port
85
# @param $3		dst port
86
function map_volume {
87
	echo "$1 $2:$3:${REQS}" > "${XSEGBD_SYSFS}add" || exit 1
88
}
89

    
90
# unmap_device - Unmap an xsegbd device/volume
91
#
92
# @param $1		xsegbd device id
93
function unmap_device {
94
	echo "$1" > "${XSEGBD_SYSFS}remove" || exit 1
95
}