diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2020-05-29 15:04:19 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-05-29 19:33:41 +0000 |
commit | 4ec400290afe55c470cb14fbafb79e9f649d7cb1 (patch) | |
tree | 4f027a45b11eebdcc72b026283d86993ec1e1431 /jstests/free_mon | |
parent | 43b1a634e8988254a3e57a492b202c71f87ffdee (diff) | |
download | mongo-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.js | 1 | ||||
-rw-r--r-- | jstests/free_mon/free_mon_rs_resend.js | 1 | ||||
-rw-r--r-- | jstests/free_mon/libs/free_mon.js | 19 | ||||
-rw-r--r-- | jstests/free_mon/libs/mock_http_server.py | 8 |
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': |