You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Wilder Rodrigues (JIRA)" <ji...@apache.org> on 2014/04/16 13:54:15 UTC
[jira] [Created] (CLOUDSTACK-6425) ACS 4.3.0 issue with VM
Templates + XenServer 6.2
Wilder Rodrigues created CLOUDSTACK-6425:
--------------------------------------------
Summary: ACS 4.3.0 issue with VM Templates + XenServer 6.2
Key: CLOUDSTACK-6425
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6425
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: Template, XenServer
Environment: Apache CloudStack 4.3.0 + XenServer 6.2
Reporter: Wilder Rodrigues
ACS issue with VM Templates + XenServer 6.2 + Feature that says: Xen Tools 6.1+
https://issues.apache.org/jira/browse/CLOUDSTACK-4649
Tables to check: user_vm_details; user_vm_view
Alena fixed in 4.2.1, but Sanjay Tripathi broke it in 4.3.0
UserVmJoinDaoImpl.java
// set resource details map
// only hypervisortoolsversion can be returned to the end user
UserVmDetailVO hypervisorToolsVersion = _userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.HYPERVISOR_TOOLS_VERSION);
if (hypervisorToolsVersion != null) {
Map<String, String> resourceDetails = new HashMap<String, String>();
resourceDetails.put(hypervisorToolsVersion.getName(), hypervisorToolsVersion.getValue());
userVmResponse.setDetails(resourceDetails);
}
It's broken in a way that all templates/instances expect that the xentools are installed and the correct drivers are in place. When migrating from 4.2.1 to 4.3.0, the change in the snippet above will check if the VM exists in the user_vm_details, which is actually empty for the given ID.
The previous code was:
// set resource details map
// only hypervisortoolsversion can be returned to the end user }
if (userVm.getDetailName() != null && userVm.getDetailName().equalsIgnoreCase(VmDetailConstants.HYPERVISOR_TOOLS_VERSION)){
Map<String, String> resourceDetails = new HashMap<String, String>();
resourceDetails.put(userVm.getDetailName(), userVm.getDetailValue());
userVmResponse.setDetails(resourceDetails);
}
--
This message was sent by Atlassian JIRA
(v6.2#6252)