summaryrefslogtreecommitdiff
path: root/src/mongo/s/catalog/catalog_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/catalog/catalog_manager.cpp')
-rw-r--r--src/mongo/s/catalog/catalog_manager.cpp171
1 files changed, 83 insertions, 88 deletions
diff --git a/src/mongo/s/catalog/catalog_manager.cpp b/src/mongo/s/catalog/catalog_manager.cpp
index 02da9c79c58..46acce91140 100644
--- a/src/mongo/s/catalog/catalog_manager.cpp
+++ b/src/mongo/s/catalog/catalog_manager.cpp
@@ -44,114 +44,109 @@
namespace mongo {
- using std::unique_ptr;
- using std::string;
+using std::unique_ptr;
+using std::string;
namespace {
- Status getStatus(const BatchedCommandResponse& response) {
- if (response.getOk() == 0) {
- return Status(static_cast<ErrorCodes::Error>(response.getErrCode()),
- response.getErrMessage());
- }
-
- if (response.isErrDetailsSet()) {
- const WriteErrorDetail* errDetail = response.getErrDetails().front();
-
- return Status(static_cast<ErrorCodes::Error>(errDetail->getErrCode()),
- errDetail->getErrMessage());
- }
-
- if (response.isWriteConcernErrorSet()) {
- const WCErrorDetail* errDetail = response.getWriteConcernError();
+Status getStatus(const BatchedCommandResponse& response) {
+ if (response.getOk() == 0) {
+ return Status(static_cast<ErrorCodes::Error>(response.getErrCode()),
+ response.getErrMessage());
+ }
- return Status(static_cast<ErrorCodes::Error>(errDetail->getErrCode()),
- errDetail->getErrMessage());
- }
+ if (response.isErrDetailsSet()) {
+ const WriteErrorDetail* errDetail = response.getErrDetails().front();
- return Status::OK();
+ return Status(static_cast<ErrorCodes::Error>(errDetail->getErrCode()),
+ errDetail->getErrMessage());
}
-} // namespace
+ if (response.isWriteConcernErrorSet()) {
+ const WCErrorDetail* errDetail = response.getWriteConcernError();
- Status CatalogManager::insert(const string& ns,
- const BSONObj& doc,
- BatchedCommandResponse* response) {
+ return Status(static_cast<ErrorCodes::Error>(errDetail->getErrCode()),
+ errDetail->getErrMessage());
+ }
- unique_ptr<BatchedInsertRequest> insert(new BatchedInsertRequest());
- insert->addToDocuments(doc);
+ return Status::OK();
+}
- BatchedCommandRequest request(insert.release());
- request.setNS(ns);
- request.setWriteConcern(WriteConcernOptions::Majority);
+} // namespace
- BatchedCommandResponse dummyResponse;
- if (response == NULL) {
- response = &dummyResponse;
- }
+Status CatalogManager::insert(const string& ns,
+ const BSONObj& doc,
+ BatchedCommandResponse* response) {
+ unique_ptr<BatchedInsertRequest> insert(new BatchedInsertRequest());
+ insert->addToDocuments(doc);
- // Make sure to add ids to the request, since this is an insert operation
- unique_ptr<BatchedCommandRequest> requestWithIds(
- BatchedCommandRequest::cloneWithIds(request));
- const BatchedCommandRequest& requestToSend =
- requestWithIds.get() ? *requestWithIds : request;
+ BatchedCommandRequest request(insert.release());
+ request.setNS(ns);
+ request.setWriteConcern(WriteConcernOptions::Majority);
- writeConfigServerDirect(requestToSend, response);
- return getStatus(*response);
+ BatchedCommandResponse dummyResponse;
+ if (response == NULL) {
+ response = &dummyResponse;
}
- Status CatalogManager::update(const string& ns,
- const BSONObj& query,
- const BSONObj& update,
- bool upsert,
- bool multi,
- BatchedCommandResponse* response) {
-
- unique_ptr<BatchedUpdateDocument> updateDoc(new BatchedUpdateDocument());
- updateDoc->setQuery(query);
- updateDoc->setUpdateExpr(update);
- updateDoc->setUpsert(upsert);
- updateDoc->setMulti(multi);
-
- unique_ptr<BatchedUpdateRequest> updateRequest(new BatchedUpdateRequest());
- updateRequest->addToUpdates(updateDoc.release());
- updateRequest->setWriteConcern(WriteConcernOptions::Majority);
-
- BatchedCommandRequest request(updateRequest.release());
- request.setNS(ns);
-
- BatchedCommandResponse dummyResponse;
- if (response == NULL) {
- response = &dummyResponse;
- }
-
- writeConfigServerDirect(request, response);
- return getStatus(*response);
+ // Make sure to add ids to the request, since this is an insert operation
+ unique_ptr<BatchedCommandRequest> requestWithIds(BatchedCommandRequest::cloneWithIds(request));
+ const BatchedCommandRequest& requestToSend = requestWithIds.get() ? *requestWithIds : request;
+
+ writeConfigServerDirect(requestToSend, response);
+ return getStatus(*response);
+}
+
+Status CatalogManager::update(const string& ns,
+ const BSONObj& query,
+ const BSONObj& update,
+ bool upsert,
+ bool multi,
+ BatchedCommandResponse* response) {
+ unique_ptr<BatchedUpdateDocument> updateDoc(new BatchedUpdateDocument());
+ updateDoc->setQuery(query);
+ updateDoc->setUpdateExpr(update);
+ updateDoc->setUpsert(upsert);
+ updateDoc->setMulti(multi);
+
+ unique_ptr<BatchedUpdateRequest> updateRequest(new BatchedUpdateRequest());
+ updateRequest->addToUpdates(updateDoc.release());
+ updateRequest->setWriteConcern(WriteConcernOptions::Majority);
+
+ BatchedCommandRequest request(updateRequest.release());
+ request.setNS(ns);
+
+ BatchedCommandResponse dummyResponse;
+ if (response == NULL) {
+ response = &dummyResponse;
}
- Status CatalogManager::remove(const string& ns,
- const BSONObj& query,
- int limit,
- BatchedCommandResponse* response) {
-
- unique_ptr<BatchedDeleteDocument> deleteDoc(new BatchedDeleteDocument);
- deleteDoc->setQuery(query);
- deleteDoc->setLimit(limit);
+ writeConfigServerDirect(request, response);
+ return getStatus(*response);
+}
- unique_ptr<BatchedDeleteRequest> deleteRequest(new BatchedDeleteRequest());
- deleteRequest->addToDeletes(deleteDoc.release());
- deleteRequest->setWriteConcern(WriteConcernOptions::Majority);
+Status CatalogManager::remove(const string& ns,
+ const BSONObj& query,
+ int limit,
+ BatchedCommandResponse* response) {
+ unique_ptr<BatchedDeleteDocument> deleteDoc(new BatchedDeleteDocument);
+ deleteDoc->setQuery(query);
+ deleteDoc->setLimit(limit);
- BatchedCommandRequest request(deleteRequest.release());
- request.setNS(ns);
+ unique_ptr<BatchedDeleteRequest> deleteRequest(new BatchedDeleteRequest());
+ deleteRequest->addToDeletes(deleteDoc.release());
+ deleteRequest->setWriteConcern(WriteConcernOptions::Majority);
- BatchedCommandResponse dummyResponse;
- if (response == NULL) {
- response = &dummyResponse;
- }
+ BatchedCommandRequest request(deleteRequest.release());
+ request.setNS(ns);
- writeConfigServerDirect(request, response);
- return getStatus(*response);
+ BatchedCommandResponse dummyResponse;
+ if (response == NULL) {
+ response = &dummyResponse;
}
-} // namespace mongo
+ writeConfigServerDirect(request, response);
+ return getStatus(*response);
+}
+
+} // namespace mongo