From 07d0d50cd79a85e3c38fdf936dae5322b946dfc9 Mon Sep 17 00:00:00 2001 From: Julien Leduc <julien.leduc@cern.ch> Date: Mon, 26 Jun 2017 16:53:56 +0200 Subject: [PATCH] Merging further added a /CANSTART file so that eos waits for all keys to be OK before starting. /bin/sh -> /bin/bash to allow function names with `-`... yum and yum-config-manager overridden when in BUILDTREE environment ctafrontend not booting needs further work --- .../cc7/opt/run/bin/mkSymlinks.sh | 4 +-- .../cc7/buildtree-stage1-rpms/Dockerfile | 2 +- .../cc7/buildtree-stage2-scripts/Dockerfile | 2 +- .../ctafrontend/cc7/opt/run/bin/client.sh | 2 +- .../ctafrontend/cc7/opt/run/bin/ctacli.sh | 2 +- .../ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh | 14 ++++++-- .../cc7/opt/run/bin/ctafrontend.sh | 4 +-- .../ctafrontend/cc7/opt/run/bin/init.sh | 4 +-- .../ctafrontend/cc7/opt/run/bin/init_pod.sh | 11 +++++- .../docker/ctafrontend/cc7/opt/run/bin/kdc.sh | 2 +- .../ctafrontend/cc7/opt/run/bin/mkSymlinks.sh | 36 +++++++++++++++++++ .../ctafrontend/cc7/opt/run/bin/rmcd.sh | 4 +-- .../ctafrontend/cc7/opt/run/bin/taped.sh | 4 +-- .../orchestration/create_instance.sh | 6 ++++ 14 files changed, 78 insertions(+), 19 deletions(-) create mode 100755 continuousintegration/docker/ctafrontend/cc7/opt/run/bin/mkSymlinks.sh diff --git a/continuousintegration/docker/buildtree_runner/cc7/opt/run/bin/mkSymlinks.sh b/continuousintegration/docker/buildtree_runner/cc7/opt/run/bin/mkSymlinks.sh index 1aabd39bba..c74dcab238 100755 --- a/continuousintegration/docker/buildtree_runner/cc7/opt/run/bin/mkSymlinks.sh +++ b/continuousintegration/docker/buildtree_runner/cc7/opt/run/bin/mkSymlinks.sh @@ -33,6 +33,4 @@ ln -s -v -t /usr/bin \ ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/mediachanger/cta-mediachanger-mount \ ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/disk/xrdclfsopaquetest \ ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/xroot-client-test/xrootHammer -ln -s -v -t /usr/lib64 \ - ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/xroot_plugins/libXrdCtaOfs.so - +find ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR} | grep '.so$' | xargs -itoto ln -s -v -t /usr/lib64 toto diff --git a/continuousintegration/docker/ctafrontend/cc7/buildtree-stage1-rpms/Dockerfile b/continuousintegration/docker/ctafrontend/cc7/buildtree-stage1-rpms/Dockerfile index 4f4dbf3ed2..164cb21a87 100644 --- a/continuousintegration/docker/ctafrontend/cc7/buildtree-stage1-rpms/Dockerfile +++ b/continuousintegration/docker/ctafrontend/cc7/buildtree-stage1-rpms/Dockerfile @@ -26,7 +26,7 @@ FROM gitlab-registry.cern.ch/linuxsupport/cc7-base # my environment variables ENV ORCHESTRATIONDIR="continuousintegration/orchestration/pods" \ LOCALORCHESTRATIONDIR="/opt/ci" \ - BASEDIR="continuousintegration/docker/buildtree_runner/cc7" \ + BASEDIR="continuousintegration/docker/ctafrontend/cc7" \ CTAREPODIR="/tmp/repo" # Manage repos before running yum diff --git a/continuousintegration/docker/ctafrontend/cc7/buildtree-stage2-scripts/Dockerfile b/continuousintegration/docker/ctafrontend/cc7/buildtree-stage2-scripts/Dockerfile index 6a3ac9d4c9..94f040db25 100644 --- a/continuousintegration/docker/ctafrontend/cc7/buildtree-stage2-scripts/Dockerfile +++ b/continuousintegration/docker/ctafrontend/cc7/buildtree-stage2-scripts/Dockerfile @@ -26,7 +26,7 @@ FROM buildtree-runner-stage1 # my environment variables ENV ORCHESTRATIONDIR="continuousintegration/orchestration/pods" \ LOCALORCHESTRATIONDIR="/opt/ci" \ - BASEDIR="continuousintegration/docker/buildtree_runner/cc7" \ + BASEDIR="continuousintegration/docker/ctafrontend/cc7" \ CTAREPODIR="/tmp/repo" # Add pod specific configuration diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/client.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/client.sh index 504aa72daa..0c9ad38f37 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/client.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/client.sh @@ -1,6 +1,6 @@ #!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh index 12089d411a..62d034794f 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh @@ -1,6 +1,6 @@ #!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh index a9cbb5a19b..118d0d1585 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh yum-config-manager --enable cta-artifacts yum-config-manager --enable eos-citrine-commit @@ -84,6 +84,16 @@ echo -n '0 u:daemon g:daemon n:ctaeos+ N:6361884315374059521 c:1481241620 e:0 f: mkdir -p /fst chown daemon:daemon /fst/ + +# Waiting for /CANSTART file before starting eos +echo -n "Waiting for /CANSTART before going further" +for ((i=0;i<600;i++)); do + test -f /CANSTART && break + sleep 1 + echo -n . +done +test -f /CANSTART && echo OK || exit 1 + # start and setup eos for xrdcp to the ${CTA_TEST_DIR} #/etc/init.d/eos start /usr/bin/xrootd -n mq -c /etc/xrd.cf.mq -l /var/log/eos/xrdlog.mq -b -Rdaemon diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh index 852b16b7a6..29a6fbc7c7 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh index 6a9143eae8..c2448aba64 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh # enable cta repository from previously built artifacts yum-config-manager --enable cta-artifacts diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh index 418e26abc2..f7915854c5 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh @@ -1,4 +1,5 @@ -#!/bin/bash +# This file must be sourced from another shell script +# . /opt/run/bin/init_pod.sh LOGMOUNT=/mnt/logs @@ -26,3 +27,11 @@ echo "DONE" #echo -n "Yum should resolve names using IPv4 DNS: " #echo "ip_resolve=IPv4" >> /etc/yum.conf #echo "DONE" + +# redefining yum commands if in BUILDTREE environment +if [[ -n ${BUILDTREE_BASE} ]]; then + echo "Configuring BUILDTREE environment" + yum-config-manager() { echo "Skipping yum-config-manager $@"; } + yum() { echo "Skipping yum $@"; } + /opt/run/bin/mkSymlinks.sh +fi diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh index d95482d88c..711919e619 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh @@ -1,6 +1,6 @@ #!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh # Install missing RPMs (kdc) yum -y install heimdal-server heimdal-workstation diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/mkSymlinks.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/mkSymlinks.sh new file mode 100755 index 0000000000..2d21b1d61d --- /dev/null +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/mkSymlinks.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# make symbolic links to all CTA binaries. + +# Following binary list is build from (run in the build tree): +# find -type f -executable | egrep -v "\.so$" | egrep -v "\.sh$" | grep -v RPM/BUILD | grep -v CMake | grep -v CPack + +echo Creating symlinks for CTA binaries and symlinks. +ln -s -v -t /usr/bin \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/catalogue/cta-catalogue-admin-host-create \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/catalogue/cta-database-poll \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/catalogue/cta-catalogue-admin-user-create \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/catalogue/cta-catalogue-schema-create \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/catalogue/cta-catalogue-schema-drop \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/cmdline/cta \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/objectstore/dumpObject \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/objectstore/listObjectStore \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/objectstore/makeMinimalVFS \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/objectstore/cta-objectstore-dump-object \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/objectstore/cta-objectstore-list \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/objectstore/cta-objectstore-initialize \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/nameserver/makeMockNameServerBasePath \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tapeserver/castor/tape/tapeserver/drive/TapeDriveReadWriteTest \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tapeserver/castor/tape/tapeserver/daemon/cta-tapeserverd \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tapeserver/cta-taped \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tests/cta-systemTests \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tests/cta-catalogueUnitTests \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tests/cta-unitTests \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tests/cta-unitTests-multiProcess \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/tests/cta-oraUnitTests \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/xroot_plugins/cta-xrootd_plugins-fakeeos \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/mediachanger/cta-mediachanger-dismount \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/mediachanger/cta-mediachanger-mount \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/disk/xrdclfsopaquetest \ + ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR}/xroot-client-test/xrootHammer +find ${BUILDTREE_BASE}/${BUILDTREE_SUBDIR} | grep '.so$' | xargs -itoto ln -s -v -t /usr/lib64 toto diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh index 6c95c1dfbd..7f6fd7d68c 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh index b5e2298d92..309402867b 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -/opt/run/bin/init_pod.sh +. /opt/run/bin/init_pod.sh yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/orchestration/create_instance.sh b/continuousintegration/orchestration/create_instance.sh index f6e8b10c7c..e78733357f 100755 --- a/continuousintegration/orchestration/create_instance.sh +++ b/continuousintegration/orchestration/create_instance.sh @@ -240,6 +240,12 @@ kubectl --namespace=${instance} exec kdc cat /root/eos-server.keytab | kubectl - kubectl --namespace=${instance} exec ctacli -- kinit -kt /root/ctaadmin1.keytab ctaadmin1@TEST.CTA kubectl --namespace=${instance} exec client -- kinit -kt /root/user1.keytab user1@TEST.CTA + + +# allow eos to start +kubectl --namespace=${instance} exec ctaeos -- touch /CANSTART + + # create users on the mgm # this is done in ctaeos-mgm.sh as the mgm needs this to setup the ACLs -- GitLab