vmware: Fix for mapping guest OS type read from OVF to existing guest OS in C… (#4553)

* Fix for mapping guest OS type read from OVF to existing guest OS in CloudStack database  while registering VMware template

* Added unit tests to String Utils methods and updated the code

* Updated the java doc section

* Updated os description logic to keep equals ignore match with guest os display name
This commit is contained in:
Harikrishna 2020-12-23 19:37:21 +05:30 committed by GitHub
parent 4617be4583
commit b1ddd7c2e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -167,8 +167,26 @@ public class DeployAsIsHelperImpl implements DeployAsIsHelper {
hypervisor.toString(), minimumHypervisorVersion);
if (CollectionUtils.isNotEmpty(guestOsMappings)) {
GuestOSHypervisorVO mapping = guestOsMappings.get(0);
return mapping.getGuestOsId();
Long guestOsId = null;
if (guestOsMappings.size() == 1) {
GuestOSHypervisorVO mapping = guestOsMappings.get(0);
guestOsId = mapping.getGuestOsId();
} else {
if (!StringUtils.isEmpty(guestOsDescription)) {
for (GuestOSHypervisorVO guestOSHypervisorVO : guestOsMappings) {
GuestOSVO guestOSVO = guestOSDao.findById(guestOSHypervisorVO.getGuestOsId());
if (guestOsDescription.equalsIgnoreCase(guestOSVO.getDisplayName())) {
guestOsId = guestOSHypervisorVO.getGuestOsId();
break;
}
}
}
if (null == guestOsId) {
GuestOSHypervisorVO mapping = guestOsMappings.get(guestOsMappings.size()-1);
guestOsId = mapping.getGuestOsId();
}
}
return guestOsId;
} else {
throw new CloudRuntimeException("Did not find a guest OS with type " + guestOsType);
}
@ -301,7 +319,7 @@ public class DeployAsIsHelperImpl implements DeployAsIsHelper {
}
String propValue = null;
try {
propValue = getValueFromInformationTO(informationTO);
propValue = getValueFromInformationTO(informationTO);
} catch (RuntimeException re) {
LOGGER.error("gson marshalling of property object fails: " + propKey,re);
} catch (IOException e) {