summaryrefslogtreecommitdiff
path: root/jstests/free_mon
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2020-05-29 15:04:19 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-05-29 19:33:41 +0000
commit4ec400290afe55c470cb14fbafb79e9f649d7cb1 (patch)
tree4f027a45b11eebdcc72b026283d86993ec1e1431 /jstests/free_mon
parent43b1a634e8988254a3e57a492b202c71f87ffdee (diff)
downloadmongo-4ec400290afe55c470cb14fbafb79e9f649d7cb1.tar.gz
SERVER-48276 ReplSet Free Monitoring URLs inconsistent
Diffstat (limited to 'jstests/free_mon')
-rw-r--r--jstests/free_mon/free_mon_rs_register.js1
-rw-r--r--jstests/free_mon/free_mon_rs_resend.js1
-rw-r--r--jstests/free_mon/libs/free_mon.js19
-rw-r--r--jstests/free_mon/libs/mock_http_server.py8
4 files changed, 27 insertions, 2 deletions
diff --git a/jstests/free_mon/free_mon_rs_register.js b/jstests/free_mon/free_mon_rs_register.js
index b08b2f85409..5c85dfe1c58 100644
--- a/jstests/free_mon/free_mon_rs_register.js
+++ b/jstests/free_mon/free_mon_rs_register.js
@@ -30,6 +30,7 @@ mock_web.waitRegisters(2);
WaitForRegistration(rst.getPrimary());
WaitForRegistration(rst.getSecondary());
+ValidateFreeMonReplicaSet(rst);
const last_register = mock_web.query("last_register");
print(tojson(last_register));
diff --git a/jstests/free_mon/free_mon_rs_resend.js b/jstests/free_mon/free_mon_rs_resend.js
index 9c87cb5bfcb..bdf7602c871 100644
--- a/jstests/free_mon/free_mon_rs_resend.js
+++ b/jstests/free_mon/free_mon_rs_resend.js
@@ -41,6 +41,7 @@ mock_web_sec.waitRegisters(1);
WaitForFreeMonServerStatusState(rst.getPrimary(), 'enabled');
WaitForFreeMonServerStatusState(rst.getSecondary(), 'enabled');
+ValidateFreeMonReplicaSet(rst);
mock_web.waitRegisters(2);
mock_web_sec.waitRegisters(2);
diff --git a/jstests/free_mon/libs/free_mon.js b/jstests/free_mon/libs/free_mon.js
index ee4eaff3ee0..1ff781cf0f1 100644
--- a/jstests/free_mon/libs/free_mon.js
+++ b/jstests/free_mon/libs/free_mon.js
@@ -308,3 +308,22 @@ function WaitForFreeMonServerStatusState(conn, state) {
"', actual: " + tojson(FreeMonGetServerStatus(conn)),
20 * 1000);
}
+
+/**
+ * Validate Free Monitoring Replica Set consistency
+ * WARNING: Not valid if secondary is started with enableFreeMonitoring since it registers before it
+ * joins the replica set.
+ *
+ * @param {object} rst
+ */
+function ValidateFreeMonReplicaSet(rst) {
+ 'use strict';
+
+ const primary_status = FreeMonGetStatus(rst.getPrimary());
+ const primary_url = primary_status.url;
+ const secondary_status = FreeMonGetStatus(rst.getSecondary());
+ const secondary_url = secondary_status.url;
+ assert.eq(primary_url,
+ secondary_url,
+ `DUMP ${tojson(primary_status)} == ${tojson(secondary_status)}`);
+}
diff --git a/jstests/free_mon/libs/mock_http_server.py b/jstests/free_mon/libs/mock_http_server.py
index c5609c8fe35..5245677b33d 100644
--- a/jstests/free_mon/libs/mock_http_server.py
+++ b/jstests/free_mon/libs/mock_http_server.py
@@ -125,15 +125,19 @@ class FreeMonHandler(http.server.BaseHTTPRequestHandler):
'reportingInterval': bson.int64.Int64(1),
})
else:
+ reg_id = 'mock123_' + str(stats.register_calls)
+ if 'id' in decoded_doc:
+ reg_id = decoded_doc['id']
+
data = bson.BSON.encode({
'version':
bson.int64.Int64(1),
'haltMetricsUploading':
False,
'id':
- 'mock123',
+ reg_id,
'informationalURL':
- 'http://www.example.com/123',
+ 'http://www.example.com/' + reg_id,
'message':
'Welcome to the Mock Free Monitoring Endpoint',
'reportingInterval':