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;