diff options
author | Spencer T Brody <spencer@mongodb.com> | 2015-09-18 15:53:41 -0400 |
---|---|---|
committer | Spencer T Brody <spencer@mongodb.com> | 2015-09-24 13:36:59 -0400 |
commit | 03c414e87e5c3bc34230421163cdd06c9451389d (patch) | |
tree | 1fc24482ada7905ee380a2c0fd1c58a7fb89ed78 /src/mongo/s/chunk_version.cpp | |
parent | 3a7b1a9800f75706f35a290a8dee198bb29e3366 (diff) | |
download | mongo-03c414e87e5c3bc34230421163cdd06c9451389d.tar.gz |
SERVER-20498 Send config server optime to shards automatically on all commands via the OP_COMMAND metadata
Diffstat (limited to 'src/mongo/s/chunk_version.cpp')
-rw-r--r-- | src/mongo/s/chunk_version.cpp | 58 |
1 files changed, 4 insertions, 54 deletions
diff --git a/src/mongo/s/chunk_version.cpp b/src/mongo/s/chunk_version.cpp index 36f85b2e1b5..2006071760c 100644 --- a/src/mongo/s/chunk_version.cpp +++ b/src/mongo/s/chunk_version.cpp @@ -34,7 +34,6 @@ #include "mongo/bson/bsonobjbuilder.h" #include "mongo/base/status_with.h" #include "mongo/bson/util/bson_extract.h" -#include "mongo/rpc/metadata/config_server_request_metadata.h" #include "mongo/util/mongoutils/str.h" namespace mongo { @@ -97,61 +96,12 @@ StatusWith<ChunkVersion> ChunkVersion::parseFromBSONForSetShardVersion(const BSO return chunkVersion; } - -ChunkVersionAndOpTime::ChunkVersionAndOpTime(ChunkVersion chunkVersion) - : _verAndOpT(chunkVersion) {} - -ChunkVersionAndOpTime::ChunkVersionAndOpTime(ChunkVersion chunkVersion, repl::OpTime ts) - : _verAndOpT(chunkVersion, ts) {} - -StatusWith<ChunkVersionAndOpTime> ChunkVersionAndOpTime::parseFromBSONForCommands( - const BSONObj& obj) { - const auto chunkVersionStatus = ChunkVersion::parseFromBSONForCommands(obj); - if (!chunkVersionStatus.isOK()) - return chunkVersionStatus.getStatus(); - - const ChunkVersion& chunkVersion = chunkVersionStatus.getValue(); - - const auto requestMetadataStatus = rpc::ConfigServerRequestMetadata::readFromCommand(obj); - if (!requestMetadataStatus.isOK()) { - return requestMetadataStatus.getStatus(); - } - auto opTime = requestMetadataStatus.getValue().getOpTime(); - if (opTime.is_initialized()) { - return ChunkVersionAndOpTime(chunkVersion, opTime.get()); - } else { - return ChunkVersionAndOpTime(chunkVersion); - } -} - -StatusWith<ChunkVersionAndOpTime> ChunkVersionAndOpTime::parseFromBSONForSetShardVersion( - const BSONObj& obj) { - const auto chunkVersionStatus = ChunkVersion::parseFromBSONForSetShardVersion(obj); - if (!chunkVersionStatus.isOK()) - return chunkVersionStatus.getStatus(); - - const ChunkVersion& chunkVersion = chunkVersionStatus.getValue(); - - const auto requestMetadataStatus = rpc::ConfigServerRequestMetadata::readFromCommand(obj); - if (!requestMetadataStatus.isOK()) { - return requestMetadataStatus.getStatus(); - } - auto opTime = requestMetadataStatus.getValue().getOpTime(); - if (opTime.is_initialized()) { - return ChunkVersionAndOpTime(chunkVersion, opTime.get()); - } else { - return ChunkVersionAndOpTime(chunkVersion); - } -} - -void ChunkVersionAndOpTime::appendForSetShardVersion(BSONObjBuilder* builder) const { - _verAndOpT.value.addToBSON(*builder, kVersion); - rpc::ConfigServerRequestMetadata(_verAndOpT.opTime).writeToCommand(builder); +void ChunkVersion::appendForSetShardVersion(BSONObjBuilder* builder) const { + addToBSON(*builder, kVersion); } -void ChunkVersionAndOpTime::appendForCommands(BSONObjBuilder* builder) const { - builder->appendArray(kShardVersion, _verAndOpT.value.toBSON()); - rpc::ConfigServerRequestMetadata(_verAndOpT.opTime).writeToCommand(builder); +void ChunkVersion::appendForCommands(BSONObjBuilder* builder) const { + builder->appendArray(kShardVersion, toBSON()); } } // namespace mongo |