summaryrefslogtreecommitdiff
path: root/src/mongo/scripting
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/scripting')
-rw-r--r--src/mongo/scripting/engine.cpp3
-rw-r--r--src/mongo/scripting/engine.h1
-rw-r--r--src/mongo/scripting/mozjs/implscope.cpp38
-rw-r--r--src/mongo/scripting/mozjs/implscope.h11
-rw-r--r--src/mongo/scripting/mozjs/mongo.cpp76
-rw-r--r--src/mongo/scripting/mozjs/mongo.h7
-rw-r--r--src/mongo/scripting/mozjs/proxyscope.cpp4
-rw-r--r--src/mongo/scripting/mozjs/proxyscope.h2
8 files changed, 20 insertions, 122 deletions
diff --git a/src/mongo/scripting/engine.cpp b/src/mongo/scripting/engine.cpp
index cd5e5bcd767..57a5d98f1e6 100644
--- a/src/mongo/scripting/engine.cpp
+++ b/src/mongo/scripting/engine.cpp
@@ -419,9 +419,6 @@ public:
void init(const BSONObj* data) {
_real->init(data);
}
- void localConnectForDbEval(OperationContext* opCtx, const char* dbName) {
- invariant(!"localConnectForDbEval should only be called from dbEval");
- }
void setLocalDB(const string& dbName) {
_real->setLocalDB(dbName);
}
diff --git a/src/mongo/scripting/engine.h b/src/mongo/scripting/engine.h
index 2ed64157e01..34b3351f08b 100644
--- a/src/mongo/scripting/engine.h
+++ b/src/mongo/scripting/engine.h
@@ -63,7 +63,6 @@ public:
init(&o);
}
- virtual void localConnectForDbEval(OperationContext* opCtx, const char* dbName) = 0;
virtual void externalSetup() = 0;
virtual void setLocalDB(const std::string& localDBName) {
_localDBName = localDBName;
diff --git a/src/mongo/scripting/mozjs/implscope.cpp b/src/mongo/scripting/mozjs/implscope.cpp
index f7f6577fe23..660bc7f59b9 100644
--- a/src/mongo/scripting/mozjs/implscope.cpp
+++ b/src/mongo/scripting/mozjs/implscope.cpp
@@ -449,7 +449,6 @@ MozJSImplScope::MozJSImplScope(MozJSScriptEngine* engine)
_minKeyProto(_context),
_mongoExternalProto(_context),
_mongoHelpersProto(_context),
- _mongoLocalProto(_context),
_nativeFunctionProto(_context),
_numberDecimalProto(_context),
_numberIntProto(_context),
@@ -816,48 +815,11 @@ void MozJSImplScope::sleep(Milliseconds ms) {
lk, ms.toSystemDuration(), [this] { return !_killStatus.isOK(); }));
}
-void MozJSImplScope::localConnectForDbEval(OperationContext* opCtx, const char* dbName) {
-
- _runSafely([this, &opCtx, &dbName] {
- if (_connectState == ConnectState::External)
- uasserted(12510, "externalSetup already called, can't call localConnect");
- if (_connectState == ConnectState::Local) {
- if (_localDBName == dbName)
- return;
- uasserted(12511,
- str::stream() << "localConnect previously called with name " << _localDBName);
- }
-
- // NOTE: order is important here. the following methods must be called after
- // the above conditional statements.
-
- _connectState = ConnectState::Local;
- _localDBName = dbName;
-
- loadStored(opCtx);
-
- // install db access functions in the global object
- installDBAccess();
-
- // install the Mongo function object and instantiate the 'db' global
- _mongoLocalProto.install(_global);
- execCoreFiles();
-
- const char* const makeMongo = "const _mongo = new Mongo()";
- exec(makeMongo, "local connect 2", false, true, true, 0);
-
- std::string makeDB = str::stream() << "const db = _mongo.getDB(\"" << dbName << "\");";
- exec(makeDB, "local connect 3", false, true, true, 0);
- });
-}
-
void MozJSImplScope::externalSetup() {
_runSafely([&] {
if (_connectState == ConnectState::External)
return;
- if (_connectState == ConnectState::Local)
- uasserted(12512, "localConnect already called, can't call externalSetup");
// install db access functions in the global object
installDBAccess();
diff --git a/src/mongo/scripting/mozjs/implscope.h b/src/mongo/scripting/mozjs/implscope.h
index 72fe9db3f72..930dae82a2e 100644
--- a/src/mongo/scripting/mozjs/implscope.h
+++ b/src/mongo/scripting/mozjs/implscope.h
@@ -103,8 +103,6 @@ public:
void unregisterOperation() override;
- void localConnectForDbEval(OperationContext* opCtx, const char* dbName) override;
-
void externalSetup() override;
std::string getError() override;
@@ -245,11 +243,6 @@ public:
}
template <typename T>
- typename std::enable_if<std::is_same<T, MongoLocalInfo>::value, WrapType<T>&>::type getProto() {
- return _mongoLocalProto;
- }
-
- template <typename T>
typename std::enable_if<std::is_same<T, NativeFunctionInfo>::value, WrapType<T>&>::type
getProto() {
return _nativeFunctionProto;
@@ -389,12 +382,9 @@ private:
/**
* The connection state of the scope.
- *
- * This is for dbeval and the shell
*/
enum class ConnectState : char {
Not,
- Local,
External,
};
@@ -453,7 +443,6 @@ private:
WrapType<MinKeyInfo> _minKeyProto;
WrapType<MongoExternalInfo> _mongoExternalProto;
WrapType<MongoHelpersInfo> _mongoHelpersProto;
- WrapType<MongoLocalInfo> _mongoLocalProto;
WrapType<NativeFunctionInfo> _nativeFunctionProto;
WrapType<NumberDecimalInfo> _numberDecimalProto;
WrapType<NumberIntInfo> _numberIntProto;
diff --git a/src/mongo/scripting/mozjs/mongo.cpp b/src/mongo/scripting/mozjs/mongo.cpp
index aa08c2a4ad8..22a6a728461 100644
--- a/src/mongo/scripting/mozjs/mongo.cpp
+++ b/src/mongo/scripting/mozjs/mongo.cpp
@@ -62,36 +62,26 @@ namespace mozjs {
const JSFunctionSpec MongoBase::methods[] = {
MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(auth, MongoExternalInfo),
MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(close, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- copyDatabaseWithSCRAM, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(cursorFromId, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- cursorHandleFromId, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(find, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- getClientRPCProtocols, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- getServerRPCProtocols, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(insert, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- isReplicaSetConnection, MongoLocalInfo, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(copyDatabaseWithSCRAM, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(cursorFromId, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(cursorHandleFromId, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(find, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getClientRPCProtocols, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getServerRPCProtocols, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(insert, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(isReplicaSetConnection, MongoExternalInfo),
MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(_markNodeAsFailed, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(logout, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(remove, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(runCommand, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- runCommandWithMetadata, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- setClientRPCProtocols, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(update, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- getMinWireVersion, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- getMaxWireVersion, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(
- isReplicaSetMember, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(isMongos, MongoLocalInfo, MongoExternalInfo),
- MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(_startSession, MongoLocalInfo, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(logout, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(remove, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(runCommand, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(runCommandWithMetadata, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(setClientRPCProtocols, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(update, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getMinWireVersion, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(getMaxWireVersion, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(isReplicaSetMember, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(isMongos, MongoExternalInfo),
+ MONGO_ATTACH_JS_CONSTRAINED_METHOD_NO_PROTO(_startSession, MongoExternalInfo),
JS_FS_END,
};
@@ -156,12 +146,7 @@ void setHiddenMongo(JSContext* cx,
JS::RootedObject newMongo(cx);
auto scope = getScope(cx);
- auto isLocalInfo = scope->getProto<MongoLocalInfo>().instanceOf(args.thisv());
- if (isLocalInfo) {
- scope->getProto<MongoLocalInfo>().newObject(&newMongo);
- } else {
- scope->getProto<MongoExternalInfo>().newObject(&newMongo);
- }
+ scope->getProto<MongoExternalInfo>().newObject(&newMongo);
auto host = resPtr->getServerAddress();
JS_SetPrivate(newMongo,
@@ -715,27 +700,6 @@ void MongoBase::Functions::_markNodeAsFailed::call(JSContext* cx, JS::CallArgs a
args.rval().setUndefined();
}
-void MongoLocalInfo::construct(JSContext* cx, JS::CallArgs args) {
- auto scope = getScope(cx);
-
- if (args.length() != 0)
- uasserted(ErrorCodes::BadValue, "local Mongo constructor takes no args");
-
- auto opCtx = scope->getOpContext();
- auto conn = DBDirectClientFactory::get(opCtx).create(opCtx);
-
- JS::RootedObject thisv(cx);
- scope->getProto<MongoLocalInfo>().newObject(&thisv);
- ObjectWrapper o(cx, thisv);
-
- JS_SetPrivate(thisv, scope->trackedNew<std::shared_ptr<DBClientBase>>(conn.release()));
-
- o.setBoolean(InternedString::slaveOk, false);
- o.setString(InternedString::host, "EMBEDDED");
-
- args.rval().setObjectOrNull(thisv);
-}
-
void MongoExternalInfo::construct(JSContext* cx, JS::CallArgs args) {
auto scope = getScope(cx);
diff --git a/src/mongo/scripting/mozjs/mongo.h b/src/mongo/scripting/mozjs/mongo.h
index 36fbc46a172..2329cc82f1e 100644
--- a/src/mongo/scripting/mozjs/mongo.h
+++ b/src/mongo/scripting/mozjs/mongo.h
@@ -75,13 +75,6 @@ struct MongoBase : public BaseInfo {
};
/**
- * The dbeval variant of "Mongo"
- */
-struct MongoLocalInfo : public MongoBase {
- static void construct(JSContext* cx, JS::CallArgs args);
-};
-
-/**
* The shell variant of "Mongo"
*/
struct MongoExternalInfo : public MongoBase {
diff --git a/src/mongo/scripting/mozjs/proxyscope.cpp b/src/mongo/scripting/mozjs/proxyscope.cpp
index 60e979bac74..4ed77bf7938 100644
--- a/src/mongo/scripting/mozjs/proxyscope.cpp
+++ b/src/mongo/scripting/mozjs/proxyscope.cpp
@@ -95,10 +95,6 @@ void MozJSProxyScope::unregisterOperation() {
run([&] { _implScope->unregisterOperation(); });
}
-void MozJSProxyScope::localConnectForDbEval(OperationContext* opCtx, const char* dbName) {
- run([&] { _implScope->localConnectForDbEval(opCtx, dbName); });
-}
-
void MozJSProxyScope::externalSetup() {
run([&] { _implScope->externalSetup(); });
}
diff --git a/src/mongo/scripting/mozjs/proxyscope.h b/src/mongo/scripting/mozjs/proxyscope.h
index 0b936de20ed..56b792a8583 100644
--- a/src/mongo/scripting/mozjs/proxyscope.h
+++ b/src/mongo/scripting/mozjs/proxyscope.h
@@ -122,8 +122,6 @@ public:
void unregisterOperation() override;
- void localConnectForDbEval(OperationContext* opCtx, const char* dbName) override;
-
void externalSetup() override;
std::string getError() override;