summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Pasette <dan@10gen.com>2015-07-28 11:31:58 -0400
committerDan Pasette <dan@mongodb.com>2015-07-28 18:11:47 -0400
commitd38fb5cbcdb1564dee5a4c015ecdb597beb5364a (patch)
tree7f71ad116247330d21f5b83c3823e4d736934b42
parentca69a104b4674114471020bc1ff2a4a06542aa4f (diff)
downloadmongo-d38fb5cbcdb1564dee5a4c015ecdb597beb5364a.tar.gz
SERVER-19528 Change validationState to validationAction
This reinstates 1264122b4fd9d05a9d38ec87e066f5f614fb2bc3 with a compile fix for windows
-rw-r--r--jstests/core/doc_validation_options.js8
-rw-r--r--jstests/replsets/rollback_collMod_PowerOf2Sizes.js6
-rw-r--r--src/mongo/db/catalog/coll_mod.cpp4
-rw-r--r--src/mongo/db/catalog/collection.cpp40
-rw-r--r--src/mongo/db/catalog/collection.h8
-rw-r--r--src/mongo/db/catalog/collection_catalog_entry.h2
-rw-r--r--src/mongo/db/catalog/collection_options.cpp12
-rw-r--r--src/mongo/db/catalog/collection_options.h2
-rw-r--r--src/mongo/db/repl/rs_rollback.cpp6
-rw-r--r--src/mongo/db/storage/kv/kv_collection_catalog_entry.cpp4
-rw-r--r--src/mongo/db/storage/kv/kv_collection_catalog_entry.h2
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp6
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h2
13 files changed, 51 insertions, 51 deletions
diff --git a/jstests/core/doc_validation_options.js b/jstests/core/doc_validation_options.js
index 6057aaf0c10..cfc9263d376 100644
--- a/jstests/core/doc_validation_options.js
+++ b/jstests/core/doc_validation_options.js
@@ -23,7 +23,7 @@
// check we can do a bad update in warn mode
assert.commandWorked(t.runCommand("collMod",
- {validationState: "warn"}));
+ {validationAction: "warn"}));
t.update({}, {$set: {a:2}});
assert.eq(1, t.find({a:2}).itcount());
@@ -31,11 +31,11 @@
// make sure persisted
var info = db.getCollectionInfos({name: t.getName()})[0];
- assert.eq("warn", info.options.validationState, tojson(info));
+ assert.eq("warn", info.options.validationAction, tojson(info));
// check we can go back to enforce strict
assert.commandWorked(t.runCommand("collMod",
- {validationState: "enforce",
+ {validationAction: "error",
validationLevel: "strict"}));
assertFailsValidation(t.update({}, {$set: {a:3}}));
assert.eq(1, t.find({a:2}).itcount());
@@ -50,7 +50,7 @@
t.drop();
assert.commandWorked(db.createCollection(t.getName(),
{validator: {a : 1},
- validationState: "warn"}));
+ validationAction: "warn"}));
t.insert({a:2});
t.insert({a:1});
diff --git a/jstests/replsets/rollback_collMod_PowerOf2Sizes.js b/jstests/replsets/rollback_collMod_PowerOf2Sizes.js
index c3914f4c07b..376ef081823 100644
--- a/jstests/replsets/rollback_collMod_PowerOf2Sizes.js
+++ b/jstests/replsets/rollback_collMod_PowerOf2Sizes.js
@@ -29,7 +29,7 @@ var BID = replTest.getNodeId(b_conn);
var originalCollectionOptions = {flags: 0,
validator: {x: {$exists: 1}},
validationLevel: "moderate",
- validationState: "warn"};
+ validationAction: "warn"};
assert.commandWorked(a_conn.getDB(name).createCollection('foo', originalCollectionOptions));
var options = {writeConcern: {w: 2, wtimeout: 60000}, upsert: true};
@@ -47,11 +47,11 @@ assert.commandWorked(a_conn.getDB(name).runCommand({collMod: "foo",
noPadding: true,
validator: {a: 1},
validationLevel: "moderate",
- validationState: "warn"}));
+ validationAction: "warn"}));
assert.eq(getOptions(a_conn), {flags: 2,
validator: {a: 1},
validationLevel: "moderate",
- validationState: "warn"});
+ validationAction: "warn"});
// Shut down A and fail over to B.
replTest.stop(AID);
diff --git a/src/mongo/db/catalog/coll_mod.cpp b/src/mongo/db/catalog/coll_mod.cpp
index a9b126fff6b..fe3c8da1a79 100644
--- a/src/mongo/db/catalog/coll_mod.cpp
+++ b/src/mongo/db/catalog/coll_mod.cpp
@@ -134,8 +134,8 @@ Status collMod(OperationContext* txn,
auto status = coll->setValidationLevel(txn, e.String());
if (!status.isOK())
errorStatus = std::move(status);
- } else if (str::equals("validationState", e.fieldName())) {
- auto status = coll->setValidationState(txn, e.String());
+ } else if (str::equals("validationAction", e.fieldName())) {
+ auto status = coll->setValidationAction(txn, e.String());
if (!status.isOK())
errorStatus = std::move(status);
} else {
diff --git a/src/mongo/db/catalog/collection.cpp b/src/mongo/db/catalog/collection.cpp
index 77f0db43687..3b399b89bbb 100644
--- a/src/mongo/db/catalog/collection.cpp
+++ b/src/mongo/db/catalog/collection.cpp
@@ -152,8 +152,8 @@ Collection::Collection(OperationContext* txn,
_indexCatalog(this),
_validatorDoc(_details->getCollectionOptions(txn).validator.getOwned()),
_validator(uassertStatusOK(parseValidator(_validatorDoc))),
- _validationState(uassertStatusOK(
- _parseValidationState(_details->getCollectionOptions(txn).validationState))),
+ _validationAction(uassertStatusOK(
+ _parseValidationAction(_details->getCollectionOptions(txn).validationAction))),
_validationLevel(uassertStatusOK(
_parseValidationLevel(_details->getCollectionOptions(txn).validationLevel))),
_cursorManager(fullNS),
@@ -241,7 +241,7 @@ Status Collection::checkValidation(OperationContext* txn, const BSONObj& documen
if (_validator->matchesBSON(document))
return Status::OK();
- if (_validationState == WARN) {
+ if (_validationAction == WARN) {
warning() << "Document would fail validation"
<< " collection: " << ns() << " doc: " << document;
return Status::OK();
@@ -737,7 +737,7 @@ Status Collection::setValidator(OperationContext* txn, BSONObj validatorDoc) {
if (!statusWithMatcher.isOK())
return statusWithMatcher.getStatus();
- _details->updateValidator(txn, validatorDoc, getValidationLevel(), getValidationState());
+ _details->updateValidator(txn, validatorDoc, getValidationLevel(), getValidationAction());
_validator = std::move(statusWithMatcher.getValue());
_validatorDoc = std::move(validatorDoc);
@@ -760,17 +760,17 @@ StatusWith<Collection::ValidationLevel> Collection::_parseValidationLevel(String
}
}
-StatusWith<Collection::ValidationState> Collection::_parseValidationState(StringData newState) {
- if (newState == "") {
+StatusWith<Collection::ValidationAction> Collection::_parseValidationAction(StringData newAction) {
+ if (newAction == "") {
// default
- return ENFORCE;
- } else if (newState == "warn") {
+ return ERROR_V;
+ } else if (newAction == "warn") {
return WARN;
- } else if (newState == "enforce") {
- return ENFORCE;
+ } else if (newAction == "error") {
+ return ERROR_V;
} else {
return Status(ErrorCodes::BadValue,
- str::stream() << "invalid validation state: " << newState);
+ str::stream() << "invalid validation action: " << newAction);
}
}
@@ -786,10 +786,10 @@ StringData Collection::getValidationLevel() const {
MONGO_UNREACHABLE;
}
-StringData Collection::getValidationState() const {
- switch (_validationState) {
- case ENFORCE:
- return "enforce";
+StringData Collection::getValidationAction() const {
+ switch (_validationAction) {
+ case ERROR_V:
+ return "error";
case WARN:
return "warn";
}
@@ -806,22 +806,22 @@ Status Collection::setValidationLevel(OperationContext* txn, StringData newLevel
_validationLevel = status.getValue();
- _details->updateValidator(txn, _validatorDoc, getValidationLevel(), getValidationState());
+ _details->updateValidator(txn, _validatorDoc, getValidationLevel(), getValidationAction());
return Status::OK();
}
-Status Collection::setValidationState(OperationContext* txn, StringData newState) {
+Status Collection::setValidationAction(OperationContext* txn, StringData newAction) {
invariant(txn->lockState()->isCollectionLockedForMode(ns().toString(), MODE_X));
- StatusWith<ValidationState> status = _parseValidationState(newState);
+ StatusWith<ValidationAction> status = _parseValidationAction(newAction);
if (!status.isOK()) {
return status.getStatus();
}
- _validationState = status.getValue();
+ _validationAction = status.getValue();
- _details->updateValidator(txn, _validatorDoc, getValidationLevel(), getValidationState());
+ _details->updateValidator(txn, _validatorDoc, getValidationLevel(), getValidationAction());
return Status::OK();
}
diff --git a/src/mongo/db/catalog/collection.h b/src/mongo/db/catalog/collection.h
index e0f3d5b58f1..226378f8e5c 100644
--- a/src/mongo/db/catalog/collection.h
+++ b/src/mongo/db/catalog/collection.h
@@ -319,10 +319,10 @@ public:
Status setValidator(OperationContext* txn, BSONObj validator);
Status setValidationLevel(OperationContext* txn, StringData newLevel);
- Status setValidationState(OperationContext* txn, StringData newState);
+ Status setValidationAction(OperationContext* txn, StringData newAction);
StringData getValidationLevel() const;
- StringData getValidationState() const;
+ StringData getValidationAction() const;
// -----------
@@ -399,11 +399,11 @@ private:
BSONObj _validatorDoc;
// Points into _validatorDoc. Null means no filter.
std::unique_ptr<MatchExpression> _validator;
- enum ValidationState { WARN, ENFORCE } _validationState;
+ enum ValidationAction { WARN, ERROR_V } _validationAction;
enum ValidationLevel { OFF, MODERATE, STRICT_V } _validationLevel;
static StatusWith<ValidationLevel> _parseValidationLevel(StringData);
- static StatusWith<ValidationState> _parseValidationState(StringData);
+ static StatusWith<ValidationAction> _parseValidationAction(StringData);
// this is mutable because read only users of the Collection class
// use it keep state. This seems valid as const correctness of Collection
diff --git a/src/mongo/db/catalog/collection_catalog_entry.h b/src/mongo/db/catalog/collection_catalog_entry.h
index ef99576ccd7..e1261e6a409 100644
--- a/src/mongo/db/catalog/collection_catalog_entry.h
+++ b/src/mongo/db/catalog/collection_catalog_entry.h
@@ -105,7 +105,7 @@ public:
virtual void updateValidator(OperationContext* txn,
const BSONObj& validator,
StringData validationLevel,
- StringData validationState) = 0;
+ StringData validationAction) = 0;
private:
NamespaceString _ns;
diff --git a/src/mongo/db/catalog/collection_options.cpp b/src/mongo/db/catalog/collection_options.cpp
index 1c8a8ec4e47..68de4a89de3 100644
--- a/src/mongo/db/catalog/collection_options.cpp
+++ b/src/mongo/db/catalog/collection_options.cpp
@@ -64,7 +64,7 @@ void CollectionOptions::reset() {
storageEngine = BSONObj();
validator = BSONObj();
validationLevel = "";
- validationState = "";
+ validationAction = "";
}
bool CollectionOptions::isValid() const {
@@ -163,12 +163,12 @@ Status CollectionOptions::parse(const BSONObj& options) {
}
validator = e.Obj().getOwned();
- } else if (fieldName == "validationState") {
+ } else if (fieldName == "validationAction") {
if (e.type() != mongo::String) {
- return Status(ErrorCodes::BadValue, "'validationState' has to be a string.");
+ return Status(ErrorCodes::BadValue, "'validationAction' has to be a string.");
}
- validationState = e.String();
+ validationAction = e.String();
} else if (fieldName == "validationLevel") {
if (e.type() != mongo::String) {
return Status(ErrorCodes::BadValue, "'validationLevel' has to be a string.");
@@ -217,8 +217,8 @@ BSONObj CollectionOptions::toBSON() const {
b.append("validationLevel", validationLevel);
}
- if (!validationState.empty()) {
- b.append("validationState", validationState);
+ if (!validationAction.empty()) {
+ b.append("validationAction", validationAction);
}
return b.obj();
diff --git a/src/mongo/db/catalog/collection_options.h b/src/mongo/db/catalog/collection_options.h
index b06a4deb9cc..3a664c56934 100644
--- a/src/mongo/db/catalog/collection_options.h
+++ b/src/mongo/db/catalog/collection_options.h
@@ -100,7 +100,7 @@ struct CollectionOptions {
// Always owned or empty.
BSONObj validator;
- std::string validationState;
+ std::string validationAction;
std::string validationLevel;
};
}
diff --git a/src/mongo/db/repl/rs_rollback.cpp b/src/mongo/db/repl/rs_rollback.cpp
index c208c6f8e72..ce48224e1f6 100644
--- a/src/mongo/db/repl/rs_rollback.cpp
+++ b/src/mongo/db/repl/rs_rollback.cpp
@@ -232,7 +232,7 @@ Status refetch(FixUpInfo& fixUpInfo, const BSONObj& ourObj) {
continue; // Skipping command name.
}
- if (modification == "validator" || modification == "validationState" ||
+ if (modification == "validator" || modification == "validationAction" ||
modification == "validationLevel" || modification == "usePowerOf2Sizes" ||
modification == "noPadding") {
fixUpInfo.collectionsToResyncMetadata.insert(ns.ns());
@@ -401,10 +401,10 @@ void syncFixUp(OperationContext* txn,
throw RSFatalException(str::stream()
<< "Failed to set validator: " << status.toString());
}
- status = collection->setValidationState(txn, options.validationState);
+ status = collection->setValidationAction(txn, options.validationAction);
if (!status.isOK()) {
throw RSFatalException(str::stream()
- << "Failed to set validationState: " << status.toString());
+ << "Failed to set validationAction: " << status.toString());
}
status = collection->setValidationLevel(txn, options.validationLevel);
diff --git a/src/mongo/db/storage/kv/kv_collection_catalog_entry.cpp b/src/mongo/db/storage/kv/kv_collection_catalog_entry.cpp
index 434affabde5..2381a80fff6 100644
--- a/src/mongo/db/storage/kv/kv_collection_catalog_entry.cpp
+++ b/src/mongo/db/storage/kv/kv_collection_catalog_entry.cpp
@@ -166,11 +166,11 @@ void KVCollectionCatalogEntry::updateFlags(OperationContext* txn, int newValue)
void KVCollectionCatalogEntry::updateValidator(OperationContext* txn,
const BSONObj& validator,
StringData validationLevel,
- StringData validationState) {
+ StringData validationAction) {
MetaData md = _getMetaData(txn);
md.options.validator = validator;
md.options.validationLevel = validationLevel.toString();
- md.options.validationState = validationState.toString();
+ md.options.validationAction = validationAction.toString();
_catalog->putMetaData(txn, ns().toString(), md);
}
diff --git a/src/mongo/db/storage/kv/kv_collection_catalog_entry.h b/src/mongo/db/storage/kv/kv_collection_catalog_entry.h
index e2f09388d3c..11cc4ecafc6 100644
--- a/src/mongo/db/storage/kv/kv_collection_catalog_entry.h
+++ b/src/mongo/db/storage/kv/kv_collection_catalog_entry.h
@@ -71,7 +71,7 @@ public:
void updateValidator(OperationContext* txn,
const BSONObj& validator,
StringData validationLevel,
- StringData validationState) final;
+ StringData validationAction) final;
RecordStore* getRecordStore() {
return _recordStore.get();
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
index 6b83abfdae6..05985883368 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
@@ -387,13 +387,13 @@ void NamespaceDetailsCollectionCatalogEntry::updateFlags(OperationContext* txn,
void NamespaceDetailsCollectionCatalogEntry::updateValidator(OperationContext* txn,
const BSONObj& validator,
StringData validationLevel,
- StringData validationState) {
+ StringData validationAction) {
updateSystemNamespaces(
txn,
_namespacesRecordStore,
ns(),
BSON("$set" << BSON("options.validator" << validator << "options.validationLevel"
- << validationLevel << "options.validationState"
- << validationState)));
+ << validationLevel << "options.validationAction"
+ << validationAction)));
}
}
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
index cad337ea14d..1796a9affed 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
@@ -95,7 +95,7 @@ public:
void updateValidator(OperationContext* txn,
const BSONObj& validator,
StringData validationLevel,
- StringData validationState) final;
+ StringData validationAction) final;
// not part of interface, but available to my storage engine