From 5d0fda83a87ba827433b92e4863580325cc6698d Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Tue, 06 Aug 2013 15:23:03 +0000
Subject: [PATCH] CR-2123 OPENDJ-1068 create resources for rpm packaging - added init.d script to RPM package.

---
 opends/resource/rpm/files    |    1 
 opends/build.xml             |    2 
 opends/resource/rpm/specFile |   16 +++++
 opends/resource/rpm/opendj   |  161 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 180 insertions(+), 0 deletions(-)

diff --git a/opends/build.xml b/opends/build.xml
index 56fb0a5..cb78d24 100644
--- a/opends/build.xml
+++ b/opends/build.xml
@@ -1465,6 +1465,8 @@
     
     <copy file="resource/rpm/excludedFiles" tofile="${build.dir}/rpm/SOURCES/excludedFiles" />
     <replace file="${build.dir}/rpm/SOURCES/excludedFiles" token="# [[ excludedListFiles ]]" value="${excludedRPMFiles}" />
+  	
+    <copy file="resource/rpm/opendj" tofile="${build.dir}/rpm/SOURCES/opendj" />
   
     <rpm specfile="specFile"
          topdir="${build.dir}/rpm"
diff --git a/opends/resource/rpm/files b/opends/resource/rpm/files
index 99aa84a..3fcb7d0 100644
--- a/opends/resource/rpm/files
+++ b/opends/resource/rpm/files
@@ -23,4 +23,5 @@
 #
 #      Copyright 2013 ForgeRock AS
 #
+/etc/init.d/opendj
 # [[ listFiles ]]
\ No newline at end of file
diff --git a/opends/resource/rpm/opendj b/opends/resource/rpm/opendj
new file mode 100755
index 0000000..aedb321
--- /dev/null
+++ b/opends/resource/rpm/opendj
@@ -0,0 +1,161 @@
+#! /bin/sh
+#
+# OPENDJ SERVICE SCRIPT
+#
+
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License").  You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opendj3/legal-notices/CDDLv1_0.txt
+# or http://forgerock.org/license/CDDLv1.0.html.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opendj3/legal-notices/CDDLv1_0.txt.  If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+#      Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#      Copyright 2013 ForgeRock AS
+#
+
+
+# chkconfig: 2345 80 05
+# description: Starts and stops opendj LDAPv3 service.
+#
+### BEGIN INIT INFO
+# Provides:          opendj
+# Required-Start:    
+# Required-Stop:     
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: This is the opendj daemon
+# Description:       OpenDJ is an LDAPv3 compliant directory service, developed for the Java
+#                    platform, providing a high performance, highly available and secure store
+#                    for the identities managed by enterprises. Its easy installation process,
+#                    combined with the power of the Java platform makes OpenDJ one of the
+#                    simplest and fastest directory servers to deploy and manage.
+### END INIT INFO
+
+# Set up source function library depending on the distribution
+if [ -f /etc/redhat-release ]
+then
+    # Redhat
+    . /etc/init.d/functions
+elif [ -f /etc/SuSE-release ]
+then
+    # SuSE
+    . /etc/rc.status  
+else
+    # Other dist.
+    if [ -f /etc/init.d/functions.sh ]
+    then
+        . /etc/init.d/functions.sh
+    fi
+fi
+
+
+# Sets the script vars
+INSTALL_ROOT="/opt/opendj/"
+export INSTALL_ROOT
+DAEMON=opendj
+# Pid file is a symlink to /opt/opendj/log/server.pid
+PIDFILE=/var/run/opendj.pid
+RETVAL=0
+
+# If the daemon is not there, then exit / LSB return code.
+test -x "$INSTALL_ROOT/bin/start-ds" || exit 5
+
+#Starts the server and creates pid file.
+start() {
+    echo -n $"Starting $DAEMON: "
+    # Server is running
+    if [ -e $PIDFILE ]
+    then    
+        echo "> Already running."
+        return 0
+    else 
+        "$INSTALL_ROOT"/bin/start-ds --quiet
+        RETVAL=$?
+        if [ $RETVAL = 0 ]
+        then
+            echo "> SUCCESS."
+        else
+            echo "> FAILURE."
+        fi
+        echo ""
+        return $RETVAL
+    fi
+}
+
+#Stops the server and removes pid file.
+stop() {
+    echo -n $"Stopping $DAEMON: "
+    # Server is running
+    if [ -e $PIDFILE ]
+    then
+        "$INSTALL_ROOT"/bin/stop-ds --quiet
+        RETVAL=$?
+        if [ $RETVAL = 0 ]
+        then
+            echo "> SUCCESS."
+        else
+            echo "> FAILURE."
+        fi
+        echo ""
+        return $RETVAL
+    else         
+        echo "> Already stopped."
+        echo ""
+        return 3
+    fi    
+}
+
+# Displays the service status
+status() {
+    echo -n $"$DAEMON status: "
+    if [ -e $PIDFILE ]
+    then
+        echo "> Running."
+        return 0
+    else             
+        echo "> Stopped."
+        return 3
+    fi
+}
+
+case "$1" in
+    start)
+        start
+    ;;
+    stop)
+        stop
+    ;;
+    restart)
+        stop
+        sleep 5
+        start
+    ;;
+    force-reload)
+        # Not implemented.
+    ;;
+    status)
+        status
+    ;;
+    *)
+        echo $"Usage: /etc/init.d/$DAEMON {start|restart|stop|force-reload|status}"
+        exit 1
+    ;;
+esac
+
+exit $RETVAL
diff --git a/opends/resource/rpm/specFile b/opends/resource/rpm/specFile
index f5465ec..8702a13 100644
--- a/opends/resource/rpm/specFile
+++ b/opends/resource/rpm/specFile
@@ -87,6 +87,10 @@
     rm -r "${RPM_BUILD_ROOT}"%{_prefix}$excludedFiles
 done
 
+# Moves the init.d script.
+mkdir -p "$RPM_BUILD_ROOT"/etc/init.d/
+install -m 755 "$RPM_SOURCE_DIR"/opendj "$RPM_BUILD_ROOT"/etc/init.d/opendj
+
 %clean
 [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"
 
@@ -123,6 +127,10 @@
 # -------------------------
 # Post Install
 %post
+# Registers the service
+/sbin/chkconfig --add opendj
+# Symlink to process ID
+ln -s /opt/opendj/logs/server.pid /var/run/opendj.pid 
 if [ "$1" == "1" ] ; then
     echo "Post Install - initial install"
 else if [ "$1" == "2" ] ; then
@@ -165,6 +173,11 @@
 %preun
 if [ "$1" == "0" ] ; then
     echo "Pre Uninstall - uninstall"
+# Stops the service and delete it.    
+    /etc/init.d/opendj stop >/dev/null 2>&1
+    /sbin/chkconfig --del opendj
+    # Unlink the symlink to the process ID.
+    unlink /var/run/opendj.pid 
 # Only if the instance has been configured    
     if [ -e "%{_prefix}"/config/buildinfo ] && [ "$(ls -A "%{_prefix}"/config/archived-configs)" ]
     then
@@ -196,6 +209,9 @@
 # Changelog
 # =========================
 %changelog
+* Tue Aug 6 2013 ForgeRock
+- Added init.d service script.
+
 * Wed Jul 31 2013 ForgeRock
 - Fixed the doc's section.
 - Target no longer fails when build path contains spaces.

--
Gitblit v1.10.0