From d8047c2db53427cbc8d73c8c274f8f1eb01a5a7e Mon Sep 17 00:00:00 2001 From: Anastasia Karachaliou <anastasia.karachaliou@cern.ch> Date: Tue, 14 Nov 2017 12:08:42 +0100 Subject: [PATCH] cta-rmcd rpm working --- .../ctafrontend/cc7/opt/run/bin/rmcd.sh | 2 +- cta.spec.in | 37 +++--- mediachanger/castorrmc/rmc/CMakeLists.txt | 16 ++- .../{cta-rmcd.conf.example => cta-rmcd.conf} | 0 mediachanger/castorrmc/rmc/cta-rmcd.logrotate | 11 ++ mediachanger/castorrmc/rmc/cta-rmcd.service | 14 +++ mediachanger/castorrmc/rmc/cta-rmcd.sysconfig | 5 + mediachanger/castorrmc/rmc/cta-smc.conf | 40 +++++++ mediachanger/castorrmc/rmc/rmcd.init | 110 ------------------ mediachanger/castorrmc/rmc/rmcd.sysconfig | 2 - tapeserver/CMakeLists.txt | 3 - 11 files changed, 99 insertions(+), 141 deletions(-) rename mediachanger/castorrmc/rmc/{cta-rmcd.conf.example => cta-rmcd.conf} (100%) create mode 100644 mediachanger/castorrmc/rmc/cta-rmcd.logrotate create mode 100644 mediachanger/castorrmc/rmc/cta-rmcd.service create mode 100644 mediachanger/castorrmc/rmc/cta-rmcd.sysconfig create mode 100644 mediachanger/castorrmc/rmc/cta-smc.conf delete mode 100755 mediachanger/castorrmc/rmc/rmcd.init delete mode 100644 mediachanger/castorrmc/rmc/rmcd.sysconfig diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh index ee694be5e6..ecd88f9691 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh @@ -8,7 +8,7 @@ if [ ! -e /etc/buildtreeRunner ]; then yum-config-manager --enable castor # Install missing RPMs - yum -y install mt-st mtx lsscsi sg3_utils castor-rmc-server + yum -y install mt-st mtx lsscsi sg3_utils cta-rmcd fi # source library configuration file diff --git a/cta.spec.in b/cta.spec.in index 6f61694940..dcac44eff7 100644 --- a/cta.spec.in +++ b/cta.spec.in @@ -290,30 +290,29 @@ Utilities to faciliate working with the mediachangers %attr(0644,root,root) %doc /usr/share/man/man1/cta-mediachanger-dismount.1cta.gz %attr(0644,root,root) %doc /usr/share/man/man1/cta-mediachanger-mount.1cta.gz -%package -n cta-rmc -Summary: Tools to faciliate working with rmc and smc in cta + +%package -n cta-rmcd +Summary: Tools to faciliate working with rmcd and smc in cta Group: Application/CTA -%description -n cta-rmc +Requires: logrotate +Requires(pre): /usr/bin/getent, /usr/sbin/groupadd, /usr/sbin/useradd +%description -n cta-rmcd CERN Tape Archive: -Tools to faciliate working with rmc and smc in cta -%files -n cta-rmc -%attr(0755,root,root) %{_bindir}/rmcd +Tools to faciliate working with rmcd and smc in cta +%pre -n cta-rmcd +/usr/bin/getent group cta || /usr/sbin/groupadd cta +/usr/bin/getent passwd cta || /usr/sbin/useradd -s /bin/nologin -c "CTA system account" -g cta cta +%files -n cta-rmcd +%attr(0755,root,root) %{_bindir}/cta-rmcd +#%attr(0755,root,root) %{_bindir}/cta-rmcd %attr(0755,root,root) %{_bindir}/smc +%attr(0755,cta,cta) %dir /var/log/cta %attr(0644,root,root) %doc /usr/share/man/man1/rmcd.1cta.gz %attr(0644,root,root) %doc /usr/share/man/man1/smc.1cta.gz -%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-rmcd.conf.example +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-rmcd.conf %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cta/cta-smc.conf.example -%attr(0644,root,root) /etc/sysconfig/cta-rmc -%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-rmc - -#%package -n cta-smc -#Summary: Tools to faciliate working with smc in cta -#Group: Application/CTA -#%description -n cta-smc -#CERN Tape Archive: -#Tools to faciliate working with smc in cta -#%files -n cta-smc -#%attr(0755,root,root) %{_bindir}/smc -##%attr(0644,root,root) %doc /usr/share/man/man1/rmcd.1cta.gz +%attr(0644,root,root) /etc/sysconfig/cta-rmcd +%attr(0644,root,root) %config(noreplace) /etc/logrotate.d/cta-rmcd +%attr(0644,root,root) /etc/systemd/system/cta-rmcd.service %endif diff --git a/mediachanger/castorrmc/rmc/CMakeLists.txt b/mediachanger/castorrmc/rmc/CMakeLists.txt index 35ce5148e2..82e97e1f3c 100644 --- a/mediachanger/castorrmc/rmc/CMakeLists.txt +++ b/mediachanger/castorrmc/rmc/CMakeLists.txt @@ -14,7 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. cmake_minimum_required (VERSION 2.6) -#install (TARGETS ctarmccommon DESTINATION usr/${CMAKE_INSTALL_LIBDIR}) include_directories (${PROJECT_SOURCE_DIR}/mediachanger/castorrmc/h) set (RMCD_SRC_FILES @@ -28,13 +27,18 @@ set (RMCD_SRC_FILES rmc_serv.c rmc_smcsubr.c ) -add_executable(rmcd ${RMCD_SRC_FILES}) -target_link_libraries(rmcd ctarmccommon) -install (FILES cta-rmcd.conf.example DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/cta) +add_executable(cta-rmcd ${RMCD_SRC_FILES}) +target_link_libraries(cta-rmcd ctarmccommon) +#install (FILES cta-rmcd.conf.example DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/cta) +install (FILES cta-rmcd.conf DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/cta) install (FILES cta-smc.conf.example DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/cta) -install (TARGETS rmcd DESTINATION /usr/bin) -install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rmcd.1cta DESTINATION /usr/share/man/man1) +install (TARGETS cta-rmcd DESTINATION /usr/bin) +#install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/rmcd.1cta DESTINATION /usr/share/man/man1) +install (FILES rmcd.1cta DESTINATION /usr/share/man/man1) +install (FILES cta-rmcd.logrotate DESTINATION /etc/logrotate.d RENAME cta-rmcd) +install (FILES cta-rmcd.sysconfig DESTINATION /etc/sysconfig RENAME cta-rmcd) +install (FILES cta-rmcd.service DESTINATION /etc/systemd/system) set (SMC_SRC_FILES rmc_dismount.c diff --git a/mediachanger/castorrmc/rmc/cta-rmcd.conf.example b/mediachanger/castorrmc/rmc/cta-rmcd.conf similarity index 100% rename from mediachanger/castorrmc/rmc/cta-rmcd.conf.example rename to mediachanger/castorrmc/rmc/cta-rmcd.conf diff --git a/mediachanger/castorrmc/rmc/cta-rmcd.logrotate b/mediachanger/castorrmc/rmc/cta-rmcd.logrotate new file mode 100644 index 0000000000..e0df6b4c5d --- /dev/null +++ b/mediachanger/castorrmc/rmc/cta-rmcd.logrotate @@ -0,0 +1,11 @@ + +/var/log/cta/cta-rmc*.log { + compress + daily + missingok + rotate 500 + delaycompress + postrotate + /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true + endscript +} diff --git a/mediachanger/castorrmc/rmc/cta-rmcd.service b/mediachanger/castorrmc/rmc/cta-rmcd.service new file mode 100644 index 0000000000..7074df349a --- /dev/null +++ b/mediachanger/castorrmc/rmc/cta-rmcd.service @@ -0,0 +1,14 @@ + +[Unit] +Description=CERN Tape Archive (CTA) rmcd daemon +After=syslog.target network-online.target + +[Service] +EnvironmentFile=-/etc/sysconfig/cta-rmcd +ExecStart=/usr/bin/cta-rmcd ${CTA_RMCD_OPTIONS} +LimitCORE=infinity +Type=forking +Restart=no + +[Install] +WantedBy=default.target diff --git a/mediachanger/castorrmc/rmc/cta-rmcd.sysconfig b/mediachanger/castorrmc/rmc/cta-rmcd.sysconfig new file mode 100644 index 0000000000..2bd7fcfddb --- /dev/null +++ b/mediachanger/castorrmc/rmc/cta-rmcd.sysconfig @@ -0,0 +1,5 @@ + +# Arguments for the rmcd server daemon +# -smc_ldr is the picker device as defined in /dev. +# -f keep process in the foreground, do not fork. +#CTA_RMCD_OPTIONS="smc_ldr" diff --git a/mediachanger/castorrmc/rmc/cta-smc.conf b/mediachanger/castorrmc/rmc/cta-smc.conf new file mode 100644 index 0000000000..0d12e2d336 --- /dev/null +++ b/mediachanger/castorrmc/rmc/cta-smc.conf @@ -0,0 +1,40 @@ +# The CERN Tape Archive (CTA) project +# Copyright (C) 2015 CERN +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, 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. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +################################################################################ +# +# CTA Sample Configuration File +# +################################################################################ + +# The log mask. Logs with a level lower than this value will be masked. +# Possible values are: +# EMERG +# ALERT +# CRIT +# ERR +# WARNING +# NOTICE +# INFO +# DEBUG +# USERERR +# +# Please note that the USERERR log level is equivalent to NOTICE because it is +# a convention of CTA to use log level NOTICE to label user errors. +# +# taped LogMask INFO + + diff --git a/mediachanger/castorrmc/rmc/rmcd.init b/mediachanger/castorrmc/rmc/rmcd.init deleted file mode 100755 index 4964dce804..0000000000 --- a/mediachanger/castorrmc/rmc/rmcd.init +++ /dev/null @@ -1,110 +0,0 @@ -#! /bin/sh -# -#/****************************************************************************** -# rmcd.init -# -# This file is part of the Castor project. -# See http://castor.web.cern.ch/castor -# -# Copyright (C) 2003 CERN -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, 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. -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# -# chkconfig: 345 71 34 -# description: RMC server daemon -# -# @author castor dev team -#*****************************************************************************/ - -# Source function library. -. /etc/rc.d/init.d/functions - -# Variables -prog="rmcd" -export DAEMON_COREFILE_LIMIT="unlimited" -RETVAL=0 - -# Source sysconfig files -if [ -f /etc/sysconfig/castor ]; then - . /etc/sysconfig/castor -fi -if [ -f /etc/sysconfig/$prog ]; then - . /etc/sysconfig/$prog -fi - -start() { - # Run daemon - echo -n $"Starting $prog: " - - cd /var/log/castor - daemon --user=stage /usr/bin/$prog $RMCD_OPTIONS - - # Write the pid to a file. - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - pid=`ps -eo pid,ppid,comm | egrep " 1 $prog\$" | awk '{print $1}'` - rm -f /var/run/$prog.pid - if [ -n "$pid" ]; then - echo $pid > /var/run/$prog.pid - RETVAL=0 - else - RETVAL=1 - fi - fi - - [ $RETVAL -eq 0 ] && success $"$base startup" || failure $"$base startup" - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog - return $RETVAL -} - -stop() { - echo -n $"Stopping $prog: " - killproc $prog - - RETVAL=$? - echo - [ -f /var/lock/subsys/$prog ] && rm -f /var/lock/subsys/$prog - return $RETVAL -} - -restart() { - stop - start -} - -# See how we were called -case "$1" in - - start) - start - ;; - stop) - stop - ;; - status) - status $prog - RETVAL=$? - ;; - restart) - restart - ;; - condrestart) - [ -f /var/lock/subsys/$prog ] && restart || : - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart}" - exit 1 -esac - -exit $RETVAL diff --git a/mediachanger/castorrmc/rmc/rmcd.sysconfig b/mediachanger/castorrmc/rmc/rmcd.sysconfig deleted file mode 100644 index 0c725a9118..0000000000 --- a/mediachanger/castorrmc/rmc/rmcd.sysconfig +++ /dev/null @@ -1,2 +0,0 @@ -# Options to pass to the rmc daemon -#RMCD_OPTIONS= diff --git a/tapeserver/CMakeLists.txt b/tapeserver/CMakeLists.txt index 16a525db31..3ab3b09995 100644 --- a/tapeserver/CMakeLists.txt +++ b/tapeserver/CMakeLists.txt @@ -24,9 +24,6 @@ install (FILES cta-taped.1cta DESTINATION /usr/share/man/man1) install (FILES cta-taped.logrotate DESTINATION /etc/logrotate.d RENAME cta-taped) install (FILES cta-taped.sysconfig DESTINATION /etc/sysconfig RENAME cta-taped) install (FILES cta-taped.service DESTINATION /etc/systemd/system) -install (FILES cta-rmc.logrotate DESTINATION /etc/logrotate.d RENAME cta-rmc) -install (FILES cta-rmc.sysconfig DESTINATION /etc/sysconfig RENAME cta-rmc) -#install (FILES cta-rmc.service DESTINATION /etc/systemd/system) # CTA's cta-taped system tests. add_library(cta-tapedSystemTests SHARED -- GitLab