diff --git a/README_packaging.md b/README_packaging.md
index b290dd9f93d..9c87e4cd483 100644
--- a/README_packaging.md
+++ b/README_packaging.md
@@ -19,11 +19,11 @@ yum install python-setuptools
yum install openssl openssl-devel
```
-On Ubuntu:
+On Ubuntu (in case of 16.4+):
```
-apt-get install cppunit
-apt-get install python-setuptools
+apt-get install libcppunit-dev
+apt-get install python-setuptools python2.7-dev
apt-get install openssl libssl-dev
```
diff --git a/pom.xml b/pom.xml
index 41cbd62d094..223c7342306 100755
--- a/pom.xml
+++ b/pom.xml
@@ -816,6 +816,7 @@
zookeeper-contrib-fatjar/src/main/resources/mainClasses
zookeeper-contrib-zkperl/Changes
zookeeper-contrib-zkperl/MANIFEST
+ zookeeper-contrib-zkpython/src/test/zoo.cfg
zookeeper-contrib-loggraph/src/main/resources/webapp/org/apache/zookeeper/graph/resources/*
src/main/resources/webapp/org/apache/zookeeper/graph/resources/*
src/main/java/com/nitido/utils/toaster/Toaster.java
diff --git a/zookeeper-contrib/build-contrib.xml b/zookeeper-contrib/build-contrib.xml
index 70bb8644f52..34f3c9b03b3 100644
--- a/zookeeper-contrib/build-contrib.xml
+++ b/zookeeper-contrib/build-contrib.xml
@@ -32,7 +32,7 @@
-
+
@@ -47,7 +47,7 @@
-
+
@@ -179,7 +179,7 @@
-
+
@@ -190,7 +190,7 @@
-
diff --git a/zookeeper-contrib/ivysettings.xml b/zookeeper-contrib/ivysettings.xml
new file mode 100644
index 00000000000..15c98b6ec4e
--- /dev/null
+++ b/zookeeper-contrib/ivysettings.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/zookeeper-contrib/zookeeper-contrib-zkpython/README b/zookeeper-contrib/zookeeper-contrib-zkpython/README
index 89d99989756..56154618356 100644
--- a/zookeeper-contrib/zookeeper-contrib-zkpython/README
+++ b/zookeeper-contrib/zookeeper-contrib-zkpython/README
@@ -7,14 +7,18 @@ DEPENDENCIES:
This has only been tested against SVN (i.e. 3.2.0 in development) but should work against 3.1.1.
-You will need the Python development headers installed to build the module - on many package-management systems, these can be found in python-devel.
+You will need the Python development headers installed to build the module - on many package-management systems, these can be found in python-devel. (On ubuntu 18.4, install python2.7 and python2.7-dev.)
Python >= 2.6 is required. We have tested against 2.6. We have not tested against 3.x.
+E.g. setting up tpyhon and python devel on ubuntu 18.4:
+sudo apt-get install python2.7 python2.7-dev
+sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
+
BUILD AND INSTALL:
-------------------
-To install, make sure that the C client has been built and that the libraries are installed in /usr/local/lib (or change this directory in setup.py). Then run:
+To install, make sure that the C client has been built (use `mvn clean install -DskipTests -Pfull-build` in the root folder of zookeeper) or that the zookeeper C libraries are installed in /usr/local/lib (or change this directory in setup.py). Then run:
ant install
diff --git a/zookeeper-contrib/zookeeper-contrib-zkpython/build.xml b/zookeeper-contrib/zookeeper-contrib-zkpython/build.xml
index c229deec654..99f634abe81 100644
--- a/zookeeper-contrib/zookeeper-contrib-zkpython/build.xml
+++ b/zookeeper-contrib/zookeeper-contrib-zkpython/build.xml
@@ -20,10 +20,10 @@
-
+
/dev/null
+if [ $? -eq 0 ]
+then
+ pid=`lsof -i :22182 | grep LISTEN | awk '{print $2}'`
+ if [ -n "$pid" ]
then
- rm -rf /tmp/zkdata
- else
- rm -rf ${base_dir}/build/tmp
+ kill -9 $pid
fi
fi
-if [ "x${base_dir}" == "x" ]
+
+
+
+if [ "x$1" == "xstartClean" ]
then
-zk_base="../../"
-else
-zk_base="${base_dir}"
+ rm -rf ${WORK_DIR}
fi
-CLASSPATH="$CLASSPATH:${zk_base}/build/classes"
+
+
+CLASSPATH="$CLASSPATH:${PROJECT_ROOT}/zookeeper-server/target/classes"
CLASSPATH="$CLASSPATH:${zk_base}/conf"
-for i in "${zk_base}"/build/lib/*.jar
+for i in "${PROJECT_ROOT}"/zookeeper-server/target/lib/*.jar
do
CLASSPATH="$CLASSPATH:$i"
done
-for i in "${zk_base}"/zookeeper-server/src/main/resource/lib/*.jar
+for i in "${PROJECT_ROOT}"/zookeeper-server/src/main/resource/lib/*.jar
do
CLASSPATH="$CLASSPATH:$i"
done
@@ -57,15 +77,20 @@ done
case $1 in
start|startClean)
- if [ "x${base_dir}" == "x" ]
- then
- mkdir -p /tmp/zkdata
- java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 /tmp/zkdata &> /tmp/zk.log &
- else
- mkdir -p ${base_dir}/build/tmp/zkdata
- java -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain 22182 ${base_dir}/build/tmp/zkdata &> ${base_dir}/build/tmp/zk.log &
- fi
- sleep 5
+ mkdir -p ${WORK_DIR}/zkdata
+
+ rm -rf ${WORK_DIR}/ssl
+ mkdir -p ${WORK_DIR}/ssl
+ cp ${PROJECT_ROOT}/zookeeper-client/zookeeper-client-c/ssl/gencerts.sh ${WORK_DIR}/ssl/
+ cd ${WORK_DIR}/ssl/
+ ./gencerts.sh
+ cd -
+
+ sed "s#WORKDIR#${WORK_DIR}#g" ${TEST_DIR}/zoo.cfg > "${WORK_DIR}/zoo.cfg"
+ java -Dzookeeper.extendedTypesEnabled=true -Dznode.container.checkIntervalMs=100 -cp $CLASSPATH org.apache.zookeeper.server.ZooKeeperServerMain "${WORK_DIR}/zoo.cfg" &> "${WORK_DIR}/zoo.log" &
+ pid=$!
+ echo -n $! > ${WORK_DIR}/../zk.pid
+ sleep 5
;;
stop)
# Already killed above
diff --git a/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zktestbase.py b/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zktestbase.py
index 8229418e3e7..cafbec56669 100755
--- a/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zktestbase.py
+++ b/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zktestbase.py
@@ -22,10 +22,13 @@
class TestBase(unittest.TestCase):
SERVER_PORT = 22182
-
+ SERVER_SSL_PORT = 22183
+
def __init__(self,methodName='runTest'):
unittest.TestCase.__init__(self,methodName)
self.host = "localhost:%d" % self.SERVER_PORT
+ self.sslhost = "localhost:%d" % self.SERVER_SSL_PORT
+ self.sslcert = "./target/zkpython_tests/ssl/server.crt,./target/zkpython_tests/ssl/client.crt,./target/zkpython_tests/ssl/clientkey.pem,password"
self.connected = False
self.handle = -1
logdir = os.environ.get("ZKPY_LOG_DIR")
diff --git a/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zoo.cfg b/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zoo.cfg
new file mode 100644
index 00000000000..2d4fc31d9fd
--- /dev/null
+++ b/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zoo.cfg
@@ -0,0 +1,14 @@
+tickTime=500
+initLimit=10
+syncLimit=5
+dataDir=WORKDIR/zkdata
+maxClientCnxns=200
+
+clientPort=22182
+secureClientPort=22183
+serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory
+ssl.keyStore.location=WORKDIR/ssl/server.jks
+ssl.keyStore.password=password
+ssl.trustStore.location=WORKDIR/ssl/servertrust.jks
+ssl.trustStore.password=password
+