Skip to content

Commit 1abc7a0

Browse files
rbrwZak-Kent
authored andcommitted
(PDB-4836) Return false not null for write_db_up?.
1 parent 0a15cd0 commit 1abc7a0

File tree

2 files changed

+47
-28
lines changed

2 files changed

+47
-28
lines changed

src/puppetlabs/puppetdb/status.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
{:maintenance_mode? (maint-mode-fn?)
4545
:queue_depth (utils/nil-on-failure (mq/queue-size))
4646
:read_db_up? (sutils/db-up? (:scf-read-db globals))
47-
:write_db_up? (some identity db-up)
47+
:write_db_up? (boolean (some identity db-up))
4848
:write_dbs_up? (every? identity db-up)
4949
:write_db db-status}))
5050

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,62 @@
11
(ns puppetlabs.puppetdb.status-test
22
(:require [clojure.test :refer :all]
3+
[puppetlabs.puppetdb.scf.storage-utils :as sutils]
34
[puppetlabs.puppetdb.testutils :as tu]
45
[puppetlabs.puppetdb.utils :refer [base-url->str-with-prefix]]
56
[puppetlabs.puppetdb.cheshire :as json]
67
[clj-http.client :as client]
78
[puppetlabs.puppetdb.testutils.services :as svc-utils]))
89

9-
(deftest status-test
10-
(testing "status returns as expected on normal operation"
10+
(deftest normal-status
11+
(svc-utils/with-puppetdb-instance
12+
(let [{:keys [body] :as pdb-resp} (-> svc-utils/*base-url*
13+
(assoc :prefix "/status/v1/services")
14+
base-url->str-with-prefix
15+
client/get)
16+
pdb-status (:puppetdb-status (json/parse-string body true))]
17+
(tu/assert-success! pdb-resp)
18+
(is (= "running" (:state pdb-status)))
19+
(is (= {:maintenance_mode? false
20+
:read_db_up? true
21+
:write_db_up? true
22+
:write_dbs_up? true
23+
:write_db {:default {:up? true}}
24+
:queue_depth 0}
25+
(:status pdb-status))))))
26+
27+
(deftest maintenance-mode-status
28+
(with-redefs [puppetlabs.puppetdb.pdb-routing/maint-mode? (constantly true)]
1129
(svc-utils/with-puppetdb-instance
12-
(let [{:keys [body] :as pdb-resp} (-> svc-utils/*base-url*
13-
(assoc :prefix "/status/v1/services")
14-
base-url->str-with-prefix
15-
client/get)
30+
(let [{:keys [body status]} (-> svc-utils/*base-url*
31+
(assoc :prefix "/status/v1/services")
32+
base-url->str-with-prefix
33+
(client/get {:throw-exceptions false}))
1634
pdb-status (:puppetdb-status (json/parse-string body true))]
17-
(tu/assert-success! pdb-resp)
18-
(is (= "running" (:state pdb-status)))
19-
(is (= {:maintenance_mode? false
35+
(is (= 503 status))
36+
(is (= "starting" (:state pdb-status)))
37+
(is (= {:maintenance_mode? true
2038
:read_db_up? true
2139
:write_db_up? true
2240
:write_dbs_up? true
2341
:write_db {:default {:up? true}}
2442
:queue_depth 0}
25-
(:status pdb-status))))))
43+
(:status pdb-status)))))))
2644

27-
(testing "status returns as expected when in maintenance mode"
28-
(with-redefs [puppetlabs.puppetdb.pdb-routing/maint-mode? (constantly true)]
29-
(svc-utils/with-puppetdb-instance
30-
(let [{:keys [body status]} (-> svc-utils/*base-url*
31-
(assoc :prefix "/status/v1/services")
32-
base-url->str-with-prefix
33-
(client/get {:throw-exceptions false}))
34-
pdb-status (:puppetdb-status (json/parse-string body true))]
35-
(is (= 503 status))
36-
(is (= "starting" (:state pdb-status)))
37-
(is (= {:maintenance_mode? true
38-
:read_db_up? true
39-
:write_db_up? true
40-
:write_dbs_up? true
41-
:write_db {:default {:up? true}}
42-
:queue_depth 0}
43-
(:status pdb-status))))))))
45+
(deftest status-when-databases-down
46+
;; FIXME: better test
47+
(svc-utils/with-puppetdb-instance
48+
(with-redefs [sutils/db-up? (constantly false)]
49+
(let [{:keys [body status]} (-> svc-utils/*base-url*
50+
(assoc :prefix "/status/v1/services")
51+
base-url->str-with-prefix
52+
(client/get {:throw-exceptions false}))
53+
pdb-status (:puppetdb-status (json/parse-string body true))]
54+
(is (= 503 status))
55+
(is (= "error" (:state pdb-status)))
56+
(is (= {:maintenance_mode? false
57+
:read_db_up? false
58+
:write_db_up? false
59+
:write_dbs_up? false
60+
:write_db {:default {:up? false}}
61+
:queue_depth 0}
62+
(:status pdb-status)))))))

0 commit comments

Comments
 (0)