Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ewv/CTA
  • rdm/CTA
  • cta/CTA
3 results
Show changes
Commits on Source (4)
Showing
with 28 additions and 197 deletions
......@@ -19,9 +19,6 @@ FROM gitlab-registry.cern.ch/linuxsupport/alma9-base:latest
ENV BASEDIR="continuousintegration/docker/alma9" \
CTAREPODIR="/opt/repo"
# Add orchestration run scripts locally
COPY ${BASEDIR}/../opt /opt
# Custom Yum repo setup
ARG YUM_REPOS_DIR=continuousintegration/docker/alma9/etc/yum.repos.d/
ARG YUM_VERSIONLOCK_FILE=continuousintegration/docker/alma9/etc/yum/pluginconf.d/versionlock.list
......@@ -59,7 +56,4 @@ enabled=1\n\
priority=2" > /etc/yum.repos.d/cta-artifacts.repo && \
dnf config-manager --enable cta-artifacts && \
dnf clean all --enablerepo=\* && \
rm -rf /etc/rc.d/rc.local && \
# Check that CTA packages are available
dnf list available cta-taped > /dev/null 2>&1 || \
(echo "cta-taped RPM is missing from the repository" 1>&2; exit 1)
rm -rf /etc/rc.d/rc.local
......@@ -21,8 +21,6 @@ FROM gitlab-registry.cern.ch/linuxsupport/alma9-base:latest
ENV BASEDIR="continuousintegration/docker/alma9" \
CTAREPODIR="/opt/repo"
# Add orchestration run scripts locally
COPY ${BASEDIR}/../opt /opt
COPY ${BASEDIR}/etc/yum.repos.d/ /etc/yum.repos.d/
# Variable to specify the tag to be used for CTA RPMs from the cta-ci-repo
......
#!/bin/bash
# This file must be sourced from another shell script
# . /opt/run/bin/init_pod.sh
# @project The CERN Tape Archive (CTA)
# @copyright Copyright © 2022-2024 CERN
# @license This program is free software, distributed under the terms of the GNU General Public
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". You can
# redistribute it and/or modify it under the terms of the GPL Version 3, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# In applying this licence, CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
LOGMOUNT=/mnt/logs
PV_PATH=""
if [ "-${MY_CONTAINER}-" != "--" ]; then
PV_PATH="${LOGMOUNT}/${MY_NAME}/${MY_CONTAINER}"
else
PV_PATH="${LOGMOUNT}/${MY_NAME}"
fi
mkdir -p ${PV_PATH}
echo "Copying initial /var/log content to ${PV_PATH}"
cd /var/log
tar -c . | tar -C ${PV_PATH} -xv
echo "Mounting logs volume ${PV_PATH} in /var/log"
mount --bind ${PV_PATH} /var/log
# all core dumps will go there as all the pods AND kubelet are sharing the same kernel.core_pattern
mkdir -p /var/log/tmp
chmod 1777 /var/log/tmp
echo '/var/log/tmp/%h-%t-%e-%p-%s.core' > /proc/sys/kernel/core_pattern
echo -n "Fixing reverse DNS for $(hostname) for xrootd: "
sed -i -c "s/^\($(hostname -i)\)\s\+.*$/\1 $(hostname -s).$(grep search /etc/resolv.conf | cut -d\ -f2) $(hostname -s)/" /etc/hosts
echo "DONE"
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Finished"
......@@ -5,7 +5,6 @@ If you are reading this, then you are most likely interesting in setting up a lo
- It install and configures MHVTL (virtual tape library)
- It installs and configures Minikube (for running a local cluster)
- It sets up a number of persistent volumes. Specifically claimlogs (for the logs) and claimstg (for the EOS FSTs).
- Finally, it allows you to set up the necessary secrets to pull from the private registry.
Note that we are working on improving this setup and making it more portable. For specific details on how to get a local instance up and running, see [the development setup docs](https://eoscta.docs.cern.ch/latest/dev/development_setup/).
......@@ -318,6 +317,4 @@ A small issue: by default, `gitlab-runner` service runs as `gitlab-runner` user,
The current deployment of this CTA has a few limitations that make it unsuitable for a wider adoption. These limitations are listed below. Note that the list is not necessarily conclusive.
- It is not possible to define different schedulers for different tape servers (although this would be relatively easy to add support for).
- All the pods write their logs to the same mount (with no way to turn this off), making it unsuitable for a production usecase. Once the monitoring chart is updated to consume from pod logs instead, this can be removed.
- The GRPC frontend configuration has not been tested/implemented yet.
- The `init_pod.sh` script requires every pod to run in priviledged mode
......@@ -15,7 +15,6 @@
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
. /opt/run/bin/init_pod.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
# Install missing RPMs
......
......@@ -15,7 +15,6 @@
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
. /opt/run/bin/init_pod.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
# Install missing RPMs
......
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: claimlogs
namespace: {{ .Release.Namespace | quote }}
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: {{ .Values.global.logStorage }}
selector:
matchLabels:
type: logs
......@@ -25,15 +25,7 @@ global:
- name: shared
hostPath:
path: /opt/cta
- name: logstorage
persistentVolumeClaim:
claimName: claimlogs
volumeMounts:
- name: shared
mountPath: /shared
- name: logstorage
mountPath: /mnt/logs
# Storage for the shared logs of the deployment
logStorage: "8Gi"
......@@ -15,7 +15,6 @@
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
. /opt/run/bin/init_pod.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
# Install missing RPMs
......
......@@ -15,7 +15,6 @@
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
. /opt/run/bin/init_pod.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
# Install missing RPMs
......
......@@ -15,7 +15,6 @@
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
. /opt/run/bin/init_pod.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
# Note that this sets the symbolic link for ALL containers, as /dev/ is shared
......
......@@ -15,7 +15,6 @@
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
. /opt/run/bin/init_pod.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') [$(basename "${BASH_SOURCE[0]}")] Started"
# Install missing RPMs
......
#!/bin/bash
# @project The CERN Tape Archive (CTA)
# @copyright Copyright © 2022 CERN
# @license This program is free software, distributed under the terms of the GNU General Public
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". You can
# redistribute it and/or modify it under the terms of the GPL Version 3, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# In applying this licence, CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization or
# submit itself to any jurisdiction.
TEST_DIR=${EOS_BASEDIR}
TEST_FILE_NAME=$(uuidgen)
#
# Check we can copy zero-length files into the namespace by touch and copy
#
echo "eos root://${EOS_MGM_HOST} touch ${TEST_DIR}/${TEST_FILE_NAME}.touch"
eos root://${EOS_MGM_HOST} touch ${TEST_DIR}/${TEST_FILE_NAME}.touch
echo "eos root://${EOS_MGM_HOST} cp ${TEST_DIR}/${TEST_FILE_NAME}.touch /tmp/${TEST_FILE_NAME}.touch"
eos root://${EOS_MGM_HOST} cp ${TEST_DIR}/${TEST_FILE_NAME}.touch /tmp/${TEST_FILE_NAME}.touch
echo "eos root://${EOS_MGM_HOST} cp /tmp/${TEST_FILE_NAME}.touch ${TEST_DIR}/${TEST_FILE_NAME}.zero"
eos root://${EOS_MGM_HOST} cp /tmp/${TEST_FILE_NAME}.touch ${TEST_DIR}/${TEST_FILE_NAME}.zero
echo "eos root://${EOS_MGM_HOST} cp ${TEST_DIR}/${TEST_FILE_NAME}.zero /tmp/${TEST_FILE_NAME}.zero"
eos root://${EOS_MGM_HOST} cp ${TEST_DIR}/${TEST_FILE_NAME}.zero /tmp/${TEST_FILE_NAME}.zero
if [ -f /tmp/${TEST_FILE_NAME}.touch -a ! -s /tmp/${TEST_FILE_NAME}.touch -a -f /tmp/${TEST_FILE_NAME}.zero -a ! -s /tmp/${TEST_FILE_NAME}.zero ]; then
echo "Zero-length file copy succeeded"
zeroLengthTests=1
else
echo "Zero-length file copy failed"
zeroLengthTests=0
fi
# Clean up
echo "eos root://${EOS_MGM_HOST} rm ${TEST_DIR}/${TEST_FILE_NAME}.touch"
eos root://${EOS_MGM_HOST} rm ${TEST_DIR}/${TEST_FILE_NAME}.touch
echo "eos root://${EOS_MGM_HOST} rm ${TEST_DIR}/${TEST_FILE_NAME}.zero"
eos root://${EOS_MGM_HOST} rm ${TEST_DIR}/${TEST_FILE_NAME}.zero
rm -f /tmp/${TEST_FILE_NAME}.touch /tmp/${TEST_FILE_NAME}.zero
# Report results
msgNum=$(grep "\"File suc" /mnt/logs/cta-tpsrv*/taped*/cta/cta-taped.log | grep ${TEST_FILE_NAME} | tail -n 4 | wc -l)
if [ "$msgNum" = "4" ] && [ $zeroLengthTests -eq 1 ]; then
echo "OK: all tests passed"
#rc=0
exit 0
else
echo "FAIL: tests failed"
#rc=1
exit 1
fi
......@@ -89,41 +89,34 @@ echo "Setting up environment for tests."
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "/root/client_setup.sh -n ${NB_FILES} -N ${NB_DIRS} -s ${FILE_SIZE_KB} -p ${NB_PROCS} -d /eos/ctaeos/preprod -v -r" || exit 1
TEST_PRERUN=". /root/client_env "
TEST_POSTRUN=""
VERBOSE=1
if [[ $VERBOSE == 1 ]]; then
TEST_PRERUN="tail -v -f /mnt/logs/cta-tpsrv*/rmcd/cta/cta-rmcd.log & export TAILPID=\$! && ${TEST_PRERUN}"
TEST_POSTRUN=" && kill \${TAILPID} &> /dev/null"
fi
echo
echo "Launching immutable file test on client pod"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && echo yes | cta-immutable-file-test root://\${EOS_MGM_HOST}/\${EOS_DIR}/immutable_file ${TEST_POSTRUN} || die 'The cta-immutable-file-test failed.'" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && echo yes | cta-immutable-file-test root://\${EOS_MGM_HOST}/\${EOS_DIR}/immutable_file || die 'The cta-immutable-file-test failed.'" || exit 1
echo
echo "Launching client_ar.sh on client pod"
echo " Archiving ${NB_FILES} files of ${FILE_SIZE_KB}kB each"
echo " Archiving files: xrdcp as user1"
echo " Retrieving them as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh" || exit 1
echo
echo "Launching client_evict.sh on client pod"
echo " Evicting files: xrdfs as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh" || exit 1
echo
echo "Launching client_abortPrepare.sh on client pod"
echo " Retrieving files: xrdfs as poweruser1"
echo " Aborting prepare: xrdfs as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_abortPrepare.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_abortPrepare.sh" || exit 1
echo
echo "Launching client_delete.sh on client pod"
echo " Deleting files:"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
......
......@@ -85,13 +85,6 @@ kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "/root/client_se
# require to change the stdin/out/err of the tail process and set//reset it
# at the beginning and end of each kubectl exec command.
TEST_PRERUN=". /root/client_env "
TEST_POSTRUN=""
VERBOSE=0
if [[ $VERBOSE == 1 ]]; then
TEST_PRERUN="tail -v -f /mnt/logs/cta-tpsrv*/rmcd/cta/cta-rmcd.log & export TAILPID=\$! && ${TEST_PRERUN}"
TEST_POSTRUN=" && kill \${TAILPID} &> /dev/null"
fi
echo "Setting up client pod for HTTPs REST API test"
......@@ -115,13 +108,13 @@ kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_eosrep
echo
echo "Launching immutable file test on client pod"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && echo yes | cta-immutable-file-test root://${EOS_MGM_HOST}/\${EOS_DIR}/immutable_file ${TEST_POSTRUN} || die 'The cta-immutable-file-test failed.'" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && echo yes | cta-immutable-file-test root://${EOS_MGM_HOST}/\${EOS_DIR}/immutable_file || die 'The cta-immutable-file-test failed.'" || exit 1
echo
echo "Launching client_simple_ar.sh on client pod"
echo " Archiving file: xrdcp as user1"
echo " Retrieving it as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_simple_ar.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_simple_ar.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
EOSDF_BUFFER_BASEDIR=/eos/ctaeos/eosdf
......@@ -130,7 +123,7 @@ kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- eos mkdir ${EOSDF_BUFF
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- eos chmod 1777 ${EOSDF_BUFFER_URL}
# Test correct script execution
echo "Launching eosdf_systemtest.sh, expecting script to run properly"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh" || exit 1
## Verify proper execution of script by grepping for the debug log line
# Set the TAPES and DRIVE_NAME based on the config in CTA_TPSRV_POD
echo "Reading library configuration from ${CTA_TPSRV_POD}"
......@@ -148,7 +141,7 @@ echo "Launching eosdf_systemtest.sh with a nonexistent script"
# rename the script on taped so that it cannot be found
# error to grep for in the logs is 'No such file or directory'
kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "mv /usr/bin/cta-eosdf.sh /usr/bin/eosdf_newname.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh" || exit 1
if kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "grep -q 'No such file or directory' ${CTA_TAPED_LOG}"; then
echo "Subprocess threw 'No such file or directory', as expected"
else
......@@ -159,7 +152,7 @@ fi
echo "Launching eosdf_systemtest.sh with correct script without executable permissions"
kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "mv /usr/bin/eosdf_newname.sh /usr/bin/cta-eosdf.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "chmod -x /usr/bin/cta-eosdf.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh" || exit 1
if kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "grep -q 'Permission denied' ${CTA_TAPED_LOG}"; then
echo "Subprocess threw 'Permission denied', as expected"
else
......@@ -171,12 +164,12 @@ echo "Launching eosdf_systemtest.sh with script that throws an eos-client error"
# fake instance not reachable
kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "sed -i 's|root://\$diskInstance|root://nonexistentinstance|g' /usr/bin/cta-eosdf.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "chmod +x /usr/bin/cta-eosdf.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/eosdf_systemtest.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${CTA_TPSRV_POD} -c taped-0 -- bash -c "sed -i 's|root://nonexistentinstance|root://\$diskInstance|g' /usr/bin/cta-eosdf.sh" || exit 1
echo
echo " Launching client_timestamp.sh on client pod"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_timestamp.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_timestamp.sh" || exit 1
echo
echo "Track progress of test"
......@@ -188,7 +181,7 @@ echo
echo "Launching client_archive.sh on client pod"
echo " Archiving ${NB_FILES} files of ${FILE_SIZE_KB}kB each"
echo " Archiving files: xrdcp as user1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
......@@ -200,14 +193,14 @@ echo "###"
echo
echo "Launching client_retrieve.sh on client pod"
echo " Retrieving files: xrdfs as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo
echo "Launching client_evict.sh on client pod"
echo " Evicting files: xrdfs as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
......@@ -215,14 +208,14 @@ echo
echo "Launching client_abortPrepare.sh on client pod"
echo " Retrieving files: xrdfs as poweruser1"
echo " Aborting prepare: xrdfs as poweruser1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_abortPrepare.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_abortPrepare.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo
echo "Launching client_delete.sh on client pod"
echo " Deleting files:"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo "$(date +%s): Waiting for tracker process to finish. "
......
......@@ -68,13 +68,6 @@ FILE_SIZE_KB=15
NB_PROCS=100
TEST_PRERUN=". /root/client_env "
TEST_POSTRUN=""
VERBOSE=1
if [[ $VERBOSE == 1 ]]; then
TEST_PRERUN="tail -v -f /mnt/logs/cta-tpsrv*/rmcd/cta/cta-rmcd.log & export TAILPID=\$! && ${TEST_PRERUN}"
TEST_POSTRUN=" && kill \${TAILPID} &> /dev/null"
fi
clientgfal2_options="-n ${NB_FILES} -s ${FILE_SIZE_KB} -p ${NB_PROCS} -d /eos/ctaeos/preprod -v -r -c gfal2"
......@@ -96,7 +89,7 @@ TRACKER_PID=$!
echo
echo "Launching client_archive.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Archiving files: xrdcp as user1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo "###"
......@@ -107,19 +100,19 @@ echo "###"
echo
echo "Launching client_retrieve.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Retrieving files with gfal-bringonline via root protocol"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo
echo "Launching client_evict.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Evicting files with gfal-evict via root protocol"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo
echo "Launching client_delete.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Deleting files with gfal-rm via root protocol"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
......@@ -153,7 +146,7 @@ TRACKER_PID=$!
echo
echo "Launching client_archive.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Archiving files: gfal-copy as user1 via https"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_archive.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo "###"
......@@ -164,19 +157,19 @@ echo "###"
echo
echo "Launching client_retrieve.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Retrieving files with gfal-bringonline via https protocol"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_retrieve.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo
echo "Launching client_evict.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Evicting files with gfal-evict as poweruser via https protocol"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_evict.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo
echo "Launching client_delete.sh on client pod using ${GFAL2_PROTOCOL} protocol"
echo " Deleting files with gfal-rm as user1 via https protocol"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh ${TEST_POSTRUN}" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "${TEST_PRERUN} && /root/client_delete.sh" || exit 1
kubectl -n ${NAMESPACE} exec ${EOS_MGM_POD} -c eos-mgm -- bash /root/grep_xrdlog_mgm_for_error.sh || exit 1
echo "$(date +%s): Waiting for tracker process to finish. "
......
......@@ -86,7 +86,7 @@ archiveFiles() {
echo " Archiving ${NB_FILES} files of ${FILE_SIZE_KB}kB each"
echo " Archiving files: xrdcp as user1"
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "/root/client_setup.sh -n ${NB_FILES} -s ${FILE_SIZE_KB} -p 100 -d /eos/ctaeos/preprod -v -A" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c "tail -v -f /mnt/logs/cta-tpsrv*/rmcd/cta/cta-rmcd.log & export TAILPID=\$! && . /root/client_env && /root/client_archive.sh && kill \${TAILPID} &> /dev/null" || exit 1
kubectl -n ${NAMESPACE} exec ${CLIENT_POD} -c client -- bash -c ". /root/client_env && /root/client_archive.sh" || exit 1
}
echo
......