本文整理汇总了C++中VersionType::getMinCompatibleVersion方法的典型用法代码示例。如果您正苦于以下问题:C++ VersionType::getMinCompatibleVersion方法的具体用法?C++ VersionType::getMinCompatibleVersion怎么用?C++ VersionType::getMinCompatibleVersion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VersionType
的用法示例。
在下文中一共展示了VersionType::getMinCompatibleVersion方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isConfigVersionCompatible
// Checks version compatibility with our version
VersionStatus isConfigVersionCompatible(const VersionType& versionInfo, string* whyNot) {
string dummy;
if (!whyNot) whyNot = &dummy;
// Check if we're empty
if (versionInfo.getCurrentVersion() == UpgradeHistory_EmptyVersion) {
return VersionStatus_NeedUpgrade;
}
// Check that we aren't too old
if (CURRENT_CONFIG_VERSION < versionInfo.getMinCompatibleVersion()) {
*whyNot = stream() << "the config version " << CURRENT_CONFIG_VERSION
<< " of our process is too old "
<< "for the detected config version "
<< versionInfo.getMinCompatibleVersion();
return VersionStatus_Incompatible;
}
// Check that the mongo version of this process hasn't been excluded from the cluster
vector<MongoVersionRange> excludedRanges;
if (versionInfo.isExcludingMongoVersionsSet() &&
!MongoVersionRange::parseBSONArray(versionInfo.getExcludingMongoVersions(),
&excludedRanges,
whyNot))
{
*whyNot = stream() << "could not understand excluded version ranges"
<< causedBy(whyNot);
return VersionStatus_Incompatible;
}
// versionString is the global version of this process
if (isInMongoVersionRanges(versionString, excludedRanges)) {
// Cast needed here for MSVC compiler issue
*whyNot = stream() << "not compatible with current config version, version "
<< reinterpret_cast<const char*>(versionString)
<< "has been excluded.";
return VersionStatus_Incompatible;
}
// Check if we need to upgrade
if (versionInfo.getCurrentVersion() >= CURRENT_CONFIG_VERSION) {
return VersionStatus_Compatible;
}
return VersionStatus_NeedUpgrade;
}
示例2: getConfigVersion
TEST_F(ConfigUpgradeTests, EmptyVersion) {
//
// Tests detection of empty config version
//
// Zero version (no version doc)
VersionType oldVersion;
Status status = getConfigVersion(grid.catalogManager(), &oldVersion);
ASSERT(status.isOK());
ASSERT_EQUALS(oldVersion.getMinCompatibleVersion(), 0);
ASSERT_EQUALS(oldVersion.getCurrentVersion(), 0);
}
示例3: checkAndUpgradeConfigVersion
TEST_F(ConfigUpgradeTests, InitialUpgrade) {
//
// Tests initializing the config server to the initial version
//
// Empty version
VersionType versionOld;
VersionType version;
string errMsg;
bool result = checkAndUpgradeConfigVersion(grid.catalogManager(),
false,
&versionOld,
&version,
&errMsg);
ASSERT(result);
ASSERT_EQUALS(versionOld.getCurrentVersion(), 0);
ASSERT_EQUALS(version.getMinCompatibleVersion(), MIN_COMPATIBLE_CONFIG_VERSION);
ASSERT_EQUALS(version.getCurrentVersion(), CURRENT_CONFIG_VERSION);
ASSERT_NOT_EQUALS(version.getClusterId(), OID());
}
示例4: storeConfigVersion
TEST_F(ConfigUpgradeTests, ClusterIDVersion) {
//
// Tests detection of newer config versions
//
VersionType newVersion;
newVersion.setMinCompatibleVersion(MIN_COMPATIBLE_CONFIG_VERSION);
newVersion.setCurrentVersion(CURRENT_CONFIG_VERSION);
storeConfigVersion(newVersion);
newVersion.clear();
// Current Version w/o clusterId (invalid!)
Status status = getConfigVersion(grid.catalogManager(), &newVersion);
ASSERT(!status.isOK());
newVersion.clear();
OID clusterId = OID::gen();
newVersion.setClusterId(clusterId);
newVersion.setMinCompatibleVersion(MIN_COMPATIBLE_CONFIG_VERSION);
newVersion.setCurrentVersion(CURRENT_CONFIG_VERSION);
clearVersion();
storeConfigVersion(newVersion);
newVersion.clear();
// Current version w/ clusterId (valid!)
status = getConfigVersion(grid.catalogManager(), &newVersion);
ASSERT(status.isOK());
ASSERT_EQUALS(newVersion.getMinCompatibleVersion(), MIN_COMPATIBLE_CONFIG_VERSION);
ASSERT_EQUALS(newVersion.getCurrentVersion(), CURRENT_CONFIG_VERSION);
ASSERT_EQUALS(newVersion.getClusterId(), clusterId);
}