Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -504,4 +504,8 @@ public void updateSystemVmTemplates(Connection conn) {
}
}
}

public CloudStackVersion getLatestVersion() {
return hierarchy.getLatestVersion();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ public DbUpgrade[] getPath(final CloudStackVersion fromVersion, final CloudStack
return new DbUpgrade[0];
}

// The CloudStack version is latest or higher than latest
if (fromVersion.compareTo(getLatestVersion()) >= 0) {
return new DbUpgrade[0];
}

// we cannot find the version specified, so get the
// most recent one immediately before this version
if (!contains(fromVersion)) {
Expand Down Expand Up @@ -184,4 +189,8 @@ public DatabaseVersionHierarchy build() {
return new DatabaseVersionHierarchy(ImmutableList.copyOf(hierarchyBuilder));
}
}

public CloudStackVersion getLatestVersion() {
return CloudStackVersion.parse(hierarchy.get(hierarchy.size() - 1).upgrader.getUpgradedVersion());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,8 @@ public void testCalculateUpgradePathUnkownDbVersion() {
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
assertNotNull(upgrades);
assertEquals("We should have 2 upgrade steps", 2, upgrades.length);
assertTrue(upgrades[1] instanceof NoopDbUpgrade);
assertEquals("We should have 1 upgrade step", 1, upgrades.length);
assertTrue(upgrades[0] instanceof NoopDbUpgrade);

}

Expand Down Expand Up @@ -204,4 +204,23 @@ public void testCalculateUpgradePathFromUnregisteredSecVersion() {
assertTrue(upgrades[0] instanceof Upgrade41510to41520);
assertTrue(upgrades[upgrades.length - 1] instanceof Upgrade41610to41700);
}

@Test
public void testCalculateUpgradePathFromLatestDbVersion() {
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();

final CloudStackVersion dbVersion = checker.getLatestVersion();
assertNotNull(dbVersion);

final CloudStackVersion currentVersion = CloudStackVersion.parse(dbVersion.getMajorRelease() + "."
+ dbVersion.getMinorRelease() + "."
+ dbVersion.getPatchRelease() + "."
+ (dbVersion.getSecurityRelease() + 1));
assertNotNull(currentVersion);

final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
assertNotNull(upgrades);
assertEquals("We should have 1 upgrade step", 1, upgrades.length);
assertTrue(upgrades[0] instanceof NoopDbUpgrade);
}
}