mirror of https://github.com/apache/cloudstack.git
engine/schema: enhance and cleanup DatabaseUpgradeChecker (#2584)
Using a hierarchy of database version rather than a flat
list of them. Adding a new schema upgrade path was really
cumbersome and error-prone, because we needed to maintain
a flat map of versions and their corresponding list of
upgrade paths (`DbUpgrade`). Instead we're using a logical
hierarchy structure of versions:
```
DatabaseVersionHierarchy.builder()
.next("4.0.0" , new Upgrade40to41())
.next("4.0.1" , new Upgrade40to41())
.next("4.0.2" , new Upgrade40to41())
.next("4.1.0" , new Upgrade410to420())
.next("4.1.1" , new Upgrade410to420())
.next("4.2.0" , new Upgrade420to421())
...
.next("4.2.1" , new Upgrade421to430())
.next("4.9.3.0" , new Upgrade4930to41000())
.next("4.10.0.0", new Upgrade41000to41100())
.next("4.11.0.0", new Upgrade41100to41110())
.build();
```
With this change, when we need to add a new version upgrade
path, we only need to add it in correct place in the hierarchy
rather than add that in dozens of places in `_upgradeMap`.
This commit is contained in:
parent
951f73b107
commit
c60dbfd2c8
|
|
@ -16,6 +16,26 @@
|
|||
// under the License.
|
||||
package com.cloud.upgrade;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.collect.ObjectArrays.concat;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import org.apache.cloudstack.utils.CloudStackVersion;
|
||||
|
||||
import com.cloud.upgrade.dao.DbUpgrade;
|
||||
import com.cloud.upgrade.dao.Upgrade217to218;
|
||||
import com.cloud.upgrade.dao.Upgrade218to22;
|
||||
|
|
@ -42,7 +62,9 @@ import com.cloud.upgrade.dao.Upgrade306to307;
|
|||
import com.cloud.upgrade.dao.Upgrade307to410;
|
||||
import com.cloud.upgrade.dao.Upgrade30to301;
|
||||
import com.cloud.upgrade.dao.Upgrade40to41;
|
||||
import com.cloud.upgrade.dao.Upgrade41000to41100;
|
||||
import com.cloud.upgrade.dao.Upgrade410to420;
|
||||
import com.cloud.upgrade.dao.Upgrade41100to41110;
|
||||
import com.cloud.upgrade.dao.Upgrade41110to41200;
|
||||
import com.cloud.upgrade.dao.Upgrade420to421;
|
||||
import com.cloud.upgrade.dao.Upgrade421to430;
|
||||
|
|
@ -52,11 +74,11 @@ import com.cloud.upgrade.dao.Upgrade432to440;
|
|||
import com.cloud.upgrade.dao.Upgrade440to441;
|
||||
import com.cloud.upgrade.dao.Upgrade441to442;
|
||||
import com.cloud.upgrade.dao.Upgrade442to450;
|
||||
import com.cloud.upgrade.dao.Upgrade443to450;
|
||||
import com.cloud.upgrade.dao.Upgrade443to444;
|
||||
import com.cloud.upgrade.dao.Upgrade444to450;
|
||||
import com.cloud.upgrade.dao.Upgrade450to451;
|
||||
import com.cloud.upgrade.dao.Upgrade451to452;
|
||||
import com.cloud.upgrade.dao.Upgrade452to460;
|
||||
import com.cloud.upgrade.dao.Upgrade452to453;
|
||||
import com.cloud.upgrade.dao.Upgrade453to460;
|
||||
import com.cloud.upgrade.dao.Upgrade460to461;
|
||||
import com.cloud.upgrade.dao.Upgrade461to470;
|
||||
|
|
@ -68,8 +90,6 @@ import com.cloud.upgrade.dao.Upgrade490to4910;
|
|||
import com.cloud.upgrade.dao.Upgrade4910to4920;
|
||||
import com.cloud.upgrade.dao.Upgrade4920to4930;
|
||||
import com.cloud.upgrade.dao.Upgrade4930to41000;
|
||||
import com.cloud.upgrade.dao.Upgrade41000to41100;
|
||||
import com.cloud.upgrade.dao.Upgrade41100to41110;
|
||||
import com.cloud.upgrade.dao.UpgradeSnapshot217to224;
|
||||
import com.cloud.upgrade.dao.UpgradeSnapshot223to224;
|
||||
import com.cloud.upgrade.dao.VersionDao;
|
||||
|
|
@ -81,33 +101,10 @@ import com.cloud.utils.db.GlobalLock;
|
|||
import com.cloud.utils.db.ScriptRunner;
|
||||
import com.cloud.utils.db.TransactionLegacy;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.apache.cloudstack.utils.CloudStackVersion;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.collect.Lists.newArrayList;
|
||||
import static com.google.common.collect.Lists.reverse;
|
||||
import static com.google.common.collect.ObjectArrays.concat;
|
||||
import static java.util.Collections.sort;
|
||||
|
||||
public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
|
||||
private static final Logger s_logger = Logger.getLogger(DatabaseUpgradeChecker.class);
|
||||
private final ImmutableList<CloudStackVersion> availableVersions;
|
||||
protected Map<CloudStackVersion, DbUpgrade[]> _upgradeMap = new HashMap<>();
|
||||
private final DatabaseVersionHierarchy hierarchy;
|
||||
|
||||
@Inject
|
||||
VersionDao _dao;
|
||||
|
|
@ -115,353 +112,78 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
|
|||
public DatabaseUpgradeChecker() {
|
||||
_dao = new VersionDaoImpl();
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.1.7"),
|
||||
new DbUpgrade[] {new Upgrade217to218(), new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(), new Upgrade222to224(), new Upgrade224to225(),
|
||||
new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(),
|
||||
new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
|
||||
new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(),
|
||||
new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(),
|
||||
new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(),
|
||||
new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
hierarchy = DatabaseVersionHierarchy.builder()
|
||||
// legacy
|
||||
.next("2.1.7" , new Upgrade217to218())
|
||||
.next("2.1.7.1" , new UpgradeSnapshot217to224())
|
||||
.next("2.1.8" , new Upgrade218to22())
|
||||
.next("2.1.8.1" , new Upgrade218to224DomainVlans())
|
||||
.next("2.1.9" , new Upgrade218to22())
|
||||
.next("2.2.1" , new Upgrade221to222())
|
||||
.next("2.2.2" , new Upgrade222to224())
|
||||
.next("2.2.3" , new Upgrade222to224())
|
||||
.next("2.2.3.1" , new UpgradeSnapshot223to224())
|
||||
.next("2.2.4" , new Upgrade224to225())
|
||||
.next("2.2.5" , new Upgrade225to226())
|
||||
.next("2.2.6" , new Upgrade227to228())
|
||||
.next("2.2.7" , new Upgrade227to228())
|
||||
.next("2.2.8" , new Upgrade228to229())
|
||||
.next("2.2.9" , new Upgrade229to2210())
|
||||
.next("2.2.10" , new Upgrade2210to2211())
|
||||
.next("2.2.11" , new Upgrade2211to2212())
|
||||
.next("2.2.12" , new Upgrade2212to2213())
|
||||
.next("2.2.13" , new Upgrade2213to2214())
|
||||
.next("2.2.14" , new Upgrade2214to30())
|
||||
.next("2.2.15" , new Upgrade2214to30())
|
||||
.next("2.2.16" , new Upgrade2214to30())
|
||||
.next("3.0.0" , new Upgrade30to301())
|
||||
.next("3.0.1" , new Upgrade301to302())
|
||||
.next("3.0.2" , new Upgrade302to303())
|
||||
.next("3.0.2.1" , new Upgrade302to40())
|
||||
.next("3.0.3" , new Upgrade303to304())
|
||||
.next("3.0.4" , new Upgrade304to305())
|
||||
.next("3.0.5" , new Upgrade305to306())
|
||||
.next("3.0.6" , new Upgrade306to307())
|
||||
.next("3.0.7" , new Upgrade307to410())
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.1.8"),
|
||||
new DbUpgrade[] {new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(), new Upgrade222to224(), new Upgrade218to224DomainVlans(),
|
||||
new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(),
|
||||
new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
|
||||
new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
|
||||
new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.1.9"),
|
||||
new DbUpgrade[] {new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(), new Upgrade222to224(), new Upgrade218to224DomainVlans(),
|
||||
new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(),
|
||||
new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
|
||||
new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
|
||||
new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.1"),
|
||||
new DbUpgrade[] {new Upgrade221to222(), new UpgradeSnapshot223to224(), new Upgrade222to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(),
|
||||
new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
|
||||
new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
|
||||
new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(),
|
||||
new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.2"),
|
||||
new DbUpgrade[] {new Upgrade222to224(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(),
|
||||
new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
|
||||
new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
|
||||
new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(),
|
||||
new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.3"),
|
||||
new DbUpgrade[] {new Upgrade222to224(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(),
|
||||
new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
|
||||
new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
|
||||
new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(),
|
||||
new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.4"),
|
||||
new DbUpgrade[] {new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(),
|
||||
new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
|
||||
new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
|
||||
new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.5"),
|
||||
new DbUpgrade[] {new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(),
|
||||
new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
|
||||
new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(),
|
||||
new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(),
|
||||
new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(),
|
||||
new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.6"),
|
||||
new DbUpgrade[] {new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
|
||||
new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
|
||||
new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(),
|
||||
new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.7"),
|
||||
new DbUpgrade[] {new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
|
||||
new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
|
||||
new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(),
|
||||
new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.8"),
|
||||
new DbUpgrade[] {new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
|
||||
new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
|
||||
new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.9"),
|
||||
new DbUpgrade[] {new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
|
||||
new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
|
||||
new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(),
|
||||
new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.10"),
|
||||
new DbUpgrade[] {new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
|
||||
new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
|
||||
new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(),
|
||||
new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.12"),
|
||||
new DbUpgrade[] {new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
|
||||
new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
|
||||
new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.13"),
|
||||
new DbUpgrade[] {new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
|
||||
new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(),
|
||||
new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(),
|
||||
new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(),
|
||||
new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.14"),
|
||||
new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
|
||||
new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(),
|
||||
new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.0"),
|
||||
new DbUpgrade[] {new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
|
||||
new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.1"),
|
||||
new DbUpgrade[] {new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
|
||||
new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(),
|
||||
new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.2"),
|
||||
new DbUpgrade[] {new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
|
||||
new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(),
|
||||
new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.0.0"),
|
||||
new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(),
|
||||
new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.0.1"),
|
||||
new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(),
|
||||
new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.0.2"),
|
||||
new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(),
|
||||
new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.1.0"),
|
||||
new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
|
||||
new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.1.1"),
|
||||
new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
|
||||
new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.2.0"),
|
||||
new DbUpgrade[] {new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(),
|
||||
new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(),
|
||||
new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(),
|
||||
new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.2.1"),
|
||||
new DbUpgrade[] {new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(),
|
||||
new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.3.0"),
|
||||
new DbUpgrade[] {new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.3.1"),
|
||||
new DbUpgrade[] {new Upgrade431to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.3.2"),
|
||||
new DbUpgrade[] {new Upgrade432to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.4.0"),
|
||||
new DbUpgrade[] {new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(),
|
||||
new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.4.1"),
|
||||
new DbUpgrade[] {new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(),
|
||||
new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.4.2"),
|
||||
new DbUpgrade[] {new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.4.3"),
|
||||
new DbUpgrade[] {new Upgrade443to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.4.4"),
|
||||
new DbUpgrade[] {new Upgrade444to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.5.0"),
|
||||
new DbUpgrade[] {new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(),
|
||||
new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.5.1"),
|
||||
new DbUpgrade[] {new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(),
|
||||
new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(),
|
||||
new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.5.2"),
|
||||
new DbUpgrade[] {new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.5.3"),
|
||||
new DbUpgrade[] {new Upgrade453to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.6.0"),
|
||||
new DbUpgrade[] {new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.6.1"),
|
||||
new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.6.2"),
|
||||
new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.7.0"),
|
||||
new DbUpgrade[] {new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.7.1"),
|
||||
new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.7.2"),
|
||||
new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(),
|
||||
new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.8.0"),
|
||||
new DbUpgrade[] {new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(),
|
||||
new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.8.1"),
|
||||
new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.8.2.0"),
|
||||
new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.9.0"),
|
||||
new DbUpgrade[] {new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.9.1.0"),
|
||||
new DbUpgrade[] {new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.9.2.0"),
|
||||
new DbUpgrade[] {new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.9.3.0"),
|
||||
new DbUpgrade[] {new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.9.3.1"),
|
||||
new DbUpgrade[] {new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.10.0.0"),
|
||||
new DbUpgrade[] {new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.11.0.0"),
|
||||
new DbUpgrade[] {new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("4.11.1.0"),
|
||||
new DbUpgrade[] {new Upgrade41110to41200()});
|
||||
|
||||
//CP Upgrades
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.3"),
|
||||
new DbUpgrade[] {new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(),
|
||||
new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(),
|
||||
new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(),
|
||||
new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.4"),
|
||||
new DbUpgrade[] {new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(),
|
||||
new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(),
|
||||
new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(),
|
||||
new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.5"),
|
||||
new DbUpgrade[] {new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
|
||||
new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(),
|
||||
new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(),
|
||||
new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.6"),
|
||||
new DbUpgrade[] {new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
|
||||
new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(),
|
||||
new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("3.0.7"),
|
||||
new DbUpgrade[] {new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(),
|
||||
new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(),
|
||||
new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.15"),
|
||||
new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to303(), new Upgrade303to304(), new Upgrade304to305(),
|
||||
new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
|
||||
new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(),
|
||||
new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
_upgradeMap.put(CloudStackVersion.parse("2.2.16"),
|
||||
new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to303(), new Upgrade303to304(), new Upgrade304to305(),
|
||||
new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
|
||||
new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(),
|
||||
new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(),
|
||||
new Upgrade4920to4930(), new Upgrade4930to41000(), new Upgrade41000to41100(), new Upgrade41100to41110(), new Upgrade41110to41200()});
|
||||
|
||||
final List<CloudStackVersion> sortedVersions = newArrayList(_upgradeMap.keySet());
|
||||
sort(sortedVersions);
|
||||
|
||||
availableVersions = ImmutableList.copyOf(sortedVersions);
|
||||
// recent
|
||||
.next("4.0.0" , new Upgrade40to41())
|
||||
.next("4.0.1" , new Upgrade40to41())
|
||||
.next("4.0.2" , new Upgrade40to41())
|
||||
.next("4.1.0" , new Upgrade410to420())
|
||||
.next("4.1.1" , new Upgrade410to420())
|
||||
.next("4.2.0" , new Upgrade420to421())
|
||||
.next("4.2.1" , new Upgrade421to430())
|
||||
.next("4.3.0" , new Upgrade430to440())
|
||||
.next("4.3.1" , new Upgrade431to440())
|
||||
.next("4.3.2" , new Upgrade432to440())
|
||||
.next("4.4.0" , new Upgrade440to441())
|
||||
.next("4.4.1" , new Upgrade441to442())
|
||||
.next("4.4.2" , new Upgrade442to450())
|
||||
.next("4.4.3" , new Upgrade443to444())
|
||||
.next("4.4.4" , new Upgrade444to450())
|
||||
.next("4.5.0" , new Upgrade450to451())
|
||||
.next("4.5.1" , new Upgrade451to452())
|
||||
.next("4.5.2" , new Upgrade452to453())
|
||||
.next("4.5.3" , new Upgrade453to460())
|
||||
.next("4.6.0" , new Upgrade460to461())
|
||||
.next("4.6.1" , new Upgrade461to470())
|
||||
.next("4.6.2" , new Upgrade461to470())
|
||||
.next("4.7.0" , new Upgrade470to471())
|
||||
.next("4.7.1" , new Upgrade471to480())
|
||||
.next("4.7.2" , new Upgrade471to480())
|
||||
.next("4.8.0" , new Upgrade480to481())
|
||||
.next("4.8.1" , new Upgrade481to490())
|
||||
.next("4.8.2.0" , new Upgrade481to490())
|
||||
.next("4.9.0" , new Upgrade490to4910())
|
||||
.next("4.9.1.0" , new Upgrade4910to4920())
|
||||
.next("4.9.2.0" , new Upgrade4920to4930())
|
||||
.next("4.9.3.0" , new Upgrade4930to41000())
|
||||
.next("4.9.3.1" , new Upgrade4930to41000())
|
||||
.next("4.10.0.0", new Upgrade41000to41100())
|
||||
.next("4.11.0.0", new Upgrade41100to41110())
|
||||
.next("4.11.1.0", new Upgrade41110to41200())
|
||||
.build();
|
||||
}
|
||||
|
||||
protected void runScript(Connection conn, InputStream file) {
|
||||
|
|
@ -479,42 +201,14 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Calculates an upgrade path for the passed <code>dbVersion</code>. The calculation assumes that the
|
||||
* <code>dbVersion</code> required no schema migrations or data conversions and no upgrade path was defined
|
||||
* for it. Therefore, we find the most recent version with database migrations before the <code>dbVersion</code>
|
||||
* and adopt that list.
|
||||
*
|
||||
* @param dbVersion The version from which the upgrade will occur
|
||||
*
|
||||
* @return The upgrade path from <code>dbVersion</code> to <code>currentVersion</code>
|
||||
*
|
||||
* @since 4.8.2.0
|
||||
*
|
||||
*/
|
||||
private DbUpgrade[] findMostRecentUpgradePath(final CloudStackVersion dbVersion) {
|
||||
|
||||
// Find the most recent version before dbVersion
|
||||
for (CloudStackVersion version : reverse(availableVersions)) {
|
||||
if (dbVersion.compareTo(version) < 0) {
|
||||
return _upgradeMap.get(version);
|
||||
}
|
||||
}
|
||||
|
||||
// The current version was the latest and didn't have any migrations ...
|
||||
return new DbUpgrade[0];
|
||||
|
||||
}
|
||||
|
||||
// Default visibility to support unit testing ...
|
||||
@VisibleForTesting
|
||||
DbUpgrade[] calculateUpgradePath(final CloudStackVersion dbVersion, final CloudStackVersion currentVersion) {
|
||||
|
||||
checkArgument(dbVersion != null);
|
||||
checkArgument(currentVersion != null);
|
||||
checkArgument(currentVersion.compareTo(dbVersion) > 0);
|
||||
|
||||
final DbUpgrade[] upgrades = _upgradeMap.containsKey(dbVersion) ? _upgradeMap.get(dbVersion) : findMostRecentUpgradePath(dbVersion);
|
||||
final DbUpgrade[] upgrades = hierarchy.getPath(dbVersion, currentVersion);
|
||||
|
||||
// When there is no upgrade defined for the target version, we assume that there were no schema changes or
|
||||
// data migrations required. Based on that assumption, we add a noop DbUpgrade to the end of the list ...
|
||||
|
|
@ -644,7 +338,8 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
|
|||
}
|
||||
}
|
||||
|
||||
private static final class NoopDbUpgrade implements DbUpgrade {
|
||||
@VisibleForTesting
|
||||
protected static final class NoopDbUpgrade implements DbUpgrade {
|
||||
|
||||
private final String upgradedVersion;
|
||||
private final String[] upgradeRange;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,186 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.upgrade;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.apache.cloudstack.utils.CloudStackVersion;
|
||||
|
||||
import com.cloud.upgrade.dao.DbUpgrade;
|
||||
|
||||
/**
|
||||
* @since 4.12.0.0
|
||||
*/
|
||||
public final class DatabaseVersionHierarchy {
|
||||
private final ImmutableList<VersionNode> hierarchy;
|
||||
|
||||
private DatabaseVersionHierarchy(ImmutableList<VersionNode> hierarchy) {
|
||||
this.hierarchy = hierarchy;
|
||||
}
|
||||
|
||||
public static DatabaseVersionHierarchyBuilder builder() {
|
||||
return new DatabaseVersionHierarchyBuilder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if current hierarchy of Database Versions contains <code>version</code>.
|
||||
*
|
||||
* @param version The version to check if hierarchy contains it
|
||||
*
|
||||
* @return true if hierarchy contains the version, false if not
|
||||
*/
|
||||
public boolean contains(final CloudStackVersion version) {
|
||||
return toList().contains(version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates an upgrade path for the passed <code>fromVersion</code>. If the <code>fromVersion</code>
|
||||
* doesn't exist in list of available <code>VersionNode</code> hierarchy, then calculation assumes that
|
||||
* the <code>fromVersion</code> required no schema migrations or data conversions and no upgrade path was
|
||||
* defined for it. Therefore, we find the most recent version with database migrations before the
|
||||
* <code>fromVersion</code> and adopt that upgrade path list.
|
||||
*
|
||||
* @param fromVersion The version from which the upgrade will occur
|
||||
*
|
||||
* @return The upgrade path from <code>fromVersion</code> to <code>LATEST</code> version.
|
||||
*/
|
||||
public DbUpgrade[] getPath(final CloudStackVersion fromVersion) {
|
||||
return getPath(fromVersion, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates an upgrade path for the passed <code>fromVersion</code> and <code>toVersion</code>. If the
|
||||
* <code>fromVersion</code> doesn't exist in list of available <code>VersionNode</code> hierarchy, then
|
||||
* calculation assumes that the <code>fromVersion</code> required no schema migrations or data conversions
|
||||
* and no upgrade path was defined for it. Therefore, we find the most recent version with database
|
||||
* migrations before the <code>fromVersion</code> and adopt that upgrade path list up to <code>toVersion</code>.
|
||||
* If <code>toVersion</code> is null, we're going to find the upgrade path up to the latest available version.
|
||||
*
|
||||
* @param fromVersion The version from which the upgrade will occur
|
||||
* @param toVersion The version up to which the upgrade will occur (can be null)
|
||||
*
|
||||
* @return The upgrade path from <code>fromVersion</code> to <code>toVersion</code>
|
||||
*/
|
||||
public DbUpgrade[] getPath(final CloudStackVersion fromVersion, final CloudStackVersion toVersion) {
|
||||
if (fromVersion == null) {
|
||||
return new DbUpgrade[0];
|
||||
}
|
||||
|
||||
// we cannot find the version specified, so get the
|
||||
// most recent one immediately before this version
|
||||
if (!contains(fromVersion)) {
|
||||
return getPath(getRecentVersion(fromVersion), toVersion);
|
||||
}
|
||||
|
||||
final Predicate<? super VersionNode> predicate;
|
||||
|
||||
if (toVersion == null) {
|
||||
// all the available versions greater than or equal to fromVersion
|
||||
predicate = node -> node.version.compareTo(fromVersion) > -1;
|
||||
} else {
|
||||
// all the available versions greater than or equal to fromVersion AND less than toVersion
|
||||
predicate = node -> node.version.compareTo(fromVersion) > -1 && node.version.compareTo(toVersion) < 0;
|
||||
}
|
||||
|
||||
// get upgrade path from version forward (include version itself in the path)
|
||||
return hierarchy
|
||||
.stream()
|
||||
.filter(predicate)
|
||||
.filter(distinct(node -> node.upgrader.getUpgradedVersion()))
|
||||
.map(node -> node.upgrader)
|
||||
.toArray(DbUpgrade[]::new);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the most recent <code>CloudStackVersion</code> immediately before <code>fromVersion</code>
|
||||
*
|
||||
* @param fromVersion The version to look up its immediate previous available version
|
||||
*
|
||||
* @return The <code>CloudStackVersion</code> or null
|
||||
*
|
||||
* @since 4.8.2.0 (refactored in 4.11.1.0)
|
||||
*/
|
||||
private CloudStackVersion getRecentVersion(final CloudStackVersion fromVersion) {
|
||||
if (fromVersion == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// find the most recent version immediately before fromVersion
|
||||
return toList()
|
||||
.reverse()
|
||||
.stream()
|
||||
.filter(version -> fromVersion.compareTo(version) < 0)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate immutable list of available <code>CloudstackVersion</code> in the hierarchy
|
||||
*
|
||||
* @return list of available versions
|
||||
*/
|
||||
public ImmutableList<CloudStackVersion> toList() {
|
||||
List<CloudStackVersion> versions = hierarchy
|
||||
.stream()
|
||||
.map(node -> node.version)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return ImmutableList.copyOf(versions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the distinct <code>VersionNode</code> based on the provided <code>getUpgradedVersion()</code>
|
||||
*/
|
||||
private Predicate<VersionNode> distinct(Function<VersionNode, String> keyExtractor) {
|
||||
Map<String, Boolean> seen = new ConcurrentHashMap<>();
|
||||
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
|
||||
}
|
||||
|
||||
private static class VersionNode {
|
||||
final CloudStackVersion version;
|
||||
final DbUpgrade upgrader;
|
||||
|
||||
private VersionNode(final CloudStackVersion version, final DbUpgrade upgrader) {
|
||||
this.version = version;
|
||||
this.upgrader = upgrader;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class DatabaseVersionHierarchyBuilder {
|
||||
private final List<VersionNode> hierarchyBuilder = new LinkedList<>();
|
||||
|
||||
private DatabaseVersionHierarchyBuilder() {
|
||||
}
|
||||
|
||||
public DatabaseVersionHierarchyBuilder next(final String version, final DbUpgrade upgrader) {
|
||||
hierarchyBuilder.add(new VersionNode(CloudStackVersion.parse(version), upgrader));
|
||||
return this;
|
||||
}
|
||||
|
||||
public DatabaseVersionHierarchy build() {
|
||||
return new DatabaseVersionHierarchy(ImmutableList.copyOf(hierarchyBuilder));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -16,25 +16,29 @@
|
|||
// under the License.
|
||||
package com.cloud.upgrade;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.apache.cloudstack.utils.CloudStackVersion;
|
||||
|
||||
import com.cloud.upgrade.DatabaseUpgradeChecker.NoopDbUpgrade;
|
||||
import com.cloud.upgrade.dao.DbUpgrade;
|
||||
import com.cloud.upgrade.dao.Upgrade452to460;
|
||||
import com.cloud.upgrade.dao.Upgrade41000to41100;
|
||||
import com.cloud.upgrade.dao.Upgrade41100to41110;
|
||||
import com.cloud.upgrade.dao.Upgrade41110to41200;
|
||||
import com.cloud.upgrade.dao.Upgrade452to453;
|
||||
import com.cloud.upgrade.dao.Upgrade453to460;
|
||||
import com.cloud.upgrade.dao.Upgrade460to461;
|
||||
import com.cloud.upgrade.dao.Upgrade461to470;
|
||||
import com.cloud.upgrade.dao.Upgrade470to471;
|
||||
import com.cloud.upgrade.dao.Upgrade471to480;
|
||||
import com.cloud.upgrade.dao.Upgrade480to481;
|
||||
import com.cloud.upgrade.dao.Upgrade490to4910;
|
||||
import com.cloud.upgrade.dao.Upgrade41000to41100;
|
||||
import com.cloud.upgrade.dao.Upgrade41100to41110;
|
||||
import com.cloud.upgrade.dao.Upgrade41110to41200;
|
||||
import org.apache.cloudstack.utils.CloudStackVersion;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class DatabaseUpgradeCheckerTest {
|
||||
|
||||
|
|
@ -72,7 +76,7 @@ public class DatabaseUpgradeCheckerTest {
|
|||
assertTrue(upgrades.length >= 1);
|
||||
assertTrue(upgrades[0] instanceof Upgrade490to4910);
|
||||
|
||||
assertTrue(Arrays.equals(new String[] { "4.9.0", currentVersion.toString()}, upgrades[0].getUpgradableVersionRange()));
|
||||
assertTrue(Arrays.equals(new String[] {"4.9.0", currentVersion.toString()}, upgrades[0].getUpgradableVersionRange()));
|
||||
assertEquals(currentVersion.toString(), upgrades[0].getUpgradedVersion());
|
||||
|
||||
}
|
||||
|
|
@ -95,8 +99,7 @@ public class DatabaseUpgradeCheckerTest {
|
|||
assertTrue(upgrades[1] instanceof Upgrade41100to41110);
|
||||
assertTrue(upgrades[2] instanceof Upgrade41110to41200);
|
||||
|
||||
assertTrue(Arrays.equals(new String[] { "4.11.0.0", "4.11.1.0"},
|
||||
upgrades[1].getUpgradableVersionRange()));
|
||||
assertTrue(Arrays.equals(new String[] {"4.11.0.0", "4.11.1.0"}, upgrades[1].getUpgradableVersionRange()));
|
||||
assertEquals(currentVersion.toString(), upgrades[2].getUpgradedVersion());
|
||||
|
||||
}
|
||||
|
|
@ -135,15 +138,33 @@ public class DatabaseUpgradeCheckerTest {
|
|||
|
||||
assertNotNull(upgrades);
|
||||
|
||||
assertTrue(upgrades[0] instanceof Upgrade452to460);
|
||||
assertTrue(upgrades[1] instanceof Upgrade460to461);
|
||||
assertTrue(upgrades[2] instanceof Upgrade461to470);
|
||||
assertTrue(upgrades[3] instanceof Upgrade470to471);
|
||||
assertTrue(upgrades[4] instanceof Upgrade471to480);
|
||||
assertTrue(upgrades[5] instanceof Upgrade480to481);
|
||||
|
||||
assertTrue(Arrays.equals(new String[] { "4.8.1", currentVersion.toString()}, upgrades[6].getUpgradableVersionRange()));
|
||||
assertEquals(currentVersion.toString(), upgrades[6].getUpgradedVersion());
|
||||
assertTrue(upgrades[0] instanceof Upgrade452to453);
|
||||
assertTrue(upgrades[1] instanceof Upgrade453to460);
|
||||
assertTrue(upgrades[2] instanceof Upgrade460to461);
|
||||
assertTrue(upgrades[3] instanceof Upgrade461to470);
|
||||
assertTrue(upgrades[4] instanceof Upgrade470to471);
|
||||
assertTrue(upgrades[5] instanceof Upgrade471to480);
|
||||
assertTrue(upgrades[6] instanceof Upgrade480to481);
|
||||
|
||||
assertTrue(Arrays.equals(new String[] {"4.8.1", currentVersion.toString()}, upgrades[upgrades.length - 1].getUpgradableVersionRange()));
|
||||
assertEquals(currentVersion.toString(), upgrades[upgrades.length - 1].getUpgradedVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCalculateUpgradePathUnkownDbVersion() {
|
||||
|
||||
final CloudStackVersion dbVersion = CloudStackVersion.parse("4.99.0.0");
|
||||
assertNotNull(dbVersion);
|
||||
|
||||
final CloudStackVersion currentVersion = CloudStackVersion.parse("4.99.1.0");
|
||||
assertNotNull(currentVersion);
|
||||
|
||||
final DatabaseUpgradeChecker checker = new DatabaseUpgradeChecker();
|
||||
final DbUpgrade[] upgrades = checker.calculateUpgradePath(dbVersion, currentVersion);
|
||||
assertNotNull(upgrades);
|
||||
assertTrue(upgrades.length == 1);
|
||||
assertTrue(upgrades[0] instanceof NoopDbUpgrade);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue