Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
Warden - archive
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
713
Warden
Warden - archive
Commits
30b67deb
Commit
30b67deb
authored
13 years ago
by
Tomáš Plesník
Browse files
Options
Downloads
Patches
Plain Diff
skript pro update klientskeho balicku + provedena revize kodu
parent
7098ef16
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/warden-client/sh/update.sh
+351
-0
351 additions, 0 deletions
src/warden-client/sh/update.sh
with
351 additions
and
0 deletions
src/warden-client/sh/update.sh
0 → 100755
+
351
−
0
View file @
30b67deb
#!/bin/bash
#
# update.sh
#
# Copyright (C) 2011 Cesnet z.s.p.o
# Author(s): Tomas PLESNIK <plesnik@ics.muni.cz>
# Jan SOUKAL <soukal@ics.muni.cz>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. 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.
# 3. Neither the name of the Cesnet z.s.p.o 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 ``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 the Cesnet z.s.p.o or contributors 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.
VERSION
=
"1.0.0"
#-------------------------------------------------------------------------------
# FUNCTIONS
#-------------------------------------------------------------------------------
usage
()
{
echo
"Usage:
`
basename
$0
`
[-d <directory>] [-hV]"
echo
"-d <directory> installation directory (default: /opt)"
echo
"-h print this help"
echo
"-V print script version number and exit"
echo
echo
"Example: ./
`
basename
$0
`
-d /opt"
echo
echo
"Note: You must be root for running this script."
echo
" For more information about update process, see README file (section Update)."
echo
exit
0
}
version
()
{
echo
"
`
basename
${
0
}
`
- current version is
$VERSION
"
exit
0
}
err
()
{
echo
"FAILED!"
cat
$err
rm
-rf
$err
rm
-rf
$backup_dir
echo
echo
"Update FAILED!!!"
exit
1
}
err_clean
()
{
echo
"FAILED!"
echo
" -> Reverting changes of warden client package ... OK"
rm
-rf
"
$client_path
/*"
>
/dev/null 2>&1
cp
-R
"
$backup_dir
/*"
$client_path
cat
$err
rm
-rf
$err
rm
-rf
$backup_dir
echo
echo
"Update FAILED!!!"
exit
1
}
os_chck
()
{
OS
=
`
uname
`
if
[
"
$OS
"
!=
"Linux"
]
;
then
echo
"Sorry, unsupported operating system detected -
\"
$OS
\"
!"
exit
1
fi
}
shell_chck
()
{
SHELL
=
`
echo
$SHELL
`
if
[
"
$SHELL
"
!=
"/bin/bash"
]
;
then
echo
"Sorry, this script is usable in Bourne Again Shell (bash) only!"
exit
1
fi
}
root_chck
()
{
if
[
$UID
-ne
0
]
;
then
echo
"You must be root for running this script!"
exit
1
fi
}
params_chck
()
{
if
[
-z
$prefix
]
;
then
prefix
=
/opt
echo
"Warning: parameter -d <directory> is not set - default installation directory is
$prefix
!"
fi
}
perl_chck
()
{
echo
-n
"Checking Perl interpreter ... "
which perl 1>/dev/null
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
echo
"FAILED!"
echo
"Error: Perl interpreter is not installed!"
exit
1
fi
}
modules_chck
()
{
for
module
in
${
modules
[@]
}
;
do
echo
-n
"Checking
$module
module ... "
perl
-e
"use
$module
"
2>
$err
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
err
fi
done
}
installation_dir_chck
()
{
echo
-n
"Checking installation directory ... "
if
[
!
-d
$prefix
]
;
then
echo
"FAILED!"
ls
$prefix
exit
1
else
echo
"OK"
fi
}
warden_dir_chck
()
{
echo
-n
"Checking warden client directory ... "
if
[
!
-d
$client_path
]
;
then
echo
"FAILED!"
ls
$prefix
exit
1
else
echo
"OK"
fi
}
backup
()
{
echo
-n
"Backing-up warden client directory ... "
mkdir
$backup_dir
cp
-R
$client_path
$backup_dir
2>
$err
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
err
fi
}
obtain_warden_user
()
{
echo
-n
"Obtaining warden client directory owner ... "
user
=
`
stat
-c
%U
$conf_file
`
2>
$err
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
err
fi
}
update_warden_dir
()
{
echo
-n
"Updating warden client directory ... "
rsync
-q
--recursive
--archive
--delete
--exclude
=
"warden-client/etc"
--exclude
=
"warden-client/var"
warden-client
$prefix
2>
$err
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
err_clean
fi
cp
-u
CHANGELOG INSTALL LICENSE README
"
$client_path
/doc"
}
make_conf_file
()
{
echo
-n
"Creating configuration file ... "
uri
=
`
cat
$conf_file
|
grep
'$URI'
`
ssl_key_file
=
`
cat
$conf_file
|
grep
'$SSL_KEY_FILE'
`
ssl_cert_file
=
`
cat
$conf_file
|
grep
'$SSL_CERT_FILE'
`
ssl_ca_file
=
`
cat
$conf_file
|
grep
'$SSL_CA_FILE'
`
echo
"#
# warden-client.conf - configuration file for the warden sender/receiver client
#
#-------------------------------------------------------------------------------
# URI - URI address of Warden server
#-------------------------------------------------------------------------------
$uri
#-------------------------------------------------------------------------------
# SSL_KEY_FILE - path to client SSL certificate key file
#-------------------------------------------------------------------------------
$ssl_key_file
#-------------------------------------------------------------------------------
# SSL_CERT_FILE - path to client SSL certificate file
#-------------------------------------------------------------------------------
$ssl_cert_file
#-------------------------------------------------------------------------------
# SSL_CA_FILE - path to CA certificate file
#-------------------------------------------------------------------------------
$ssl_ca_file
"
>
$conf_file
2>
$err
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
err_clean
fi
}
change_permissions
()
{
echo
-n
"Changing permissions to updated package ... "
chown
-R
$user
:
$client_path
2>
$err
;
ret_val
=
`
echo
$?
`
if
[
$ret_val
-eq
0
]
;
then
echo
"OK"
else
err_clean
fi
}
#-------------------------------------------------------------------------------
# MAIN
#-------------------------------------------------------------------------------
# list of used Perl modules
modules
=(
SOAP::Lite IO::Socket::SSL SOAP::Transport::TCP FindBin
)
# OS test
os_chck
# Shell test
shell_chck
# read input
while
getopts
"d:Vh"
options
;
do
case
$options
in
d
)
prefix
=
$OPTARG
;;
h
)
usage
;;
V
)
version
;;
*
)
usage
;;
esac
done
# root test
root_chck
# params test
params_chck
# create variables
client_path
=
"
$prefix
/warden-client"
etc
=
"
$client_path
/etc"
conf_file
=
"
$etc
/warden-client.conf"
err
=
"/tmp/warden-err"
backup_dir
=
"/tmp/warden-backup"
echo
echo
"------------------------- Dependencies check-in -------------------------"
# Perl interpreter test
perl_chck
# Perl modules test
modules_chck
echo
echo
"------------------------- Update process --------------------------------"
# check installation directory
installation_dir_chck
# check warden client directory
warden_dir_chck
# backup old warden client installation
backup
# obtain current warden client user
obtain_warden_user
# make warden client directory
update_warden_dir
# create conf file
make_conf_file
# change permissions
change_permissions
echo
echo
"Please check configuration file in
$conf_file
!"
echo
echo
"Update was SUCCESSFUL!!!"
# cleanup section
rm
-rf
$err
rm
-rf
$backup_dir
exit
0
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment