-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlc-update2updatefromnfs
executable file
·92 lines (76 loc) · 3.42 KB
/
lc-update2updatefromnfs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
# ###########################################################################
# Copyright (c) 2011, Dell Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Dell Inc. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL DELL INC. BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# ###########################################################################
# Authors: Chris A. Poblete
# Version: 1.0.0
# ###########################################################################
MYNAME=`basename $0`
MYPATH=${0%/*}
# source function library
. wsl-functions
export IPINTERACTIVE=0
export WSAUTOMATED=2
UPDATELISTFILE="updatelist"
JOBSLISTFILE="updatejobs"
usage() {
cat <<EOF
USAGE: ${MYNAME} NFSIPAddress NFSSharename ShareDirectory [LIST_INFILE [JOBS_OUTFILE]]
An example share name "publicnfs" where DUP files are in "R610File" directory:
$ ${MYNAME} 172.30.252.15 publicnfs R610Files
If share directory is root of sharename, specify dot character:
$ ${MYNAME} 172.30.252.15 publicnfs .
EOF
exit 1
}
[ $# -lt 3 ] && usage
echo $1 | grep -e "^-" -e "^help$" >/dev/null && usage
NFSIP=$1; shift
NFSSHARE=$1; shift
DUPDIR=$1; shift
[ ! -z "$1" ] && UPDATELISTFILE=$1 && shift
[ ! -z "$1" ] && JOBSLISTFILE=$1 && shift
UPDATELISTFILE="${WSENDPOINT}-${UPDATELISTFILE}"
JOBSLISTFILE="${WSENDPOINT}-${JOBSLISTFILE}"
[ ! -f ${UPDATELISTFILE} ] && "ERROR: can't find ${UPDATELISTFILE} file." && exit 1
cat /dev/null >${JOBSLISTFILE}
echo "${DUPDIR}" | grep -v '/$' >/dev/null 2>&1 && DUPDIR=$( echo "${DUPDIR}" | sed 's/$/\\\//' )
while read -e item ; do
echo ${item} | grep "^#" >/dev/null && continue
item2=$(echo ${item} | sed 's/"//g')
instanceid=$(echo ${item2} | cut -d'=' -f1)
dupfile=$(echo ${item2} | cut -d'=' -f2)
[ -z "${dupfile}" ] && continue
echo "Processing ${instanceid}... "
lcconfig update firmware nfs ${instanceid} ${NFSIP} ${DUPDIR}${dupfile} ${NFSSHARE}
[ ! -s ${RETURNFILE} ] && echo -e "\nWARNING: empty response file\n" && continue
cat ${RETURNFILE} | grep "Selector" | grep "InstanceID" | cut -d'>' -f2 | cut -d'<' -f1 >>${JOBSLISTFILE}
done < ${UPDATELISTFILE}
echo "jobs saved to ${JOBSLISTFILE}"
exit 0