~ubuntu-branches/debian/sid/opennebula/sid

« back to all changes in this revision

Viewing changes to src/tm_mad/iscsi/mv

  • Committer: Package Import Robot
  • Author(s): Damien Raude-Morvan
  • Date: 2012-05-11 19:27:43 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120511192743-lnz8gog5uxzmx2f3
Tags: 3.4.1-1
* New upstream release:
  - d/patches/default_conf.diff: Drop, transfert manager is now handled
    on a datasatore basis.
  - d/patches/genisoimage.diff: Merged upstream.
  - d/patches/oneacct-system-wide-installation.patch: Merged upstream.
  - Refresh others patches.
  - Update *.install files.
* Improve OCCI Self-Service UI integration:
  - Install into /usr/share/opennebula/occi/.
  - occi_system_jquery.diff: Use system wide jquery/jqueryui.
  - Add Recommends: libjs-jquery, libjs-jquery-ui for opennebula package.
* Add Suggests: ruby-uuidtools for econe-server.
* Install more manpages from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
 
 
3
# -------------------------------------------------------------------------- #
 
4
# Copyright 2002-2012, OpenNebula Project Leads (OpenNebula.org)             #
 
5
#                                                                            #
 
6
# Licensed under the Apache License, Version 2.0 (the "License"); you may    #
 
7
# not use this file except in compliance with the License. You may obtain    #
 
8
# a copy of the License at                                                   #
 
9
#                                                                            #
 
10
# http://www.apache.org/licenses/LICENSE-2.0                                 #
 
11
#                                                                            #
 
12
# Unless required by applicable law or agreed to in writing, software        #
 
13
# distributed under the License is distributed on an "AS IS" BASIS,          #
 
14
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
 
15
# See the License for the specific language governing permissions and        #
 
16
# limitations under the License.                                             #
 
17
#--------------------------------------------------------------------------- #
 
18
 
 
19
# MV <hostA:system_ds/disk.i|hostB:system_ds/disk.i>
 
20
#    <hostA:system_ds/|hostB:system_ds/>
 
21
#   - hostX is the target host to deploy the VM
 
22
#   - system_ds is the path for the system datastore in the host
 
23
 
 
24
SRC=$1
 
25
DST=$2
 
26
 
 
27
if [ -z "${ONE_LOCATION}" ]; then
 
28
    TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh
 
29
else
 
30
    TMCOMMON=$ONE_LOCATION/var/remotes/tm/tm_common.sh
 
31
fi
 
32
 
 
33
. $TMCOMMON
 
34
 
 
35
DRIVER_PATH=$(dirname $0)
 
36
 
 
37
source ${DRIVER_PATH}/../../datastore/iscsi/iscsi.conf
 
38
 
 
39
#-------------------------------------------------------------------------------
 
40
# Return if moving a disk, we will move them when moving the whole system_ds
 
41
# directory for the VM
 
42
#-------------------------------------------------------------------------------
 
43
SRC_PATH=`arg_path $SRC`
 
44
DST_PATH=`arg_path $DST`
 
45
 
 
46
SRC_HOST=`arg_host $SRC`
 
47
DST_HOST=`arg_host $DST`
 
48
 
 
49
DST_DIR=`dirname $DST_PATH`
 
50
 
 
51
if [ `is_disk $SRC_PATH` -eq 0 ]; then
 
52
    ssh_make_path $DST_HOST $DST_DIR
 
53
 
 
54
    log "Moving $SRC to $DST"
 
55
 
 
56
    exec_and_log "$SCP -r $SRC $DST" "Could not copy $SRC to $DST"
 
57
 
 
58
    ssh_exec_and_log "$SRC_HOST" "rm -rf $SRC_PATH" \
 
59
        "Could not remove $SRC_HOST:$SRC_PATH"
 
60
 
 
61
        exit 0
 
62
fi
 
63
 
 
64
if [ "$SRC" == "$DST" ]; then
 
65
    log "Not moving $SRC to $DST, they are the same path"
 
66
        exit 0
 
67
fi
 
68
 
 
69
if is_iscsi "$SRC_HOST"; then
 
70
   log "Logging out of $IQN in $SRC_HOST"
 
71
 
 
72
    LOGOUT_CMD=$(cat <<EOF
 
73
        set -e
 
74
        IQN=\$(readlink $SRC_PATH |grep -o 'iqn.*$')
 
75
        IQN=\${IQN%-lun-1}
 
76
        $SUDO $(iscsiadm_logout "\$IQN")
 
77
EOF
 
78
)
 
79
    ssh_exec_and_log "$SRC_HOST" "$LOGOUT_CMD" \
 
80
        "Error logging out $SRC_HOST:$SRC_PATH (IQN)"
 
81
fi
 
82
 
 
83
if is_iscsi "$DST_HOST"; then
 
84
    log "Logging in to IQN in $SRC_HOST"
 
85
 
 
86
    log "Getting IQN from $SRC_HOST:$SRC_PATH"
 
87
 
 
88
    IQN=$($SSH "$SRC_HOST" "readlink $SRC_PATH |grep -o 'iqn.*$'" )
 
89
    IQN=${IQN%-lun-1}
 
90
 
 
91
    if [ -z "$IQN" ]; then
 
92
        log_error "Error getting IQN"
 
93
        exit 1
 
94
    fi
 
95
 
 
96
    TARGET_HOST=$(iqn_get_host "$IQN")
 
97
 
 
98
    LOGIN_CMD=$(cat <<EOF
 
99
        set -e
 
100
        mkdir -p $DST_DIR
 
101
        $SUDO $(iscsiadm_discovery "$TARGET_HOST")
 
102
        $SUDO $(iscsiadm_login "$IQN" "$TARGET_HOST")
 
103
        sleep 1
 
104
        DISK_BY_PATH=\$(ls /dev/disk/by-path/*$IQN-lun-1)
 
105
        ln -sf "\$DISK_BY_PATH" "$DST_PATH"
 
106
EOF
 
107
)
 
108
 
 
109
    ssh_exec_and_log "$DST_HOST" "$LOGIN_CMD" \
 
110
        "Error logging in $IQN"
 
111
fi
 
112
 
 
113
 
 
114
exit 0