Skip to content
Snippets Groups Projects
Commit d4647723 authored by Tomáš Plesník's avatar Tomáš Plesník
Browse files

automaticke testovani perl modulu; skript prepsan do funkci; doplneno...

automaticke testovani perl modulu; skript prepsan do funkci; doplneno kopirovani dokumentu do adresare doc
parent eda15048
No related merge requests found
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
# otherwise) arising in any way out of the use of this software, even # otherwise) arising in any way out of the use of this software, even
# if advised of the possibility of such damage. # if advised of the possibility of such damage.
VERSION="1.0.0" VERSION="1.1.0"
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# FUNCTIONS # FUNCTIONS
...@@ -86,25 +86,198 @@ err_clean() ...@@ -86,25 +86,198 @@ err_clean()
} }
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 /opt!"
fi
if [ -z $user ]; then
echo "Parameter -u <user> is not set!"
exit 1
fi
if [ -z $key ]; then
echo "Parameter -k <ssl_key_file> is not set!"
exit 1
fi
if [ -z $cert ]; then
echo "Parameter -c <ssl_cert_file> is not set!"
exit 1
fi
if [ -z $ca_file ]; then
echo "Parameter -a <ssl_ca_file> is not set!"
exit 1
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!"
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
}
make_warden_dir()
{
echo -n "Making warden client directory ... "
cp CHANGELOG INSTALL LICENSE README "$client_path/doc"
cp -R ./warden-client $prefix 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
}
copy_key()
{
echo -n "Copying certificate key file ... "
cp $key $etc 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
}
copy_cert()
{
echo -n "Copying certificate file ... "
cp $cert $etc 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
}
make_conf_file()
{
echo -n "Creating configuration file ... "
echo "#
# warden-client.conf - configuration file for the warden sender/receiver client
#
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# MAIN # URI - URI address of Warden server
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
\$URI = \"https://warden.cesnet.cz:443/Warden\";
# OS test #-------------------------------------------------------------------------------
OS=`uname` # SSL_KEY_FILE - path to client SSL certificate key file
if [ "$OS" != "Linux" ]; then #-------------------------------------------------------------------------------
echo "Sorry, unsupported operating system detected - \"$OS\"!" \$SSL_KEY_FILE = \"$etc/$key_file\";
exit 1
fi
#-------------------------------------------------------------------------------
# SSL_CERT_FILE - path to client SSL certificate file
#-------------------------------------------------------------------------------
\$SSL_CERT_FILE = \"$etc/$cert_file\";
# shell test #-------------------------------------------------------------------------------
SHELL=`echo $SHELL` # SSL_CA_FILE - path to CA certificate file
if [ "$SHELL" != "/bin/bash" ]; then #-------------------------------------------------------------------------------
echo "Sorry, this script is usable in Bourne Again Shell (bash) only!" \$SSL_CA_FILE = \"$ca_file\";
exit 1 " > $conf_file 2> $err; ret_val=`echo $?`
fi if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
}
change_permissions()
{
echo -n "Changing permissions to installed 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 # read input
while getopts "d:u:k:c:a:Vh" options; do while getopts "d:u:k:c:a:Vh" options; do
...@@ -120,36 +293,11 @@ while getopts "d:u:k:c:a:Vh" options; do ...@@ -120,36 +293,11 @@ while getopts "d:u:k:c:a:Vh" options; do
esac esac
done done
# root test
root_chck
# root controle # params test
if [ $UID -ne 0 ]; then params_chck
echo "You must be root for running this script!"
exit 1
fi
# check inputs
if [ -z $prefix ]; then
prefix=/opt
echo "Warning: parameter -d <directory> is not set - default installation directory is /opt!"
fi
if [ -z $user ]; then
echo "Parameter -u <user> is not set!"
exit 1
fi
if [ -z $key ]; then
echo "Parameter -k <ssl_key_file> is not set!"
exit 1
fi
if [ -z $cert ]; then
echo "Parameter -c <ssl_cert_file> is not set!"
exit 1
fi
if [ -z $ca_file ]; then
echo "Parameter -a <ssl_ca_file> is not set!"
exit 1
fi
# create variables # create variables
key_file=`basename $key` key_file=`basename $key`
...@@ -159,151 +307,36 @@ etc="$client_path/etc" ...@@ -159,151 +307,36 @@ etc="$client_path/etc"
conf_file="$etc/warden-client.conf" conf_file="$etc/warden-client.conf"
err="/tmp/warden-err" err="/tmp/warden-err"
#------------------------------------------------------------------------------- echo
# Dependencies check-in echo "------------------------- Dependencies check-in -------------------------"
echo "------------------------- Dependencies check-in ---------------------------" # Perl interpreter test
perl_chck
# check Perl interpreter # Perl modules test
echo -n "Checking Perl package ... " modules_chck
which perl 1>/dev/null; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
echo "FAILED!"
exit 1
fi
# check SOAP::Lite package
echo -n "Checking SOAP::Lite package ... "
perl -e 'use SOAP::Lite' 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
# check IO::Socket::SSL package
echo -n "Checking IO::Socket::SSL package ... "
perl -e 'use IO::Socket::SSL' 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
# check SOAP::Transport::TCP package
echo -n "Checking SOAP::Transport::TCP package ... "
perl -e 'use SOAP::Transport::TCP' 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
# check FindBin package
echo -n "Checking FindBin package ... "
perl -e 'use FindBin' 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err
fi
#-------------------------------------------------------------------------------
# Installation process
echo echo
echo "------------------------- Installation process ---------------------------" echo "------------------------- Installation process --------------------------"
# check installation directory # check installation directory
echo -n "Checking installation directory ... " installation_dir_chck
if [ ! -d $prefix ]; then
echo "FAILED!"
ls $prefix
exit 1
else
echo "OK"
fi
# make warden client directory # make warden client directory
echo -n "Making warden client directory ... " make_warden_dir
cp -R ./warden-client $prefix 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
# copy cert key file # copy cert key file
echo -n "Copying certificate key file ... " copy_key
cp $key $etc 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
# copy cert file # copy cert file
echo -n "Copying certificate file ... " copy_cert
cp $cert $etc 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
# create conf file # create conf file
echo -n "Creating configuration file ... " make_conf_file
echo "#
# warden-client.conf - configuration file for the warden sender/receiver client
#
#-------------------------------------------------------------------------------
# URI - URI address of Warden server
#-------------------------------------------------------------------------------
\$URI = \"https://warden.cesnet.cz:443/Warden\";
#-------------------------------------------------------------------------------
# SSL_KEY_FILE - path to client SSL certificate key file
#-------------------------------------------------------------------------------
\$SSL_KEY_FILE = \"$etc/$key_file\";
#-------------------------------------------------------------------------------
# SSL_CERT_FILE - path to client SSL certificate file
#-------------------------------------------------------------------------------
\$SSL_CERT_FILE = \"$etc/$cert_file\";
#-------------------------------------------------------------------------------
# SSL_CA_FILE - path to CA certificate file
#-------------------------------------------------------------------------------
\$SSL_CA_FILE = \"$ca_file\";
" > $conf_file 2> $err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
# change permissions # change permissions
echo -n "Changing permissions to installed package ... " change_permissions
chown -R $user: $client_path 2>$err; ret_val=`echo $?`
if [ $ret_val -eq 0 ]; then
echo "OK"
else
err_clean
fi
echo echo
echo "Please check configuration file in $conf_file!" echo "Please check configuration file in $conf_file!"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment