You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sa...@apache.org on 2013/12/30 15:38:08 UTC

[2/2] git commit: updated refs/heads/master to db8d5f6

CLOUDSTACK-3806: OS Preference can not be set.


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

Branch: refs/heads/master
Commit: a782d17caa33d94805d9357a9d85e0bcebe2bac9
Parents: 013f100
Author: Sanjay Tripathi <sa...@citrix.com>
Authored: Mon Dec 30 17:09:05 2013 +0530
Committer: Sanjay Tripathi <sa...@citrix.com>
Committed: Mon Dec 30 20:01:06 2013 +0530

----------------------------------------------------------------------
 .../com/cloud/resource/ResourceManagerImpl.java | 26 ++++++++++++--------
 ui/scripts/system.js                            |  2 +-
 2 files changed, 17 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a782d17c/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index d1eba11..c9e2e7a 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -1274,23 +1274,29 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
 
         if (guestOSCategoryId != null) {
             // Verify that the guest OS Category exists
-            if (guestOSCategoryId > 0) {
-                if (_guestOSCategoryDao.findById(guestOSCategoryId) == null) {
-                    throw new InvalidParameterValueException("Please specify a valid guest OS category.");
-                }
+            if (!(guestOSCategoryId > 0) || _guestOSCategoryDao.findById(guestOSCategoryId) == null) {
+                throw new InvalidParameterValueException("Please specify a valid guest OS category.");
             }
 
             GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
-            Map<String, String> hostDetails = _hostDetailsDao.findDetails(hostId);
+            DetailVO guestOSDetail = _hostDetailsDao.findDetail(hostId, "guest.os.category.id");
 
-            if (guestOSCategory != null) {
-                // Save a new entry for guest.os.category.id
-                hostDetails.put("guest.os.category.id", String.valueOf(guestOSCategory.getId()));
+            if (guestOSCategory != null && !GuestOSCategoryVO.CATEGORY_NONE.equalsIgnoreCase(guestOSCategory.getName())) {
+                // Create/Update an entry for guest.os.category.id
+                if (guestOSDetail != null) {
+                    guestOSDetail.setValue(String.valueOf(guestOSCategory.getId()));
+                    _hostDetailsDao.update(guestOSDetail.getId(), guestOSDetail);
+                } else {
+                    Map<String, String> detail = new HashMap<String, String>();
+                    detail.put("guest.os.category.id", String.valueOf(guestOSCategory.getId()));
+                    _hostDetailsDao.persist(hostId, detail);
+                }
             } else {
                 // Delete any existing entry for guest.os.category.id
-                hostDetails.remove("guest.os.category.id");
+                if (guestOSDetail != null) {
+                    _hostDetailsDao.remove(guestOSDetail.getId());
+                }
             }
-            _hostDetailsDao.persist(hostId, hostDetails);
         }
 
         List<String> hostTags = cmd.getHostTags();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a782d17c/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 6c49bf1..24e76e6 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -14252,7 +14252,7 @@
                                                         var oscategoryObjs = json.listoscategoriesresponse.oscategory;
                                                         var items = [{
                                                             id: '',
-                                                            description: _l('label.none')
+                                                            description: _l('')
                                                         }];
                                                         $(oscategoryObjs).each(function() {
                                                             items.push({