File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -368,7 +368,7 @@ def _build_cmd(
368368 else :
369369 cmd_template = (
370370 "{mongo} --quiet {auth_options} {host}:{port}/{auth_db} <<\\ EOF\n "
371- "db=db.getSiblingDB('{db_name}');{slave_ok}printjson( {sql}) \n EOF"
371+ "db=db.getSiblingDB('{db_name}');{slave_ok}{sql}\n EOF"
372372 )
373373 # 长度不超限直接mongo shell,无需临时文件
374374 common_params ["sql" ] = sql
@@ -397,7 +397,7 @@ def get_slave(self):
397397
398398 sql = """var host=""; rs.status().members.forEach(function(item) {i=1; if (item.stateStr =="SECONDARY") \
399399 {host=item.name } }); print(host);"""
400- slave_msg = self .exec_cmd (sql )
400+ slave_msg = self .exec_cmd (sql , db_name = self . db_name )
401401 # 如果是阿里云的云mongodb,会获取不到备节点真实的ip和端口,那就干脆不获取,直接用主节点来执行sql
402402 # 如果是自建mongodb,获取到备节点的ip是192.168.1.33:27019这样的值;但如果是阿里云mongodb,获取到的备节点ip是SECONDARY、hiddenNode这样的值
403403 # 所以,为了使代码更加通用,通过有无冒号来判断自建Mongod还是阿里云mongdb;没有冒号就判定为阿里云mongodb,直接返回false;
Original file line number Diff line number Diff line change @@ -48,7 +48,7 @@ def test_build_cmd_without_load(mongo_engine):
4848 # Expected command template
4949 expected_cmd = (
5050 "mongo --quiet -u test_user -p 'test_password' localhost:27017/admin <<\\ EOF\n "
51- "db=db.getSiblingDB('test_db');rs.slaveOk();printjson( db.test_collection.find() )\n EOF"
51+ "db=db.getSiblingDB('test_db');rs.slaveOk();db.test_collection.find()\n EOF"
5252 )
5353
5454 # Assertions
@@ -72,7 +72,7 @@ def test_build_cmd_without_auth(mongo_engine):
7272 # Expected command template
7373 expected_cmd = (
7474 "mongo --quiet localhost:27017/admin <<\\ EOF\n "
75- "db=db.getSiblingDB('test_db');rs.slaveOk();printjson( db.test_collection.find() )\n EOF"
75+ "db=db.getSiblingDB('test_db');rs.slaveOk();db.test_collection.find()\n EOF"
7676 )
7777
7878 # Assertions
You can’t perform that action at this time.
0 commit comments