summaryrefslogtreecommitdiff
path: root/src/mongo/s/client/shard_registry.cpp
diff options
context:
space:
mode:
authorEsha Maharishi <esha.maharishi@mongodb.com>2016-05-25 17:01:10 -0400
committerEsha Maharishi <esha.maharishi@mongodb.com>2016-06-10 16:19:42 -0400
commit1e26998e7fda52c226385fae4069ebbc384c294a (patch)
treefb26938216376e21a295c9163ac53a80b43d8d8f /src/mongo/s/client/shard_registry.cpp
parentf3f756132c74c1b44696d30faf6ef806fc7de860 (diff)
downloadmongo-1e26998e7fda52c226385fae4069ebbc384c294a.tar.gz
SERVER-24126 Add step to _cfgsvrAddShard command where it inserts the shardIdentity document to the new shard
Diffstat (limited to 'src/mongo/s/client/shard_registry.cpp')
-rw-r--r--src/mongo/s/client/shard_registry.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mongo/s/client/shard_registry.cpp b/src/mongo/s/client/shard_registry.cpp
index fb9339b660c..11f0e7e7c2c 100644
--- a/src/mongo/s/client/shard_registry.cpp
+++ b/src/mongo/s/client/shard_registry.cpp
@@ -39,6 +39,7 @@
#include "mongo/client/connection_string.h"
#include "mongo/client/replica_set_monitor.h"
#include "mongo/s/catalog/catalog_manager.h"
+#include "mongo/s/catalog/type_config_version.h"
#include "mongo/s/catalog/type_shard.h"
#include "mongo/s/client/shard.h"
#include "mongo/s/client/shard_connection.h"
@@ -59,9 +60,12 @@ using std::string;
using std::unique_ptr;
using std::vector;
+// TODO SERVER-23096: Initializing an empty _clusterId is a temporary hack. The _clusterId should
+// be queried from the config servers on sharding initialization and passed to the ShardRegistry
+// constructor.
ShardRegistry::ShardRegistry(std::unique_ptr<ShardFactory> shardFactory,
const ConnectionString& configServerCS)
- : _shardFactory(std::move(shardFactory)), _data() {
+ : _shardFactory(std::move(shardFactory)), _clusterId(), _data() {
_initConfigServerCS = configServerCS;
}
@@ -69,6 +73,10 @@ ConnectionString ShardRegistry::getConfigServerConnectionString() const {
return getConfigShard()->getConnString();
}
+const OID& ShardRegistry::getClusterId() const {
+ return _clusterId;
+}
+
void ShardRegistry::rebuildConfigShard() {
_data.rebuildConfigShard(_shardFactory.get());
invariant(_data.getConfigShard());