You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by ma...@apache.org on 2014/10/06 16:06:56 UTC
git commit: BIGTOP-1267. Add ZooKeeper REST server
Repository: bigtop
Updated Branches:
refs/heads/master 282f2a94c -> abd4db2e8
BIGTOP-1267. Add ZooKeeper REST server
Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo
Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/abd4db2e
Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/abd4db2e
Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/abd4db2e
Branch: refs/heads/master
Commit: abd4db2e8680073368abb1eb9b570577d4a02655
Parents: 282f2a9
Author: Sean Mackrory <ma...@apache.org>
Authored: Mon Oct 6 08:02:39 2014 -0600
Committer: Sean Mackrory <ma...@apache.org>
Committed: Mon Oct 6 08:04:29 2014 -0600
----------------------------------------------------------------------
.../src/common/zookeeper/ZOOKEEPER-1911.patch | 27 ++++++++
.../src/common/zookeeper/do-component-build | 8 ++-
.../src/common/zookeeper/install_zookeeper.sh | 10 +++
.../src/common/zookeeper/zookeeper-rest.svc | 68 ++++++++++++++++++++
bigtop-packages/src/deb/zookeeper/control | 7 ++
bigtop-packages/src/deb/zookeeper/rules | 2 +
.../src/deb/zookeeper/zookeeper-rest.postinst | 26 ++++++++
.../src/rpm/zookeeper/SPECS/zookeeper.spec | 41 +++++++++++-
8 files changed, 186 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/common/zookeeper/ZOOKEEPER-1911.patch
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/common/zookeeper/ZOOKEEPER-1911.patch b/bigtop-packages/src/common/zookeeper/ZOOKEEPER-1911.patch
new file mode 100644
index 0000000..e4aceb0
--- /dev/null
+++ b/bigtop-packages/src/common/zookeeper/ZOOKEEPER-1911.patch
@@ -0,0 +1,27 @@
+diff --git src/contrib/rest/build.xml src/contrib/rest/build.xml
+index 649dff7..fb628bc 100644
+--- src/contrib/rest/build.xml
++++ src/contrib/rest/build.xml
+@@ -48,6 +48,22 @@
+ </sequential>
+ </macrodef>
+
++ <target name="package" depends="jar" unless="skip.contrib">
++ <echo message="contrib: ${name}"/>
++ <mkdir dir="${dist.dir}${package.share}/contrib/${name}"/>
++ <copy todir="${dist.dir}${package.share}/contrib/${name}">
++ <fileset dir="${build.dir}">
++ <include name="zookeeper-${version}-${name}.jar" />
++ </fileset>
++ </copy>
++ <copy todir="${dist.dir}${package.share}/contrib/${name}/lib">
++ <fileset dir="${build.dir}/lib" />
++ </copy>
++ <copy todir="${dist.dir}${package.share}/contrib/${name}/conf">
++ <fileset dir="conf" />
++ </copy>
++ </target>
++
+ <target name="setjarname">
+ <property name="jarname"
+ value="${build.dir}/zookeeper-${version}-${name}.jar"/>
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/common/zookeeper/do-component-build
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/common/zookeeper/do-component-build b/bigtop-packages/src/common/zookeeper/do-component-build
index 1529c84..85abf3d 100644
--- a/bigtop-packages/src/common/zookeeper/do-component-build
+++ b/bigtop-packages/src/common/zookeeper/do-component-build
@@ -18,8 +18,14 @@ set -ex
. `dirname ${0}`/bigtop.bom
+# FIXME: Remove this file for ZooKeeper 3.4.7, 3.5.0 or later
+patch -p0 < ZOOKEEPER-1911.patch
+
+ANT_OPTS="-Dversion=$ZOOKEEPER_VERSION -f build.xml $@"
sed -i.orig -e 's#test-jar,api-report#test-jar#g' build.xml
-ant -Dversion=$ZOOKEEPER_VERSION -f build.xml package "$@"
+ant compile ${ANT_OPTS}
+(cd src/contrib/rest && ant jar ${ANT_OPTS})
+ant package ${ANT_OPTS}
mvn install:install-file -DcreateChecksum=true -DgroupId=org.apache.zookeeper -DartifactId=zookeeper -Dversion=$ZOOKEEPER_VERSION -Dpackaging=jar -Dfile=build/zookeeper-$ZOOKEEPER_VERSION.jar
mvn install:install-file -DcreateChecksum=true -DgroupId=org.apache.zookeeper -DartifactId=zookeeper -Dversion=$ZOOKEEPER_VERSION -Dclassifier=tests -Dpackaging=jar -Dfile=build/zookeeper-$ZOOKEEPER_VERSION-test.jar
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/common/zookeeper/install_zookeeper.sh b/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
index 8bd5073..e0edbd8 100755
--- a/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
+++ b/bigtop-packages/src/common/zookeeper/install_zookeeper.sh
@@ -97,6 +97,10 @@ CONF_DIST_DIR=/etc/zookeeper/conf.dist/
install -d -m 0755 $PREFIX/$LIB_DIR/
rm -f $BUILD_DIR/zookeeper-*-javadoc.jar $BUILD_DIR/zookeeper-*-bin.jar $BUILD_DIR/zookeeper-*-sources.jar $BUILD_DIR/zookeeper-*-test.jar
cp $BUILD_DIR/zookeeper*.jar $PREFIX/$LIB_DIR/
+install -d -m 0755 ${PREFIX}/${LIB_DIR}/contrib
+for module in rest; do
+ cp -r ${BUILD_DIR}/contrib/${module} ${PREFIX}/${LIB_DIR}/contrib/
+done
# Make a symlink of zookeeper.jar to zookeeper-version.jar
for x in $PREFIX/$LIB_DIR/zookeeper*jar ; do
@@ -113,6 +117,12 @@ install -d -m 0755 $PREFIX/$CONF_DIST_DIR
cp zoo.cfg $BUILD_DIR/conf/* $PREFIX/$CONF_DIST_DIR/
ln -s $CONF_DIR $PREFIX/$LIB_DIR/conf
+install -d -m 0755 ${PREFIX}/${LIB_DIR}/contrib
+for module in rest; do
+ cp -r ${BUILD_DIR}/contrib/${module} ${PREFIX}/${LIB_DIR}/contrib/
+ mv ${PREFIX}/${LIB_DIR}/contrib/${module}/conf ${PREFIX}/${CONF_DIST_DIR}/${module}
+done
+
# Copy in the /usr/bin/zookeeper-server wrapper
install -d -m 0755 $PREFIX/$LIB_DIR/bin
# FIXME: a workaround in preparation for Zookeeper 3.5
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/common/zookeeper/zookeeper-rest.svc
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/common/zookeeper/zookeeper-rest.svc b/bigtop-packages/src/common/zookeeper/zookeeper-rest.svc
new file mode 100644
index 0000000..22dbf01
--- /dev/null
+++ b/bigtop-packages/src/common/zookeeper/zookeeper-rest.svc
@@ -0,0 +1,68 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+DAEMON="zookeeper-rest"
+DESC="ZooKeeper REST Server"
+SVC_USER="${ZOOKEEPER_USER:-zookeeper}"
+WORKING_DIR="/var/run/zookeeper"
+DAEMON_FLAGS=""
+CONF_DIR="/etc/zookeeper/conf/rest"
+PIDFILE="/var/run/zookeeper/zookeeper-rest-$SVC_USER.pid"
+
+generate_start() {
+
+cat <<'__EOT__'
+start() {
+ log_success_msg "Starting ${DESC}: "
+
+ ZOOKEEPER_HOME=${ZOOKEEPER_HOME:-/usr/lib/zookeeper}
+ CLASSPATH="${ZOOKEEPER_HOME}/contrib/rest/*:${ZOOKEEPER_HOME}/contrib/rest/lib/*"
+ CLASSPATH="${ZOOKEEPER_HOME}/*:${ZOOKEEPER_HOME}/lib/*:${CONF_DIR}:${CLASSPATH}"
+ CMD="${JAVA_HOME}/bin/java -cp ${CLASSPATH} org.apache.zookeeper.server.jersey.RestMain"
+
+ LOG_FILE=/var/log/zookeeper/zookeeper-rest.out
+
+ su -s /bin/bash -c "nohup ${CMD} > $LOG_FILE 2>&1 < /dev/null &"'echo $! '"> $PIDFILE" $SVC_USER
+
+ [ $RETVAL -eq $RETVAL_SUCCESS ] && touch $LOCKFILE
+ return $RETVAL
+}
+__EOT__
+
+}
+
+generate_stop() {
+
+cat <<'__EOT__'
+stop() {
+ log_success_msg "Stopping ${DESC}: "
+ checkstatusofproc
+ if [ "$?" = "$STATUS_RUNNING" ] ; then
+ if [ -f ${PIDFILE} ]; then
+ PID=`cat ${PIDFILE}`
+ if [ -n ${PID} ]; then
+ kill -KILL ${PID} &>/dev/null
+ fi
+ fi
+ RETVAL=$?
+ else
+ RETVAL=$RETVAL_SUCCESS
+ fi
+
+ [ $RETVAL -eq $RETVAL_SUCCESS ] && rm -f $LOCKFILE $PIDFILE
+}
+__EOT__
+
+}
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/deb/zookeeper/control
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/deb/zookeeper/control b/bigtop-packages/src/deb/zookeeper/control
index 6ec811c..5fd7171 100755
--- a/bigtop-packages/src/deb/zookeeper/control
+++ b/bigtop-packages/src/deb/zookeeper/control
@@ -31,3 +31,10 @@ Architecture: all
Depends: zookeeper (= ${source:Version})
Description: The Hadoop Zookeeper server
This package starts the zookeeper server on startup
+
+Package: zookeeper-rest
+Architecture: all
+Depends: zookeeper (= ${source:Version})
+Description: The Zookeeper REST server
+ This package starts the zookeeper REST server on startup
+
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/deb/zookeeper/rules
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/deb/zookeeper/rules b/bigtop-packages/src/deb/zookeeper/rules
index 70ec4c4..532b9ec 100755
--- a/bigtop-packages/src/deb/zookeeper/rules
+++ b/bigtop-packages/src/deb/zookeeper/rules
@@ -29,6 +29,7 @@ zookeeper_pkg_name=zookeeper
dh $@
override_dh_auto_build:
+ cp debian/ZOOKEEPER-1911.patch ./
bash debian/do-component-build -Divy.home=${HOME}/.ivy2
mkdir -p debian/tmp
tar cf - --exclude=debian/\* . | (cd debian/tmp && tar xf -)
@@ -38,4 +39,5 @@ override_dh_auto_install:
bash -x debian/install_zookeeper.sh \
--build-dir=build/zookeeper-${ZOOKEEPER_BASE_VERSION} \
--prefix=debian/$(zookeeper_pkg_name)
+ bash debian/init.d.tmpl debian/zookeeper-rest.svc deb debian/zookeeper-rest/etc/init.d/zookeeper-rest
dh_install -i
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/deb/zookeeper/zookeeper-rest.postinst
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/deb/zookeeper/zookeeper-rest.postinst b/bigtop-packages/src/deb/zookeeper/zookeeper-rest.postinst
new file mode 100644
index 0000000..5798929
--- /dev/null
+++ b/bigtop-packages/src/deb/zookeeper/zookeeper-rest.postinst
@@ -0,0 +1,26 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+if [ -x "/etc/init.d/zookeeper-rest" ]; then
+ update-rc.d zookeeper-rest defaults >/dev/null
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d zookeeper-rest start || :
+ else
+ /etc/init.d/zookeeper-rest start || :
+ fi
+fi
+
http://git-wip-us.apache.org/repos/asf/bigtop/blob/abd4db2e/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
----------------------------------------------------------------------
diff --git a/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec b/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
index 44e834a..3ba6dd7 100644
--- a/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
+++ b/bigtop-packages/src/rpm/zookeeper/SPECS/zookeeper.spec
@@ -19,6 +19,7 @@
%define run_zookeeper /var/run/%{name}
%define vlb_zookeeper /var/lib/%{name}
%define svc_zookeeper %{name}-server
+%define svc_zookeeper_rest %{name}-rest
%define man_dir %{_mandir}
%if %{?suse_version:1}0
@@ -75,6 +76,9 @@ Source4: zookeeper-server.sh.suse
Source5: zookeeper.1
Source6: zoo.cfg
Source7: zookeeper.default
+Source8: init.d.tmpl
+Source9: zookeeper-rest.svc
+Source10: ZOOKEEPER-1911.patch
BuildArch: noarch
BuildRequires: autoconf, automake
Requires(pre): coreutils, /usr/sbin/groupadd, /usr/sbin/useradd
@@ -122,10 +126,22 @@ Requires: redhat-lsb
%description server
This package starts the zookeeper server on startup
+%package rest
+Summary: ZooKeeper REST Server
+Group: System/Daemons
+Requires: %{name} = %{version}-%{release}
+Requires(pre): %{name} = %{version}-%{release}
+Requires(post): %{chkconfig_dep}
+Requires(preun): %{service_dep}, %{chkconfig_dep}
+
+%description rest
+This package starts the zookeeper REST server on startup
+
%prep
%setup -n %{name}-%{zookeeper_base_version}
%build
+cp $RPM_SOURCE_DIR/ZOOKEEPER-1911.patch ./
bash %{SOURCE1}
%install
@@ -147,6 +163,9 @@ init_file=$RPM_BUILD_ROOT/%{initd_dir}/%{svc_zookeeper}
%__cp $orig_init_file $init_file
chmod 755 $init_file
+# Install Zookeeper REST server init script
+init_file=$RPM_BUILD_ROOT/%{initd_dir}/zookeeper-rest
+bash $RPM_SOURCE_DIR/init.d.tmpl $RPM_SOURCE_DIR/zookeeper-rest.svc rpm $init_file
%pre
getent group zookeeper >/dev/null || groupadd -r zookeeper
@@ -179,8 +198,19 @@ if [ $1 -ge 1 ]; then
service %{svc_zookeeper} condrestart > /dev/null 2>&1
fi
-%files server
- %attr(0755,root,root) %{initd_dir}/%{svc_zookeeper}
+%post rest
+ chkconfig --add %{svc_zookeeper_rest}
+
+%preun rest
+if [ $1 = 0 ] ; then
+ service %{svc_zookeeper_rest} stop > /dev/null 2>&1
+ chkconfig --del %{svc_zookeeper_rest}
+fi
+
+%postun rest
+if [ $1 -ge 1 ]; then
+ service %{svc_zookeeper_rest} condrestart > /dev/null 2>&1
+fi
#######################
#### FILES SECTION ####
@@ -196,3 +226,10 @@ fi
%{bin_zookeeper}/zookeeper-server-cleanup
%doc %{doc_zookeeper}
%{man_dir}/man1/zookeeper.1.*
+
+%files server
+%attr(0755,root,root) %{initd_dir}/%{svc_zookeeper}
+
+%files rest
+%attr(0755,root,root) %{initd_dir}/%{svc_zookeeper_rest}
+