Fix replicaset checking with limited permissions (#11969)
This commit is contained in:
parent
1d916e1c3c
commit
b7884f1feb
|
|
@ -129,7 +129,6 @@ init_replica_set() {
|
||||||
|
|
||||||
if appsmithctl check_replica_set; then
|
if appsmithctl check_replica_set; then
|
||||||
echo "Mongodb cloud Replica Set is enabled"
|
echo "Mongodb cloud Replica Set is enabled"
|
||||||
mongo "$APPSMITH_MONGODB_URI" --eval 'rs.initiate()'
|
|
||||||
else
|
else
|
||||||
echo -e "\033[0;31m********************************************************************\033[0m"
|
echo -e "\033[0;31m********************************************************************\033[0m"
|
||||||
echo -e "\033[0;31m* MongoDB Replica Set is not enabled *\033[0m"
|
echo -e "\033[0;31m* MongoDB Replica Set is not enabled *\033[0m"
|
||||||
|
|
|
||||||
|
|
@ -5,25 +5,18 @@ async function exec() {
|
||||||
useNewUrlParser: true,
|
useNewUrlParser: true,
|
||||||
useUnifiedTopology: true,
|
useUnifiedTopology: true,
|
||||||
});
|
});
|
||||||
checkReplicaSet(client)
|
|
||||||
.then((res) => {
|
let isReplicaSetEnabled = false;
|
||||||
// support replica set
|
|
||||||
if (res === 0) {
|
try {
|
||||||
|
isReplicaSetEnabled = await checkReplicaSet(client);
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error trying to check replicaset", err);
|
||||||
|
} finally {
|
||||||
client.close();
|
client.close();
|
||||||
process.exit(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// not support replica set
|
process.exit(isReplicaSetEnabled ? 0 : 1);
|
||||||
if (res === 1) {
|
|
||||||
client.close();
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
// exit 1 for any other error
|
|
||||||
client.close();
|
|
||||||
process.exit(1);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function checkReplicaSet(client) {
|
async function checkReplicaSet(client) {
|
||||||
|
|
@ -31,17 +24,22 @@ async function checkReplicaSet(client) {
|
||||||
return await new Promise((resolve) => {
|
return await new Promise((resolve) => {
|
||||||
try {
|
try {
|
||||||
client
|
client
|
||||||
|
.db()
|
||||||
|
.collection("user")
|
||||||
.watch()
|
.watch()
|
||||||
.on("change", (change) => console.log(change))
|
.on("change", (change) => console.log(change))
|
||||||
.on("error", () => resolve(1));
|
.on("error", (err) => {
|
||||||
|
console.error("Error even from changeStream", err);
|
||||||
|
resolve(false);
|
||||||
|
});
|
||||||
|
|
||||||
// setTimeout so the error event can kick-in first
|
// setTimeout so the error event can kick-in first
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
resolve(0);
|
resolve(true);
|
||||||
}, 1000);
|
}, 1000);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.stack);
|
console.error("Error thrown when checking replicaset", err);
|
||||||
resolve(1);
|
resolve(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user