diff options
author | Dan Pasette <dan@10gen.com> | 2015-07-28 11:31:58 -0400 |
---|---|---|
committer | Dan Pasette <dan@mongodb.com> | 2015-07-28 18:11:47 -0400 |
commit | d38fb5cbcdb1564dee5a4c015ecdb597beb5364a (patch) | |
tree | 7f71ad116247330d21f5b83c3823e4d736934b42 | |
parent | ca69a104b4674114471020bc1ff2a4a06542aa4f (diff) | |
download | mongo-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.js | 8 | ||||
-rw-r--r-- | jstests/replsets/rollback_collMod_PowerOf2Sizes.js | 6 | ||||
-rw-r--r-- | src/mongo/db/catalog/coll_mod.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/catalog/collection.cpp | 40 | ||||
-rw-r--r-- | src/mongo/db/catalog/collection.h | 8 | ||||
-rw-r--r-- | src/mongo/db/catalog/collection_catalog_entry.h | 2 | ||||
-rw-r--r-- | src/mongo/db/catalog/collection_options.cpp | 12 | ||||
-rw-r--r-- | src/mongo/db/catalog/collection_options.h | 2 | ||||
-rw-r--r-- | src/mongo/db/repl/rs_rollback.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/storage/kv/kv_collection_catalog_entry.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/kv/kv_collection_catalog_entry.h | 2 | ||||
-rw-r--r-- | src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h | 2 |
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 |