Skip to content

Commit aa881f6

Browse files
authored
avoid hard coded guest OS IDs (apache#7279)
1 parent 0457cc5 commit aa881f6

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,16 @@ private boolean addGuestOs(long categoryId, String displayName) {
102102
guestOS = guestOSDao.persist(guestOS);
103103
return (guestOS != null);
104104
}
105+
public void addGuestOsHypervisorMapping(GuestOSHypervisorMapping mapping, long category, String displayName) {
106+
long guestOsId = getGuestOsId(category, displayName);
107+
if (guestOsId == 0) {
108+
LOG.error(String.format("no guest os found for category %d and name %s, skipping mapping it to %s/%s", guestOsId, displayName, mapping.getHypervisorType(), mapping.getHypervisorVersion()));
109+
} else {
110+
addGuestOsHypervisorMapping(mapping, guestOsId);
111+
}
112+
}
105113

106-
public void addGuestOsHypervisorMapping(GuestOSHypervisorMapping mapping, long guestOsId) {
114+
private void addGuestOsHypervisorMapping(GuestOSHypervisorMapping mapping, long guestOsId) {
107115
if(!isValidGuestOSHypervisorMapping(mapping)) {
108116
return;
109117
}

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -283,14 +283,18 @@ private void updateGuestOsMappings() {
283283

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

288289
// Add support for Debian Buster 10 for Xenserver 8.1.0
289-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"), 292);
290-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"), 293);
290+
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"),
291+
2, "Debian GNU/Linux 10 (32-bit)");
292+
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "Debian Buster 10"),
293+
2, "Debian GNU/Linux 10 (64-bit)");
291294

292295
// Add support for SUSE Linux Enterprise 15 (64-bit) for Xenserver 8.1.0
293-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise 15 (64-bit)"), 291);
296+
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("Xenserver", "8.1.0", "SUSE Linux Enterprise 15 (64-bit)"),
297+
5, "SUSE Linux Enterprise Server 15 (64-bit)");
294298

295299
// Add support for Ubuntu Focal Fossa 20.04 for Xenserver 8.2.0
296300
mappings.add(new GuestOSHypervisorMapping("Xenserver", "8.2.0", "Ubuntu Focal Fossa 20.04"));
@@ -313,7 +317,8 @@ private void updateGuestOsMappings() {
313317
mappings.clear();
314318

315319
// Add support for windows2019srv_64Guest from VMware 7.0
316-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0", "windows2019srv_64Guest"), 276);
320+
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0", "windows2019srv_64Guest"),
321+
6, "Windows Server 2019 (64-bit)");
317322

318323
// Add support for amazonlinux3_64Guest from VMware 7.0.1.0
319324
mappings.add(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "amazonlinux3_64Guest"));
@@ -373,7 +378,8 @@ private void updateGuestOsMappings() {
373378
mappings.clear();
374379

375380
// Add support for windows2019srvNext_64Guest from VMware 7.0.1.0 - Pass Guest OS Ids to update pre-4.14 mappings
376-
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "windows2019srvNext_64Guest"), 276);
381+
guestOsMapper.addGuestOsHypervisorMapping(new GuestOSHypervisorMapping("VMware", "7.0.1.0", "windows2019srvNext_64Guest"),
382+
6, "Windows Server 2019 (64-bit)");
377383

378384
// The below existing Guest OS Ids must be used for updating the guest OS hypervisor mappings
379385
// CentOS - 1, Debian - 2, Oracle - 3, RedHat - 4, SUSE - 5, Windows - 6, Other - 7, Novel - 8, Unix - 9, Ubuntu - 10, None - 11

0 commit comments

Comments
 (0)