install_ffead-cpp-framework.sh 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. #!/bin/bash
  2. #From https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/C%2B%2B/ulib/setup_json.sh
  3. MAX_THREADS=$(( 3 * `nproc` / 2 ))
  4. WRIT_THREADS=$(( $MAX_THREADS / 3 ))
  5. SERV_THREADS=$(( $MAX_THREADS - $WRIT_THREADS ))
  6. cd $IROOT/ffead-cpp-src/
  7. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  8. rm -rf web/te-benchmark-um
  9. rm -rf web/te-benchmark-um-pq
  10. rm -rf web/te-benchmark-um-mgr
  11. rm -rf web/te-benchmark-um-pq-async
  12. mv ${IROOT}/server.sh script/
  13. mv ${IROOT}/te-benchmark-um web/
  14. mv ${IROOT}/te-benchmark-um-pq web/
  15. mv ${IROOT}/te-benchmark-um-mgr web/
  16. mv ${IROOT}/te-benchmark-um-pq-async web/
  17. sed -i 's|THRD_PSIZ=6|THRD_PSIZ='${SERV_THREADS}'|g' resources/server.prop
  18. sed -i 's|W_THRD_PSIZ=2|W_THRD_PSIZ='${WRIT_THREADS}'|g' resources/server.prop
  19. sed -i 's|ENABLE_CRS=true|ENABLE_CRS=false|g' resources/server.prop
  20. sed -i 's|ENABLE_SEC=true|ENABLE_SEC=false|g' resources/server.prop
  21. sed -i 's|ENABLE_FLT=true|ENABLE_FLT=false|g' resources/server.prop
  22. sed -i 's|ENABLE_CNT=true|ENABLE_CNT=true|g' resources/server.prop
  23. sed -i 's|ENABLE_EXT_CNT=true|ENABLE_EXT_CNT=false|g' resources/server.prop
  24. sed -i 's|ENABLE_CNT_MPG=true|ENABLE_CNT_MPG=false|g' resources/server.prop
  25. sed -i 's|ENABLE_CNT_PTH=true|ENABLE_CNT_PTH=false|g' resources/server.prop
  26. sed -i 's|ENABLE_CNT_EXT=true|ENABLE_CNT_EXT=false|g' resources/server.prop
  27. sed -i 's|ENABLE_CNT_RST=true|ENABLE_CNT_RST=true|g' resources/server.prop
  28. sed -i 's|ENABLE_EXT=true|ENABLE_EXT=true|g' resources/server.prop
  29. sed -i 's|ENABLE_SCR=true|ENABLE_SCR=false|g' resources/server.prop
  30. sed -i 's|ENABLE_SWS=true|ENABLE_SWS=false|g' resources/server.prop
  31. sed -i 's|ENABLE_JOBS=true|ENABLE_JOBS=false|g' resources/server.prop
  32. sed -i 's|LOGGING_ENABLED=true|LOGGING_ENABLED=false|g' resources/server.prop
  33. sed -i 's|EVH_SINGLE=true|EVH_SINGLE=false|g' resources/server.prop
  34. rm -rf web/default web/oauthApp web/flexApp web/markers web/te-benchmark web/peer-server
  35. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdormmongo.xml
  36. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdormmysql.xml
  37. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdormpostgresql.xml
  38. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um-pq/config/sdorm.xml
  39. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um-mgr/config/sdorm.xml
  40. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um-pq-async/config/sdorm.xml
  41. sed -i 's|127.0.0.1|tfb-database|g' resources/sample-odbcinst.ini
  42. sed -i 's|127.0.0.1|tfb-database|g' resources/sample-odbc.ini
  43. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/default)||g' CMakeLists.txt
  44. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/flexApp)||g' CMakeLists.txt
  45. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/oauthApp)||g' CMakeLists.txt
  46. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/markers)||g' CMakeLists.txt
  47. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/te-benchmark)||g' CMakeLists.txt
  48. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/peer-server)||g' CMakeLists.txt
  49. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/default/libdefault${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  50. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/flexApp/libflexApp${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  51. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/oauthApp/liboauthApp${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  52. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/markers/libmarkers${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  53. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/te-benchmark/libte_benchmark${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  54. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/peer-server/libpeer_server${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  55. sed -i 's|web/default/src/autotools/Makefile||g' configure.ac
  56. sed -i 's|web/flexApp/src/autotools/Makefile||g' configure.ac
  57. sed -i 's|web/oauthApp/src/autotools/Makefile||g' configure.ac
  58. sed -i 's|web/markers/src/autotools/Makefile||g' configure.ac
  59. sed -i 's|web/te-benchmark/src/autotools/Makefile||g' configure.ac
  60. sed -i 's|web/peer-server/src/autotools/Makefile||g' configure.ac
  61. #./autogen.sh
  62. #./configure --enable-debug=no --enable-apachemod=yes --enable-nginxmod=yes --enable-mod_sdormmongo=yes --enable-mod_sdormsql=yes --enable-mod_rediscache=yes --enable-mod_memcached=yes CPPFLAGS="$CPPFLAGS -I${IROOT}/include/libmongoc-1.0 -I${IROOT}/include/libbson-1.0 -I${IROOT}/include/" LDFLAGS="$LDFLAGS -L${IROOT} -L${IROOT}/lib"
  63. cmake -DSRV_ALL=on -DCINATRA_INCLUDES=${IROOT}/cinatra/include -DMOD_APACHE=on -DMOD_NGINX=on -DMOD_MEMCACHED=on -DMOD_REDIS=on -DMOD_SDORM_MONGO=on -DDEBUG=${DEBUG} .
  64. cp resources/sample-odbcinst.ini ${IROOT}/odbcinst.ini
  65. cp resources/sample-odbc.ini ${IROOT}/odbc.ini
  66. #Start building for mongodb as the World model is different for SQL use case
  67. cd ${IROOT}/ffead-cpp-src/
  68. cp -f web/te-benchmark-um/sql-src/TeBkUmWorldmongo.h web/te-benchmark-um/include/TeBkUmWorld.h
  69. cp -f web/te-benchmark-um/sql-src/TeBkUmWorldmongo.cpp web/te-benchmark-um/src/TeBkUmWorld.cpp
  70. make install -j${MAX_THREADS}
  71. rm -f /usr/local/lib/libffead-*
  72. rm -f /usr/local/lib/libte_benc*
  73. rm -f /usr/local/lib/libinter.so
  74. rm -f /usr/local/lib/libdinter.so
  75. if [ ! -d "ffead-cpp-5.0-bin" ]
  76. then
  77. exit 1
  78. fi
  79. cd ffead-cpp-5.0-bin
  80. #cache related dockerfiles will add the cache.xml accordingly whenever needed
  81. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  82. ./server.sh &
  83. COUNTER=0
  84. while [ ! -f lib/libinter.so ]
  85. do
  86. sleep 1
  87. COUNTER=$((COUNTER+1))
  88. if [ "$COUNTER" = 120 ]
  89. then
  90. cat logs/jobs.log
  91. echo "ffead-cpp exiting exiting due to failure...."
  92. exit 1
  93. fi
  94. done
  95. COUNTER=0
  96. while [ ! -f lib/libdinter.so ]
  97. do
  98. sleep 1
  99. COUNTER=$((COUNTER+1))
  100. if [ "$COUNTER" = 120 ]
  101. then
  102. cat logs/jobs.log
  103. echo "ffead-cpp exiting exiting due to failure....ddlib"
  104. exit 1
  105. fi
  106. done
  107. echo "ffead-cpp start successful"
  108. sleep 5
  109. cd tests && rm -f test.csv && cp ${IROOT}/ffead-cpp-src/tests/test-te.csv test.csv && chmod +x *.sh && ./runTests.sh
  110. echo "ffead-cpp normal shutdown"
  111. pkill ffead-cpp
  112. cd ${IROOT}/ffead-cpp-src/
  113. cp -rf ffead-cpp-5.0-bin ${IROOT}/ffead-cpp-5.0
  114. rm -rf ffead-cpp-5.0-bin
  115. mv ${IROOT}/nginxfc ${IROOT}/nginx-ffead-mongo
  116. cd ${IROOT}/ffead-cpp-5.0
  117. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  118. chmod 755 *.sh
  119. rm -f *.cntrl
  120. rm -f tmp/*.sess
  121. #Done building for mongodb
  122. #Start building for sql as the World model is different for mongodb use case
  123. cd ${IROOT}/ffead-cpp-src/
  124. cp -f web/te-benchmark-um/sql-src/TeBkUmWorldsql.h web/te-benchmark-um/include/TeBkUmWorld.h
  125. cp -f web/te-benchmark-um/sql-src/TeBkUmWorldsql.cpp web/te-benchmark-um/src/TeBkUmWorld.cpp
  126. make install -j${MAX_THREADS}
  127. if [ ! -d "ffead-cpp-5.0-bin" ]
  128. then
  129. exit 1
  130. fi
  131. cd ffead-cpp-5.0-bin
  132. #cache related dockerfiles will add the cache.xml accordingly whenever needed
  133. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  134. ./server.sh &
  135. COUNTER=0
  136. while [ ! -f lib/libinter.so ]
  137. do
  138. sleep 1
  139. COUNTER=$((COUNTER+1))
  140. if [ "$COUNTER" = 120 ]
  141. then
  142. cat logs/jobs.log
  143. echo "ffead-cpp exiting exiting due to failure...."
  144. exit 1
  145. fi
  146. done
  147. COUNTER=0
  148. while [ ! -f lib/libdinter.so ]
  149. do
  150. sleep 1
  151. COUNTER=$((COUNTER+1))
  152. if [ "$COUNTER" = 120 ]
  153. then
  154. cat logs/jobs.log
  155. echo "ffead-cpp exiting exiting due to failure....ddlib"
  156. exit 1
  157. fi
  158. done
  159. echo "ffead-cpp start successful"
  160. sleep 5
  161. cd tests && rm -f test.csv && cp ${IROOT}/ffead-cpp-src/tests/test-te.csv test.csv && chmod +x *.sh && ./runTests.sh
  162. echo "ffead-cpp normal shutdown"
  163. pkill ffead-cpp
  164. cd ${IROOT}/ffead-cpp-src/
  165. cp -rf ffead-cpp-5.0-bin ${IROOT}/ffead-cpp-5.0-sql
  166. rm -rf ffead-cpp-5.0-bin
  167. mv ${IROOT}/nginxfc ${IROOT}/nginx-ffead-sql
  168. cd ${IROOT}/ffead-cpp-5.0-sql
  169. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  170. chmod 755 *.sh
  171. rm -f *.cntrl
  172. rm -f tmp/*.sess
  173. #Done building for sql