tm_ssh_cache.patch
install.sh | ||
---|---|---|
168 | 168 |
$ETC_LOCATION/vmm_sh \ |
169 | 169 |
$ETC_LOCATION/tm_nfs \ |
170 | 170 |
$ETC_LOCATION/tm_ssh \ |
171 |
$ETC_LOCATION/tm_ssh_cache \ |
|
171 | 172 |
$ETC_LOCATION/tm_dummy \ |
172 | 173 |
$ETC_LOCATION/tm_lvm \ |
173 | 174 |
$ETC_LOCATION/hm \ |
... | ... | |
184 | 185 |
$LIB_LOCATION/tm_commands \ |
185 | 186 |
$LIB_LOCATION/tm_commands/nfs \ |
186 | 187 |
$LIB_LOCATION/tm_commands/ssh \ |
188 |
$LIB_LOCATION/tm_commands/ssh_cache \ |
|
187 | 189 |
$LIB_LOCATION/tm_commands/dummy \ |
188 | 190 |
$LIB_LOCATION/tm_commands/lvm \ |
189 | 191 |
$LIB_LOCATION/mads \ |
... | ... | |
275 | 277 |
VMM_SSH_GANGLIA_POLL:$LIB_LOCATION/remotes/vmm/xen/poll_local |
276 | 278 |
NFS_TM_COMMANDS_LIB_FILES:$LIB_LOCATION/tm_commands/nfs |
277 | 279 |
SSH_TM_COMMANDS_LIB_FILES:$LIB_LOCATION/tm_commands/ssh |
280 |
SSH_CACHE_TM_COMMANDS_LIB_FILES:$LIB_LOCATION/tm_commands/ssh_cache |
|
278 | 281 |
DUMMY_TM_COMMANDS_LIB_FILES:$LIB_LOCATION/tm_commands/dummy |
279 | 282 |
LVM_TM_COMMANDS_LIB_FILES:$LIB_LOCATION/tm_commands/lvm |
280 | 283 |
EXAMPLE_SHARE_FILES:$SHARE_LOCATION/examples |
... | ... | |
330 | 333 |
IM_EC2_ETC_FILES:$ETC_LOCATION/im_ec2 |
331 | 334 |
TM_NFS_ETC_FILES:$ETC_LOCATION/tm_nfs |
332 | 335 |
TM_SSH_ETC_FILES:$ETC_LOCATION/tm_ssh |
336 |
TM_SSH_CACHE_ETC_FILES:$ETC_LOCATION/tm_ssh_cache |
|
333 | 337 |
TM_DUMMY_ETC_FILES:$ETC_LOCATION/tm_dummy |
334 | 338 |
TM_LVM_ETC_FILES:$ETC_LOCATION/tm_lvm |
335 | 339 |
HM_ETC_FILES:$ETC_LOCATION/hm |
... | ... | |
502 | 506 |
src/tm_mad/ssh/tm_mv.sh \ |
503 | 507 |
src/tm_mad/ssh/tm_context.sh" |
504 | 508 | |
509 |
SSH_CACHE_TM_COMMANDS_LIB_FILES="src/tm_mad/ssh_cache/tm_clone.sh" |
|
510 | ||
505 | 511 |
DUMMY_TM_COMMANDS_LIB_FILES="src/tm_mad/dummy/tm_dummy.sh" |
506 | 512 | |
507 | 513 |
LVM_TM_COMMANDS_LIB_FILES="src/tm_mad/lvm/tm_clone.sh \ |
... | ... | |
547 | 553 |
# Storage drivers config. files, to be installed under $ETC_LOCATION |
548 | 554 |
# - nfs, $ETC_LOCATION/tm_nfs |
549 | 555 |
# - ssh, $ETC_LOCATION/tm_ssh |
556 |
# - ssh_cache, $ETC_LOCATION/tm_ssh_cache |
|
550 | 557 |
# - dummy, $ETC_LOCATION/tm_dummy |
551 | 558 |
# - lvm, $ETC_LOCATION/tm_lvm |
552 | 559 |
#------------------------------------------------------------------------------- |
... | ... | |
557 | 564 |
TM_SSH_ETC_FILES="src/tm_mad/ssh/tm_ssh.conf \ |
558 | 565 |
src/tm_mad/ssh/tm_sshrc" |
559 | 566 | |
567 |
TM_SSH_CACHE_ETC_FILES="src/tm_mad/ssh_cache/tm_ssh_cache.conf \ |
|
568 |
src/tm_mad/ssh_cache/tm_ssh_cacherc" |
|
569 | ||
560 | 570 |
TM_DUMMY_ETC_FILES="src/tm_mad/dummy/tm_dummy.conf \ |
561 | 571 |
src/tm_mad/dummy/tm_dummyrc" |
562 | 572 |
src/tm_mad/ssh_cache/tm_clone.sh | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
# (C) 2011 Krzysztof Pawlik |
|
3 |
# Grupa Onet.pl S.A. |
|
4 | ||
5 |
MY_UNIQUE_ID="${$}-${RANDOM}" |
|
6 |
CACHE_DIRECTORY="/nebula/image-cache" |
|
7 | ||
8 |
SRC="${1}" |
|
9 |
DST="${2}" |
|
10 | ||
11 |
if [ -z "${ONE_LOCATION}" ]; then |
|
12 |
TMCOMMON="/usr/lib/one/mads/tm_common.sh" |
|
13 |
else |
|
14 |
TMCOMMON="${ONE_LOCATION}/lib/mads/tm_common.sh" |
|
15 |
fi |
|
16 | ||
17 |
. "${TMCOMMON}" |
|
18 | ||
19 |
SRC_PATH="$(arg_path "${SRC}")" |
|
20 |
DST_PATH="$(arg_path "${DST}")" |
|
21 | ||
22 |
SRC_HOST="$(arg_host "${SRC}")" # Unused |
|
23 |
DST_HOST="$(arg_host "${DST}")" |
|
24 | ||
25 |
DST_DIR="$(dirname "${DST_PATH}")" |
|
26 | ||
27 |
CACHED_IMAGE="${CACHE_DIRECTORY}/$(basename "${SRC_PATH}")" |
|
28 | ||
29 |
exec_and_log "${SSH} ${DST_HOST} mkdir -p ${CACHE_DIRECTORY}" |
|
30 |
exec_and_log "${SSH} ${DST_HOST} mkdir -p ${DST_DIR}" |
|
31 | ||
32 |
local_size="$(stat --format="%s" "${SRC_PATH}")" |
|
33 |
remote_size="$(${SSH} ${DST_HOST} stat --format="%s" ${CACHED_IMAGE} 2> /dev/null)" |
|
34 |
[[ -n "${remote_size}" ]] || remote_size="0" |
|
35 |
log "ssh_cache: remote_size=${remote_size} local_size=${local_size}" |
|
36 | ||
37 |
if [[ "${remote_size}" -ne "${local_size}" ]]; then |
|
38 |
exec_and_log "${SCP} ${SRC} ${DST_HOST}:${CACHED_IMAGE}-${MY_UNIQUE_ID}" |
|
39 |
exec_and_log "${SSH} ${DST_HOST} chmod 666 ${CACHED_IMAGE}-${MY_UNIQUE_ID}" |
|
40 |
exec_and_log "${SSH} ${DST_HOST} mv -f ${CACHED_IMAGE}-${MY_UNIQUE_ID} ${CACHED_IMAGE}" |
|
41 |
fi |
|
42 | ||
43 |
exec_and_log "${SSH} ${DST_HOST} cp -a ${CACHED_IMAGE} ${DST_PATH}" |
|
44 | ||
45 |
exit 0 |
src/tm_mad/ssh_cache/tm_ssh_cache.conf | ||
---|---|---|
1 |
CLONE = ssh_cache/tm_clone.sh |
|
2 |
LN = ssh/tm_ln.sh |
|
3 |
MKSWAP = ssh/tm_mkswap.sh |
|
4 |
MKIMAGE = ssh/tm_mkimage.sh |
|
5 |
DELETE = ssh/tm_delete.sh |
|
6 |
MV = ssh/tm_mv.sh |
|
7 |
CONTEXT = ssh/tm_context.sh |