You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by an...@apache.org on 2014/03/24 23:48:54 UTC

git commit: updated refs/heads/master to e3fc5a4

Repository: cloudstack
Updated Branches:
  refs/heads/master 2d5a58d66 -> e3fc5a4d4


vm meta sync sync xstoolsversion as well


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e3fc5a4d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e3fc5a4d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e3fc5a4d

Branch: refs/heads/master
Commit: e3fc5a4d461aefc262a3bbfed5057d91a6e8e9ec
Parents: 2d5a58d
Author: Anthony Xu <an...@citrix.com>
Authored: Mon Mar 24 15:48:21 2014 -0700
Committer: Anthony Xu <an...@citrix.com>
Committed: Mon Mar 24 15:48:21 2014 -0700

----------------------------------------------------------------------
 .../com/cloud/vm/VirtualMachineManagerImpl.java | 28 +++++++++++++-------
 1 file changed, 19 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3fc5a4d/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index bbd49f2..f071c9e 100755
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -1051,10 +1051,9 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                                 if (vm.getType() == VirtualMachine.Type.User) {
                                     String platform = answer.getPlatform();
                                     if (platform != null) {
-                                        UserVmVO userVm = _userVmDao.findById(vm.getId());
-                                        _userVmDao.loadDetails(userVm);
-                                        userVm.setDetail("platform", platform);
-                                        _userVmDao.saveDetails(userVm);
+                                        Map<String,String> vmmetadata = new HashMap<String,String>();
+                                        vmmetadata.put(vm.getInstanceName(), platform);
+                                        syncVMMetaData(vmmetadata);
                                     }
                                 }
                             }
@@ -2558,21 +2557,32 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             }
             VMInstanceVO vm = _vmDao.findVMByInstanceName(name);
             if (vm != null && vm.getType() == VirtualMachine.Type.User) {
-                // track platform info
+                boolean changed = false;
                 UserVmVO userVm = _userVmDao.findById(vm.getId());
                 _userVmDao.loadDetails(userVm);
-                userVm.setDetail("platform",  platform);
+                if ( userVm.details.containsKey("timeoffset")) {
+                    userVm.details.remove("timeoffset");
+                    changed = true;
+                }
+                if (!userVm.details.containsKey("platform") || !userVm.details.get("platform").equals(platform)) {
+                    userVm.setDetail("platform",  platform);
+                    changed = true;
+                }
                 String pvdriver = "xenserver56";
                 if ( platform.contains("device_id")) {
                     pvdriver = "xenserver61";
                 }
-                userVm.setDetail("hypervisortoolsversion", pvdriver);
-                _userVmDao.saveDetails(userVm);
+                if (!userVm.details.containsKey("hypervisortoolsversion") || !userVm.details.get("hypervisortoolsversion").equals(pvdriver)) {
+                    userVm.setDetail("hypervisortoolsversion", pvdriver);
+                    changed = true;
+                }
+                if ( changed ) {
+                    _userVmDao.saveDetails(userVm);
+                }
             }
         }
     }
 
-
     public void deltaSync(Map<String, Pair<String, State>> newStates) {
         Map<Long, AgentVmInfo> states = convertToInfos(newStates);