|
7 | 7 |
|
8 | 8 | var checkOplog = function(mainConn, priConn) { |
9 | 9 | var lsid = UUID(); |
| 10 | + var uid = function() { |
| 11 | + var user = mainConn.getDB("admin") |
| 12 | + .runCommand({connectionStatus: 1}) |
| 13 | + .authInfo.authenticatedUsers[0]; |
| 14 | + |
| 15 | + if (user) { |
| 16 | + return computeSHA256Block(user.user + "@" + user.db); |
| 17 | + } else { |
| 18 | + return computeSHA256Block(""); |
| 19 | + } |
| 20 | + }(); |
10 | 21 |
|
11 | 22 | //////////////////////////////////////////////////////////////////////// |
12 | 23 | // Test insert command |
|
15 | 26 | insert: 'user', |
16 | 27 | documents: [{_id: 10}, {_id: 30}], |
17 | 28 | ordered: false, |
18 | | - lsid: {id: {uuid: lsid}}, |
| 29 | + lsid: {id: lsid}, |
19 | 30 | txnNumber: NumberLong(34), |
20 | 31 | }; |
21 | 32 |
|
|
26 | 37 | var firstDoc = oplog.findOne({ns: 'test.user', 'o._id': 10}); |
27 | 38 | assert(firstDoc != null); |
28 | 39 | assert(firstDoc.lsid != null); |
29 | | - assert.eq(lsid, firstDoc.lsid.id.uuid); |
| 40 | + assert.eq(lsid, firstDoc.lsid.id); |
| 41 | + assert.eq(uid, firstDoc.lsid.uid); |
30 | 42 | assert.eq(NumberLong(34), firstDoc.txnNumber); |
31 | 43 | assert.eq(0, firstDoc.stmtId); |
32 | 44 |
|
33 | 45 | var secondDoc = oplog.findOne({ns: 'test.user', 'o._id': 30}); |
34 | 46 | assert(secondDoc != null); |
35 | 47 | assert(secondDoc.lsid != null); |
36 | | - assert.eq(lsid, secondDoc.lsid.id.uuid); |
| 48 | + assert.eq(lsid, secondDoc.lsid.id); |
| 49 | + assert.eq(uid, firstDoc.lsid.uid); |
37 | 50 | assert.eq(NumberLong(34), secondDoc.txnNumber); |
38 | 51 | assert.eq(1, secondDoc.stmtId); |
39 | 52 |
|
|
48 | 61 | {q: {_id: 30}, u: {z: 1}} // replacement |
49 | 62 | ], |
50 | 63 | ordered: false, |
51 | | - lsid: {id: {uuid: lsid}}, |
| 64 | + lsid: {id: lsid}, |
52 | 65 | txnNumber: NumberLong(35), |
53 | 66 | }; |
54 | 67 |
|
|
57 | 70 | firstDoc = oplog.findOne({ns: 'test.user', op: 'u', 'o2._id': 10}); |
58 | 71 | assert(firstDoc != null); |
59 | 72 | assert(firstDoc.lsid != null); |
60 | | - assert.eq(lsid, firstDoc.lsid.id.uuid); |
| 73 | + assert.eq(lsid, firstDoc.lsid.id); |
| 74 | + assert.eq(uid, firstDoc.lsid.uid); |
61 | 75 | assert.eq(NumberLong(35), firstDoc.txnNumber); |
62 | 76 | assert.eq(0, firstDoc.stmtId); |
63 | 77 |
|
64 | 78 | secondDoc = oplog.findOne({ns: 'test.user', op: 'i', 'o._id': 20}); |
65 | 79 | assert(secondDoc != null); |
66 | 80 | assert(secondDoc.lsid != null); |
67 | | - assert.eq(lsid, secondDoc.lsid.id.uuid); |
| 81 | + assert.eq(lsid, secondDoc.lsid.id); |
| 82 | + assert.eq(uid, firstDoc.lsid.uid); |
68 | 83 | assert.eq(NumberLong(35), secondDoc.txnNumber); |
69 | 84 | assert.eq(1, secondDoc.stmtId); |
70 | 85 |
|
71 | 86 | var thirdDoc = oplog.findOne({ns: 'test.user', op: 'u', 'o2._id': 30}); |
72 | 87 | assert(thirdDoc != null); |
73 | 88 | assert(thirdDoc.lsid != null); |
74 | | - assert.eq(lsid, thirdDoc.lsid.id.uuid); |
| 89 | + assert.eq(lsid, thirdDoc.lsid.id); |
| 90 | + assert.eq(uid, firstDoc.lsid.uid); |
75 | 91 | assert.eq(NumberLong(35), thirdDoc.txnNumber); |
76 | 92 | assert.eq(2, thirdDoc.stmtId); |
77 | 93 |
|
|
82 | 98 | delete: 'user', |
83 | 99 | deletes: [{q: {_id: 10}, limit: 1}, {q: {_id: 20}, limit: 1}], |
84 | 100 | ordered: false, |
85 | | - lsid: {id: {uuid: lsid}}, |
| 101 | + lsid: {id: lsid}, |
86 | 102 | txnNumber: NumberLong(36), |
87 | 103 | }; |
88 | 104 |
|
|
91 | 107 | firstDoc = oplog.findOne({ns: 'test.user', op: 'd', 'o._id': 10}); |
92 | 108 | assert(firstDoc != null); |
93 | 109 | assert(firstDoc.lsid != null); |
94 | | - assert.eq(lsid, firstDoc.lsid.id.uuid); |
| 110 | + assert.eq(lsid, firstDoc.lsid.id); |
| 111 | + assert.eq(uid, firstDoc.lsid.uid); |
95 | 112 | assert.eq(NumberLong(36), firstDoc.txnNumber); |
96 | 113 | assert.eq(0, firstDoc.stmtId); |
97 | 114 |
|
98 | 115 | secondDoc = oplog.findOne({ns: 'test.user', op: 'd', 'o._id': 20}); |
99 | 116 | assert(secondDoc != null); |
100 | 117 | assert(secondDoc.lsid != null); |
101 | | - assert.eq(lsid, secondDoc.lsid.id.uuid); |
| 118 | + assert.eq(lsid, secondDoc.lsid.id); |
| 119 | + assert.eq(uid, firstDoc.lsid.uid); |
102 | 120 | assert.eq(NumberLong(36), secondDoc.txnNumber); |
103 | 121 | assert.eq(1, secondDoc.stmtId); |
104 | 122 | }; |
|
0 commit comments