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)