]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: run promtool test without docker on ubuntu/focal
authorKefu Chai <kchai@redhat.com>
Fri, 19 Mar 2021 02:32:16 +0000 (10:32 +0800)
committerAashish Sharma <aashishsharma@localhost.localdomain>
Fri, 23 Apr 2021 11:44:06 +0000 (17:14 +0530)
before this change, we use docker for running promtools offered by
a docker image, but this is not efficient, and quite a few developers
do not want to use docker for running "make check". this change was
introduced by #39246, the reason was that, in Ceph's CI process, we
are using Ubuntu/Bionic for running "make check" jobs, but prometheus
packaged by Bionic does not offer the "test rules" command. so, to
address problem, we are using "dnanexus/promtool:2.9.2" docker image
for verifying monitoring/prometheus/alerts/test_alerts.yml.

after this change, we use prometheus packaged by debian derivatives
instead of pulling a docker image.

* debian/control: add prometheus as a "make check" dependency
* install-deps.sh: partially revert
  53a5816deda0874a3a37e131e9bc22d88bb2a588, as we don't need to
  pull docker or start docker service for using promtool anymore.
* cmake: check if promtool is capable of running "test rules"
  command, bail out if it is not.

see also: https://tracker.ceph.com/issues/49653

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit f381aa8bf0e175940153975fa1534ef0559ecadd)

debian/control
install-deps.sh
src/test/CMakeLists.txt

index e33c41a197b757b2d93061c7eb7c664c81eaef5c..397e3a09d5e0106100ecbbfa95e1043ba7f1478e 100644 (file)
@@ -68,6 +68,7 @@ Build-Depends: cmake (>= 3.5),
                parted,
                patch,
                pkg-config,
+# Make-Check   prometheus,
 # Crimson      protobuf-compiler,
                python3-all-dev,
                python3-cherrypy3,
index 3b79e7dde7c4c65946e7fe342362825b4ee28548..24c198b40a03dec5a329c3f6fed9b7d5a9ce7a04 100755 (executable)
@@ -294,9 +294,6 @@ else
     case "$ID" in
     debian|ubuntu|devuan)
         echo "Using apt-get to install dependencies"
-        $SUDO apt install -y docker.io
-        $SUDO systemctl start docker
-        $SUDO systemctl enable docker
         $SUDO apt-get install -y devscripts equivs
         $SUDO apt-get install -y dpkg-dev
         case "$VERSION" in
@@ -481,7 +478,6 @@ function preload_wheels_for_tox() {
         mv $wip_wheelhouse wheelhouse
         md5sum $require_files $constraint_files > $md5
     fi
-
     popd > /dev/null
 }
 
index 38196b31dc2639d9139b7a6535d7a6a28638edf9..3ae4120bdc95d8beb2e9240a9fecd87929f224b5 100644 (file)
@@ -532,7 +532,23 @@ add_ceph_test(run-cli-tests ${CMAKE_CURRENT_SOURCE_DIR}/run-cli-tests)
 
 add_ceph_test(smoke.sh ${CMAKE_CURRENT_SOURCE_DIR}/smoke.sh)
 
-add_ceph_test(run-promtool-unittests.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-promtool-unittests.sh)
+find_program(PROMTOOL_EXECUTABLE promtool)
+if(PROMTOOL_EXECUTABLE)
+  execute_process(
+    COMMAND ${PROMTOOL_EXECUTABLE} test rules /dev/null
+    RESULT_VARIABLE rc
+    OUTPUT_QUIET)
+  if(NOT rc)
+    add_ceph_test(run-promtool-unittests
+      ${PROMTOOL_EXECUTABLE} test rules ${CMAKE_SOURCE_DIR}/monitoring/prometheus/alerts/test_alerts.yml)
+  else()
+    message(WARNING "'${PROMTOOL_EXECUTABLE} test rules' does not work, "
+      "please use a newer prometheus")
+  endif()
+else()
+  add_ceph_test(run-promtool-unittests
+    {CMAKE_CURRENT_SOURCE_DIR}/run-promtool-unittests.sh)
+endif()
 
 set_property(
   TEST ${tox_tests}