You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/10/03 21:47:57 UTC

[04/10] git commit: updated refs/heads/ui-restyle to fbb0499

CLOUDSTACK-4785:
Add support for adding user vm details and removing them.
Signed off by : nitin mehta<ni...@citrix.com>


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

Branch: refs/heads/ui-restyle
Commit: 85b5c6e3535fad238a08e5df01e69e2336409c01
Parents: aed5e9d
Author: Nitin Mehta <ni...@citrix.com>
Authored: Wed Oct 2 14:16:45 2013 -0700
Committer: Nitin Mehta <ni...@citrix.com>
Committed: Wed Oct 2 14:16:45 2013 -0700

----------------------------------------------------------------------
 .../src/com/cloud/vm/dao/UserVmDetailsDao.java  |  3 ++
 .../com/cloud/vm/dao/UserVmDetailsDaoImpl.java  | 15 +++++++++
 .../metadata/ResourceMetaDataManagerImpl.java   | 32 ++++++++++++--------
 3 files changed, 37 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/85b5c6e3/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java
index bdccec9..e2fa720 100644
--- a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java
+++ b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java
@@ -29,4 +29,7 @@ public interface UserVmDetailsDao extends GenericDao<UserVmDetailVO, Long> {
     UserVmDetailVO findDetail(long vmId, String name);
     
 	void deleteDetails(long vmId);
+
+    public void removeDetails(Long vmId, String key);
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/85b5c6e3/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java
index 6ec6f68..01abce3 100644
--- a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import javax.ejb.Local;
 
+import com.cloud.vm.NicDetailVO;
 import org.springframework.stereotype.Component;
 
 import com.cloud.utils.db.GenericDaoBase;
@@ -96,4 +97,18 @@ public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> i
         txn.commit();		
 	}
 
+    @Override
+    public void removeDetails(Long vmId, String key) {
+        if(key != null){
+            UserVmDetailVO detail = findDetail(vmId, key);
+            if(detail != null){
+                remove(detail.getId());
+            }
+        }else {
+            deleteDetails(vmId);
+        }
+
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/85b5c6e3/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
index 82a62be..80d5055 100644
--- a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
+++ b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
@@ -23,6 +23,14 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.server.ResourceMetaDataService;
+import com.cloud.storage.VolumeDetailVO;
+import com.cloud.storage.dao.VolumeDetailsDao;
+import com.cloud.vm.NicDetailVO;
+import com.cloud.vm.UserVmDetailVO;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.NicDetailDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -40,15 +48,12 @@ import com.cloud.network.security.dao.SecurityGroupDao;
 import com.cloud.network.vpc.dao.StaticRouteDao;
 import com.cloud.network.vpc.dao.VpcDao;
 import com.cloud.projects.dao.ProjectDao;
-import com.cloud.server.ResourceMetaDataService;
 import com.cloud.server.ResourceTag;
 import com.cloud.server.ResourceTag.TaggedResourceType;
 import com.cloud.server.TaggedResourceService;
-import com.cloud.storage.VolumeDetailVO;
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.dao.VolumeDao;
-import com.cloud.storage.dao.VolumeDetailsDao;
 import com.cloud.tags.dao.ResourceTagDao;
 import com.cloud.user.AccountManager;
 import com.cloud.user.DomainManager;
@@ -57,12 +62,7 @@ import com.cloud.utils.db.DB;
 import com.cloud.utils.db.GenericDao;
 import com.cloud.utils.db.Transaction;
 import com.cloud.uuididentity.dao.IdentityDao;
-import com.cloud.vm.NicDetailVO;
-import com.cloud.vm.UserVmDetailVO;
-import com.cloud.vm.dao.NicDao;
-import com.cloud.vm.dao.NicDetailDao;
 import com.cloud.vm.dao.UserVmDao;
-import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
 
 
@@ -119,6 +119,8 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource
     @Inject
     NicDetailDao _nicDetailDao;
     @Inject
+    UserVmDetailsDao _userVmDetailDao;
+    @Inject
     NicDao _nicDao;
     @Inject
     TaggedResourceService _taggedResourceMgr;
@@ -203,10 +205,10 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource
                 } else if (resourceType == TaggedResourceType.Nic){
                     NicDetailVO n = new NicDetailVO(id, key, value);
                     _nicDetailDao.persist(n);
-                } else if (resourceType == TaggedResourceType.UserVm) {
-                    UserVmDetailVO v = new UserVmDetailVO(id, key, value);
-                    _userVmDetail.persist(v);
-                }else{
+                }else if (resourceType == TaggedResourceType.UserVm){
+                    UserVmDetailVO userVmDetail = new UserVmDetailVO(id, key, value);
+                    _userVmDetailDao.persist(userVmDetail);
+                } else {
                     throw new InvalidParameterValueException("The resource type " + resourceType + " is not supported by the API yet");
                 }
 
@@ -227,8 +229,12 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource
         // TODO - Have a better design here.
         if(resourceType == TaggedResourceType.Volume){
            _volumeDetailDao.removeDetails(id, key);
-        } else {
+        } else if(resourceType == TaggedResourceType.Nic){
             _nicDetailDao.removeDetails(id, key);
+        } else if(resourceType == TaggedResourceType.UserVm){
+            _userVmDetailDao.removeDetails(id, key);
+        } else {
+            throw new InvalidParameterValueException("The resource type " + resourceType + " is not supported by the API yet");
         }
 
         return true;