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
18 changes: 10 additions & 8 deletions engine/schema/src/main/java/com/cloud/upgrade/GuestOsMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,24 @@ public GuestOsMapper() {

private long getGuestOsId(long categoryId, String displayName) {
GuestOSVO guestOS = guestOSDao.findByCategoryIdAndDisplayNameOrderByCreatedDesc(categoryId, displayName);
long id = 0l;
if (guestOS != null) {
guestOS.getId();
id = guestOS.getId();
} else {
LOG.warn(String.format("Unable to find the guest OS details with category id: %d and display name: %s", + categoryId, displayName));
}

LOG.warn("Unable to find the guest OS details with category id: " + categoryId + " and display name: " + displayName);
return 0;
return id;
}

private long getGuestOsIdFromHypervisorMapping(GuestOSHypervisorMapping mapping) {
GuestOSHypervisorVO guestOSHypervisorVO = guestOSHypervisorDao.findByOsNameAndHypervisorOrderByCreatedDesc(mapping.getGuestOsName(), mapping.getHypervisorType(), mapping.getHypervisorVersion());
long id = 0;
if (guestOSHypervisorVO != null) {
guestOSHypervisorVO.getGuestOsId();
id = guestOSHypervisorVO.getGuestOsId();
} else {
LOG.warn(String.format("Unable to find the guest OS hypervisor mapping details for %s", mapping.toString()));
}

LOG.debug("Unable to find the guest OS hypervisor mapping details for " + mapping.toString());
return 0;
return id;
}

public void addGuestOsAndHypervisorMappings(long categoryId, String displayName, List<GuestOSHypervisorMapping> mappings) {
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,19 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.log4j.Logger;

import com.cloud.hypervisor.Hypervisor;
import com.cloud.storage.GuestOSHypervisorMapping;
import com.cloud.upgrade.GuestOsMapper;
import com.cloud.utils.exception.CloudRuntimeException;

public class Upgrade41500to41510 implements DbUpgrade, DbUpgradeSystemVmTemplate {

final static Logger LOG = Logger.getLogger(Upgrade41500to41510.class);
private GuestOsMapper guestOsMapper = new GuestOsMapper();

@Override
public String[] getUpgradableVersionRange() {
Expand Down Expand Up @@ -69,8 +64,7 @@ public InputStream[] getPrepareScripts() {

@Override
public void performDataMigration(Connection conn) {
correctGuestOsNames(conn);
updateGuestOsMappings(conn);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about these schema changes, what would happen to templates/VMs created from existing guest OS on previous versions?

// nothing to do for this upgrade
}

@Override
Expand Down Expand Up @@ -242,138 +236,6 @@ public void updateSystemVmTemplates(final Connection conn) {
LOG.debug("Updating System Vm Template IDs Complete");
}

private void correctGuestOsNames(final Connection conn) {
guestOsMapper.updateGuestOsName(7, "Fedora Linux", "Fedora Linux (32 bit)");
guestOsMapper.updateGuestOsName(7, "Mandriva Linux", "Mandriva Linux (32 bit)");

GuestOSHypervisorMapping mapping = new GuestOSHypervisorMapping("VMware", "6.7.3", "opensuseGuest");
guestOsMapper.updateGuestOsNameFromMapping("OpenSUSE Linux (32 bit)", mapping);
}

private void updateGuestOsMappings(final Connection conn) {
LOG.debug("Updating guest OS mappings");

// Add support for SUSE Linux Enterprise Desktop 12 SP3 (64-bit) for Xenserver 8.1.0
List<GuestOSHypervisorMapping> mappings = new ArrayList<GuestOSHypervisorMapping>();
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise Desktop 12 SP3 (64-bit)"));
guestOsMapper.addGuestOsAndHypervisorMappings (5, "SUSE Linux Enterprise Desktop 12 SP3 (64-bit)", mappings);
mappings.clear();

// Add support for SUSE Linux Enterprise Desktop 12 SP4 (64-bit) for Xenserver 8.1.0
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise Desktop 12 SP4 (64-bit)"));
guestOsMapper.addGuestOsAndHypervisorMappings (5, "SUSE Linux Enterprise Desktop 12 SP4 (64-bit)", mappings);
mappings.clear();

// Add support for SUSE Linux Enterprise Server 12 SP4 (64-bit) for Xenserver 8.1.0
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise Server 12 SP4 (64-bit)"));
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "NeoKylin Linux Server 7"));
guestOsMapper.addGuestOsAndHypervisorMappings(5, "SUSE Linux Enterprise Server 12 SP4 (64-bit)", mappings);
mappings.clear();

// Add support for Scientific Linux 7 for Xenserver 8.1.0
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Scientific Linux 7"));
guestOsMapper.addGuestOsAndHypervisorMappings (9, "Scientific Linux 7", mappings);
mappings.clear();

// Add support for NeoKylin Linux Server 7 for Xenserver 8.1.0
guestOsMapper.addGuestOsAndHypervisorMappings(9, "NeoKylin Linux Server 7", mappings); //334
mappings.clear();

// Pass Guest OS Ids to update pre-4.14 mappings
// Add support CentOS 8 for Xenserver 8.1.0
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "CentOS 8"), 297);

// Add support for Debian Buster 10 for Xenserver 8.1.0
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"), 292);
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"), 293);

// Add support for SUSE Linux Enterprise 15 (64-bit) for Xenserver 8.1.0
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise 15 (64-bit)"), 291);

// Add support for Ubuntu Focal Fossa 20.04 for Xenserver 8.2.0
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
guestOsMapper.addGuestOsAndHypervisorMappings(10, "Ubuntu 20.04 LTS", mappings);
mappings.clear();

// Add support for darwin19_64Guest from VMware 7.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0", "darwin19_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(7, "macOS 10.15 (64 bit)", mappings);
mappings.clear();

// Add support for debian11_64Guest from VMware 7.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0", "debian11_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Debian GNU/Linux 11 (64-bit)", mappings);
mappings.clear();

// Add support for debian11Guest from VMware 7.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0", "debian11Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Debian GNU/Linux 11 (32-bit)", mappings);
mappings.clear();

// Add support for windows2019srv_64Guest from VMware 7.0
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0", "windows2019srv_64Guest"), 276);

// Add support for amazonlinux3_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "amazonlinux3_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(7, "Amazon Linux 3 (64 bit)", mappings);
mappings.clear();

// Add support for asianux9_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "asianux9_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(7, "Asianux Server 9 (64 bit)", mappings);
mappings.clear();

// Add support for centos9_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "centos9_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(1, "CentOS 9", mappings);
mappings.clear();

// Add support for darwin20_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "darwin20_64Guest"));
// Add support for darwin21_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "darwin21_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(7, "macOS 11 (64 bit)", mappings);
mappings.clear();

// Add support for freebsd13_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "freebsd13_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(9, "FreeBSD 13 (64-bit)", mappings);
mappings.clear();

// Add support for freebsd13Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "freebsd13Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(9, "FreeBSD 13 (32-bit)", mappings);
mappings.clear();

// Add support for oracleLinux9_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "oracleLinux9_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(3, "Oracle Linux 9", mappings);
mappings.clear();

// Add support for other5xLinux64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "other5xLinux64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Linux 5.x Kernel (64-bit)", mappings);
mappings.clear();

// Add support for other5xLinuxGuest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "other5xLinuxGuest"));
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Linux 5.x Kernel (32-bit)", mappings);
mappings.clear();

// Add support for rhel9_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "rhel9_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(4, "Red Hat Enterprise Linux 9.0", mappings);
mappings.clear();

// Add support for sles16_64Guest from VMware 7.0.1.0
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "sles16_64Guest"));
guestOsMapper.addGuestOsAndHypervisorMappings(5, "SUSE Linux Enterprise Server 16 (64-bit)", mappings);
mappings.clear();

// Add support for windows2019srvNext_64Guest from VMware 7.0.1.0 - Pass Guest OS Ids to update pre-4.14 mappings
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "windows2019srvNext_64Guest"), 276);
}

@Override
public InputStream[] getCleanupScripts() {
final String scriptFile = "META-INF/db/schema-41500to41510-cleanup.sql";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
// under the License.
package com.cloud.upgrade.dao;

import com.cloud.storage.GuestOSHypervisorMapping;
import com.cloud.upgrade.GuestOsMapper;
import com.cloud.utils.exception.CloudRuntimeException;

import java.io.InputStream;
Expand All @@ -28,7 +26,6 @@
public class Upgrade41510to41520 implements DbUpgrade {

final static Logger LOG = Logger.getLogger(Upgrade41510to41520.class);
private GuestOsMapper guestOsMapper = new GuestOsMapper();

@Override
public String[] getUpgradableVersionRange() {
Expand Down Expand Up @@ -58,12 +55,7 @@ public InputStream[] getPrepareScripts() {

@Override
public void performDataMigration(Connection conn) {
correctGuestOsIdsInHypervisorMapping(conn);
}

private void correctGuestOsIdsInHypervisorMapping(final Connection conn) {
LOG.debug("Correcting guest OS ids in hypervisor mappings");
guestOsMapper.updateGuestOsIdInHypervisorMapping(conn, 10, "Ubuntu 20.04 LTS", new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
// nothing to do
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
import java.util.Arrays;
import java.util.List;

import com.cloud.storage.GuestOSHypervisorMapping;
import com.cloud.upgrade.GuestOsMapper;
import com.cloud.upgrade.RolePermissionChecker;
import com.cloud.upgrade.SystemVmTemplateRegistration;
import org.apache.cloudstack.acl.RoleType;
Expand All @@ -40,7 +38,6 @@ public class Upgrade41520to41600 implements DbUpgrade, DbUpgradeSystemVmTemplate
final static Logger LOG = Logger.getLogger(Upgrade41520to41600.class);
private SystemVmTemplateRegistration systemVmTemplateRegistration;
private RolePermissionChecker rolePermissionChecker = new RolePermissionChecker();
private GuestOsMapper guestOsMapper = new GuestOsMapper();

public Upgrade41520to41600() {
}
Expand Down Expand Up @@ -75,12 +72,6 @@ public InputStream[] getPrepareScripts() {
public void performDataMigration(Connection conn) {
generateUuidForExistingSshKeyPairs(conn);
populateAnnotationPermissions(conn);
correctGuestOsIdsInHypervisorMapping(conn);
}

private void correctGuestOsIdsInHypervisorMapping(final Connection conn) {
LOG.debug("Correcting guest OS ids in hypervisor mappings");
guestOsMapper.updateGuestOsIdInHypervisorMapping(conn, 10, "Ubuntu 20.04 LTS", new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
}

private void populateAnnotationPermissions(Connection conn) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

package com.cloud.upgrade.dao;

import com.cloud.storage.GuestOSHypervisorMapping;
import com.cloud.upgrade.GuestOsMapper;
import com.cloud.upgrade.SystemVmTemplateRegistration;
import com.cloud.utils.exception.CloudRuntimeException;
import org.apache.log4j.Logger;
Expand All @@ -30,7 +28,6 @@ public class Upgrade41600to41610 implements DbUpgrade, DbUpgradeSystemVmTemplate

final static Logger LOG = Logger.getLogger(Upgrade41600to41610.class);
private SystemVmTemplateRegistration systemVmTemplateRegistration;
private GuestOsMapper guestOsMapper = new GuestOsMapper();

@Override
public String[] getUpgradableVersionRange() {
Expand Down Expand Up @@ -60,12 +57,7 @@ public InputStream[] getPrepareScripts() {

@Override
public void performDataMigration(Connection conn) {
correctGuestOsIdsInHypervisorMapping(conn);
}

private void correctGuestOsIdsInHypervisorMapping(final Connection conn) {
LOG.debug("Correcting guest OS ids in hypervisor mappings");
guestOsMapper.updateGuestOsIdInHypervisorMapping(conn, 10, "Ubuntu 20.04 LTS", new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
// nothing to do
}

@Override
Expand Down
Loading