From 8466fad6ca92b0d9ea6c23f5c1be0540e2489ae5 Mon Sep 17 00:00:00 2001 From: Nitin Mehta Date: Wed, 2 Oct 2013 14:53:07 -0700 Subject: [PATCH] CLOUDSTACK-4785: Adding list details for UserVm. Signed off by : nitin mehta --- .../com/cloud/vm/dao/NicDetailDaoImpl.java | 5 ---- .../com/cloud/vm/dao/UserVmDetailsDao.java | 5 +++- .../cloud/vm/dao/UserVmDetailsDaoImpl.java | 9 ++++++ .../com/cloud/api/query/QueryManagerImpl.java | 29 ++++++++++++++++++- 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java index e1668915245..67bc0b5b871 100644 --- a/engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java @@ -70,11 +70,6 @@ public class NicDetailDaoImpl extends GenericDaoBase implemen sc.setParameters("nicId", nicId); List results = search(sc, null); - /*Map details = new HashMap(results.size()); - for (NicDetailVO result : results) { - details.put(result.getName(), result.getValue()); - } */ - return results; } diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java index e2fa72081bc..e117f630594 100644 --- a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java +++ b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java @@ -16,6 +16,7 @@ // under the License. package com.cloud.vm.dao; +import java.util.List; import java.util.Map; import com.cloud.utils.db.GenericDao; @@ -23,7 +24,9 @@ import com.cloud.vm.UserVmDetailVO; public interface UserVmDetailsDao extends GenericDao { Map findDetails(long vmId); - + + public List findDetailsList(long vmId); + void persist(long vmId, Map details); UserVmDetailVO findDetail(long vmId, String name); diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java index 01abce321f6..ce8dbd86225 100644 --- a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java @@ -82,6 +82,15 @@ public class UserVmDetailsDaoImpl extends GenericDaoBase i return details; } + @Override + public List findDetailsList(long vmId) { + SearchCriteria sc = VmSearch.create(); + sc.setParameters("vmId", vmId); + + List results = search(sc, null); + return results; + } + @Override public void persist(long vmId, Map details) { Transaction txn = Transaction.currentTxn(); diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index be52f296236..5f3cceba95d 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -27,6 +27,8 @@ import java.util.Set; import javax.ejb.Local; import javax.inject.Inject; +import com.cloud.vm.UserVmDetailVO; +import com.cloud.vm.dao.UserVmDetailsDao; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import org.apache.cloudstack.acl.ControlledEntity.ACLType; @@ -295,6 +297,9 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { @Inject private NicDetailDao _nicDetailDao; + @Inject + UserVmDetailsDao _userVmDetailDao; + @Inject private HighAvailabilityManager _haMgr; @@ -3221,7 +3226,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { return volumeDetailResponseList; - } else { + } else if (resourceType == ResourceTag.TaggedResourceType.Nic){ List nicDetailList; if (key == null) { @@ -3245,6 +3250,28 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { return nicDetailResponseList; + } else { + + List userVmDetailList; + if (key == null) { + userVmDetailList = _userVmDetailDao.findDetailsList(id); + } else { + UserVmDetailVO nicDetail = _userVmDetailDao.findDetail(id, key); + userVmDetailList = new LinkedList(); + userVmDetailList.add(nicDetail); + } + + List nicDetailResponseList = new ArrayList(); + for (UserVmDetailVO nicDetail : userVmDetailList) { + ResourceDetailResponse userVmDetailResponse = new ResourceDetailResponse(); + userVmDetailResponse.setName(nicDetail.getName()); + userVmDetailResponse.setValue(nicDetail.getValue()); + userVmDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Nic.toString()); + userVmDetailResponse.setObjectName("uservmdetail"); + nicDetailResponseList.add(userVmDetailResponse); + } + + return nicDetailResponseList; } }