void CommitChunkMigrationRequest::appendAsCommand( BSONObjBuilder* builder, const NamespaceString& nss, const ShardId& fromShard, const ShardId& toShard, const ChunkType& migratedChunkType, const boost::optional<ChunkType>& controlChunkType) { invariant(builder->asTempObj().isEmpty()); invariant(nss.isValid()); builder->append(kConfigSvrCommitChunkMigration, nss.ns()); builder->append(kFromShard, fromShard.toString()); builder->append(kToShard, toShard.toString()); builder->append(kMigratedChunk, migratedChunkType.toBSON()); if (controlChunkType) { builder->append(kControlChunk, controlChunkType->toBSON()); } }