Skip to content

Commit 2211182

Browse files
authored
fix guestOsMapper and move mapping code to latest upgrade (#7095)
1 parent 07e4deb commit 2211182

7 files changed

Lines changed: 485 additions & 412 deletions

File tree

engine/schema/src/main/java/com/cloud/upgrade/GuestOsMapper.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,24 @@ public GuestOsMapper() {
5353

5454
private long getGuestOsId(long categoryId, String displayName) {
5555
GuestOSVO guestOS = guestOSDao.findByCategoryIdAndDisplayNameOrderByCreatedDesc(categoryId, displayName);
56+
long id = 0l;
5657
if (guestOS != null) {
57-
guestOS.getId();
58+
id = guestOS.getId();
59+
} else {
60+
LOG.warn(String.format("Unable to find the guest OS details with category id: %d and display name: %s", + categoryId, displayName));
5861
}
59-
60-
LOG.warn("Unable to find the guest OS details with category id: " + categoryId + " and display name: " + displayName);
61-
return 0;
62+
return id;
6263
}
6364

6465
private long getGuestOsIdFromHypervisorMapping(GuestOSHypervisorMapping mapping) {
6566
GuestOSHypervisorVO guestOSHypervisorVO = guestOSHypervisorDao.findByOsNameAndHypervisorOrderByCreatedDesc(mapping.getGuestOsName(), mapping.getHypervisorType(), mapping.getHypervisorVersion());
67+
long id = 0;
6668
if (guestOSHypervisorVO != null) {
67-
guestOSHypervisorVO.getGuestOsId();
69+
id = guestOSHypervisorVO.getGuestOsId();
70+
} else {
71+
LOG.warn(String.format("Unable to find the guest OS hypervisor mapping details for %s", mapping.toString()));
6872
}
69-
70-
LOG.debug("Unable to find the guest OS hypervisor mapping details for " + mapping.toString());
71-
return 0;
73+
return id;
7274
}
7375

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

engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41400to41500.java

Lines changed: 0 additions & 238 deletions
Large diffs are not rendered by default.

engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41500to41510.java

Lines changed: 1 addition & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,19 @@
2222
import java.sql.PreparedStatement;
2323
import java.sql.ResultSet;
2424
import java.sql.SQLException;
25-
import java.util.ArrayList;
2625
import java.util.HashMap;
2726
import java.util.HashSet;
28-
import java.util.List;
2927
import java.util.Map;
3028
import java.util.Set;
3129

3230
import org.apache.log4j.Logger;
3331

3432
import com.cloud.hypervisor.Hypervisor;
35-
import com.cloud.storage.GuestOSHypervisorMapping;
36-
import com.cloud.upgrade.GuestOsMapper;
3733
import com.cloud.utils.exception.CloudRuntimeException;
3834

3935
public class Upgrade41500to41510 implements DbUpgrade, DbUpgradeSystemVmTemplate {
4036

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

4439
@Override
4540
public String[] getUpgradableVersionRange() {
@@ -69,8 +64,7 @@ public InputStream[] getPrepareScripts() {
6964

7065
@Override
7166
public void performDataMigration(Connection conn) {
72-
correctGuestOsNames(conn);
73-
updateGuestOsMappings(conn);
67+
// nothing to do for this upgrade
7468
}
7569

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

245-
private void correctGuestOsNames(final Connection conn) {
246-
guestOsMapper.updateGuestOsName(7, "Fedora Linux", "Fedora Linux (32 bit)");
247-
guestOsMapper.updateGuestOsName(7, "Mandriva Linux", "Mandriva Linux (32 bit)");
248-
249-
GuestOSHypervisorMapping mapping = new GuestOSHypervisorMapping("VMware", "6.7.3", "opensuseGuest");
250-
guestOsMapper.updateGuestOsNameFromMapping("OpenSUSE Linux (32 bit)", mapping);
251-
}
252-
253-
private void updateGuestOsMappings(final Connection conn) {
254-
LOG.debug("Updating guest OS mappings");
255-
256-
// Add support for SUSE Linux Enterprise Desktop 12 SP3 (64-bit) for Xenserver 8.1.0
257-
List<GuestOSHypervisorMapping> mappings = new ArrayList<GuestOSHypervisorMapping>();
258-
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise Desktop 12 SP3 (64-bit)"));
259-
guestOsMapper.addGuestOsAndHypervisorMappings (5, "SUSE Linux Enterprise Desktop 12 SP3 (64-bit)", mappings);
260-
mappings.clear();
261-
262-
// Add support for SUSE Linux Enterprise Desktop 12 SP4 (64-bit) for Xenserver 8.1.0
263-
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise Desktop 12 SP4 (64-bit)"));
264-
guestOsMapper.addGuestOsAndHypervisorMappings (5, "SUSE Linux Enterprise Desktop 12 SP4 (64-bit)", mappings);
265-
mappings.clear();
266-
267-
// Add support for SUSE Linux Enterprise Server 12 SP4 (64-bit) for Xenserver 8.1.0
268-
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise Server 12 SP4 (64-bit)"));
269-
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "NeoKylin Linux Server 7"));
270-
guestOsMapper.addGuestOsAndHypervisorMappings(5, "SUSE Linux Enterprise Server 12 SP4 (64-bit)", mappings);
271-
mappings.clear();
272-
273-
// Add support for Scientific Linux 7 for Xenserver 8.1.0
274-
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Scientific Linux 7"));
275-
guestOsMapper.addGuestOsAndHypervisorMappings (9, "Scientific Linux 7", mappings);
276-
mappings.clear();
277-
278-
// Add support for NeoKylin Linux Server 7 for Xenserver 8.1.0
279-
guestOsMapper.addGuestOsAndHypervisorMappings(9, "NeoKylin Linux Server 7", mappings); //334
280-
mappings.clear();
281-
282-
// Pass Guest OS Ids to update pre-4.14 mappings
283-
// Add support CentOS 8 for Xenserver 8.1.0
284-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "CentOS 8"), 297);
285-
286-
// Add support for Debian Buster 10 for Xenserver 8.1.0
287-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"), 292);
288-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"), 293);
289-
290-
// Add support for SUSE Linux Enterprise 15 (64-bit) for Xenserver 8.1.0
291-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise 15 (64-bit)"), 291);
292-
293-
// Add support for Ubuntu Focal Fossa 20.04 for Xenserver 8.2.0
294-
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
295-
guestOsMapper.addGuestOsAndHypervisorMappings(10, "Ubuntu 20.04 LTS", mappings);
296-
mappings.clear();
297-
298-
// Add support for darwin19_64Guest from VMware 7.0
299-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0", "darwin19_64Guest"));
300-
guestOsMapper.addGuestOsAndHypervisorMappings(7, "macOS 10.15 (64 bit)", mappings);
301-
mappings.clear();
302-
303-
// Add support for debian11_64Guest from VMware 7.0
304-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0", "debian11_64Guest"));
305-
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Debian GNU/Linux 11 (64-bit)", mappings);
306-
mappings.clear();
307-
308-
// Add support for debian11Guest from VMware 7.0
309-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0", "debian11Guest"));
310-
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Debian GNU/Linux 11 (32-bit)", mappings);
311-
mappings.clear();
312-
313-
// Add support for windows2019srv_64Guest from VMware 7.0
314-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0", "windows2019srv_64Guest"), 276);
315-
316-
// Add support for amazonlinux3_64Guest from VMware 7.0.1.0
317-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "amazonlinux3_64Guest"));
318-
guestOsMapper.addGuestOsAndHypervisorMappings(7, "Amazon Linux 3 (64 bit)", mappings);
319-
mappings.clear();
320-
321-
// Add support for asianux9_64Guest from VMware 7.0.1.0
322-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "asianux9_64Guest"));
323-
guestOsMapper.addGuestOsAndHypervisorMappings(7, "Asianux Server 9 (64 bit)", mappings);
324-
mappings.clear();
325-
326-
// Add support for centos9_64Guest from VMware 7.0.1.0
327-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "centos9_64Guest"));
328-
guestOsMapper.addGuestOsAndHypervisorMappings(1, "CentOS 9", mappings);
329-
mappings.clear();
330-
331-
// Add support for darwin20_64Guest from VMware 7.0.1.0
332-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "darwin20_64Guest"));
333-
// Add support for darwin21_64Guest from VMware 7.0.1.0
334-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "darwin21_64Guest"));
335-
guestOsMapper.addGuestOsAndHypervisorMappings(7, "macOS 11 (64 bit)", mappings);
336-
mappings.clear();
337-
338-
// Add support for freebsd13_64Guest from VMware 7.0.1.0
339-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "freebsd13_64Guest"));
340-
guestOsMapper.addGuestOsAndHypervisorMappings(9, "FreeBSD 13 (64-bit)", mappings);
341-
mappings.clear();
342-
343-
// Add support for freebsd13Guest from VMware 7.0.1.0
344-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "freebsd13Guest"));
345-
guestOsMapper.addGuestOsAndHypervisorMappings(9, "FreeBSD 13 (32-bit)", mappings);
346-
mappings.clear();
347-
348-
// Add support for oracleLinux9_64Guest from VMware 7.0.1.0
349-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "oracleLinux9_64Guest"));
350-
guestOsMapper.addGuestOsAndHypervisorMappings(3, "Oracle Linux 9", mappings);
351-
mappings.clear();
352-
353-
// Add support for other5xLinux64Guest from VMware 7.0.1.0
354-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "other5xLinux64Guest"));
355-
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Linux 5.x Kernel (64-bit)", mappings);
356-
mappings.clear();
357-
358-
// Add support for other5xLinuxGuest from VMware 7.0.1.0
359-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "other5xLinuxGuest"));
360-
guestOsMapper.addGuestOsAndHypervisorMappings(2, "Linux 5.x Kernel (32-bit)", mappings);
361-
mappings.clear();
362-
363-
// Add support for rhel9_64Guest from VMware 7.0.1.0
364-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "rhel9_64Guest"));
365-
guestOsMapper.addGuestOsAndHypervisorMappings(4, "Red Hat Enterprise Linux 9.0", mappings);
366-
mappings.clear();
367-
368-
// Add support for sles16_64Guest from VMware 7.0.1.0
369-
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "sles16_64Guest"));
370-
guestOsMapper.addGuestOsAndHypervisorMappings(5, "SUSE Linux Enterprise Server 16 (64-bit)", mappings);
371-
mappings.clear();
372-
373-
// Add support for windows2019srvNext_64Guest from VMware 7.0.1.0 - Pass Guest OS Ids to update pre-4.14 mappings
374-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "windows2019srvNext_64Guest"), 276);
375-
}
376-
377239
@Override
378240
public InputStream[] getCleanupScripts() {
379241
final String scriptFile = "META-INF/db/schema-41500to41510-cleanup.sql";

engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41510to41520.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
// under the License.
1717
package com.cloud.upgrade.dao;
1818

19-
import com.cloud.storage.GuestOSHypervisorMapping;
20-
import com.cloud.upgrade.GuestOsMapper;
2119
import com.cloud.utils.exception.CloudRuntimeException;
2220

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

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

3330
@Override
3431
public String[] getUpgradableVersionRange() {
@@ -58,12 +55,7 @@ public InputStream[] getPrepareScripts() {
5855

5956
@Override
6057
public void performDataMigration(Connection conn) {
61-
correctGuestOsIdsInHypervisorMapping(conn);
62-
}
63-
64-
private void correctGuestOsIdsInHypervisorMapping(final Connection conn) {
65-
LOG.debug("Correcting guest OS ids in hypervisor mappings");
66-
guestOsMapper.updateGuestOsIdInHypervisorMapping(conn, 10, "Ubuntu 20.04 LTS", new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
58+
// nothing to do
6759
}
6860

6961
@Override

engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41520to41600.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import java.util.Arrays;
2626
import java.util.List;
2727

28-
import com.cloud.storage.GuestOSHypervisorMapping;
29-
import com.cloud.upgrade.GuestOsMapper;
3028
import com.cloud.upgrade.RolePermissionChecker;
3129
import com.cloud.upgrade.SystemVmTemplateRegistration;
3230
import org.apache.cloudstack.acl.RoleType;
@@ -40,7 +38,6 @@ public class Upgrade41520to41600 implements DbUpgrade, DbUpgradeSystemVmTemplate
4038
final static Logger LOG = Logger.getLogger(Upgrade41520to41600.class);
4139
private SystemVmTemplateRegistration systemVmTemplateRegistration;
4240
private RolePermissionChecker rolePermissionChecker = new RolePermissionChecker();
43-
private GuestOsMapper guestOsMapper = new GuestOsMapper();
4441

4542
public Upgrade41520to41600() {
4643
}
@@ -75,12 +72,6 @@ public InputStream[] getPrepareScripts() {
7572
public void performDataMigration(Connection conn) {
7673
generateUuidForExistingSshKeyPairs(conn);
7774
populateAnnotationPermissions(conn);
78-
correctGuestOsIdsInHypervisorMapping(conn);
79-
}
80-
81-
private void correctGuestOsIdsInHypervisorMapping(final Connection conn) {
82-
LOG.debug("Correcting guest OS ids in hypervisor mappings");
83-
guestOsMapper.updateGuestOsIdInHypervisorMapping(conn, 10, "Ubuntu 20.04 LTS", new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
8475
}
8576

8677
private void populateAnnotationPermissions(Connection conn) {

engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41600to41610.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
package com.cloud.upgrade.dao;
1919

20-
import com.cloud.storage.GuestOSHypervisorMapping;
21-
import com.cloud.upgrade.GuestOsMapper;
2220
import com.cloud.upgrade.SystemVmTemplateRegistration;
2321
import com.cloud.utils.exception.CloudRuntimeException;
2422
import org.apache.log4j.Logger;
@@ -30,7 +28,6 @@ public class Upgrade41600to41610 implements DbUpgrade, DbUpgradeSystemVmTemplate
3028

3129
final static Logger LOG = Logger.getLogger(Upgrade41600to41610.class);
3230
private SystemVmTemplateRegistration systemVmTemplateRegistration;
33-
private GuestOsMapper guestOsMapper = new GuestOsMapper();
3431

3532
@Override
3633
public String[] getUpgradableVersionRange() {
@@ -60,12 +57,7 @@ public InputStream[] getPrepareScripts() {
6057

6158
@Override
6259
public void performDataMigration(Connection conn) {
63-
correctGuestOsIdsInHypervisorMapping(conn);
64-
}
65-
66-
private void correctGuestOsIdsInHypervisorMapping(final Connection conn) {
67-
LOG.debug("Correcting guest OS ids in hypervisor mappings");
68-
guestOsMapper.updateGuestOsIdInHypervisorMapping(conn, 10, "Ubuntu 20.04 LTS", new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
60+
// nothing to do
6961
}
7062

7163
@Override

0 commit comments

Comments
 (0)