2025-03-17 20:58:26 +01:00

250 lines
7.0 KiB
YAML

description: "Parse logicalSessionTimeoutMinutes from replica set"
uri: "mongodb://a/?replicaSet=rs"
phases: [
# An RSPrimary responds with a non-null logicalSessionTimeoutMinutes
{
responses: [
["a:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: true,
hosts: ["a:27017", "b:27017", "c:27017", "d:27017", "e:27017"],
setName: "rs",
logicalSessionTimeoutMinutes: 3,
minWireVersion: 0,
maxWireVersion: 6
}],
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs"
},
"b:27017": {
type: "Unknown",
},
"c:27017": {
type: "Unknown",
},
"d:27017": {
type: "Unknown",
},
"e:27017": {
type: "Unknown",
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: 3,
setName: "rs",
}
},
# An RSGhost responds without a logicalSessionTimeoutMinutes
{
responses: [
["d:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: false,
isreplicaset: true,
minWireVersion: 0,
maxWireVersion: 6
}],
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs"
},
"b:27017": {
type: "Unknown",
},
"c:27017": {
type: "Unknown",
},
"d:27017": {
type: "RSGhost",
},
"e:27017": {
type: "Unknown",
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: 3,
setName: "rs",
}
},
# An RSArbiter responds without a logicalSessionTimeoutMinutes
{
responses: [
["e:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: false,
hosts: ["a:27017", "b:27017", "c:27017", "d:27017", "e:27017"],
setName: "rs",
arbiterOnly: true,
minWireVersion: 0,
maxWireVersion: 6
}]
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs"
},
"b:27017": {
type: "Unknown",
},
"c:27017": {
type: "Unknown",
},
"d:27017": {
type: "RSGhost",
},
"e:27017": {
type: "RSArbiter",
setName: "rs"
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: 3,
setName: "rs",
}
},
# An RSSecondary responds with a lower logicalSessionTimeoutMinutes
{
responses: [
["b:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: false,
secondary: true,
hosts: ["a:27017", "b:27017", "c:27017", "d:27017", "e:27017"],
setName: "rs",
logicalSessionTimeoutMinutes: 2,
minWireVersion: 0,
maxWireVersion: 6
}],
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs"
},
"b:27017": {
type: "RSSecondary",
setName: "rs"
},
"c:27017": {
type: "Unknown",
},
"d:27017": {
type: "RSGhost",
},
"e:27017": {
type: "RSArbiter",
setName: "rs"
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: 2,
setName: "rs",
}
},
# An RSOther responds with an even lower logicalSessionTimeoutMinutes, which is ignored
{
responses: [
["c:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: false,
setName: "rs",
hidden: true,
logicalSessionTimeoutMinutes: 1,
minWireVersion: 0,
maxWireVersion: 6
}],
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs"
},
"b:27017": {
type: "RSSecondary",
setName: "rs"
},
"c:27017": {
type: "RSOther",
setName: "rs"
},
"d:27017": {
type: "RSGhost",
},
"e:27017": {
type: "RSArbiter",
setName: "rs"
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: 2,
setName: "rs",
}
},
# Now the RSSecondary responds with no logicalSessionTimeoutMinutes
{
responses: [
["b:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: false,
secondary: true,
hosts: ["a:27017", "b:27017", "c:27017", "d:27017", "e:27017"],
setName: "rs",
logicalSessionTimeoutMinutes: null,
minWireVersion: 0,
maxWireVersion: 6
}]
],
# Sessions aren't supported now
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs"
},
"b:27017": {
type: "RSSecondary",
setName: "rs"
},
"c:27017": {
type: "RSOther",
setName: "rs"
},
"d:27017": {
type: "RSGhost",
},
"e:27017": {
type: "RSArbiter",
setName: "rs"
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: null,
setName: "rs",
}
}
]