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/14 19:17:50 UTC
[58/81] [abbrv] git commit: updated refs/heads/ui-restyle to e901b82
Resource details:
1) Fixed the way we build the response for resource details
2) Fixed the response name - should be generic "resourcedetail". The type is being carried in resourceType response parameter
3) Throw unsupported excpetion if unsupported resourceType is passed in. Before, user vm was returned
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a5a6f58e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a5a6f58e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a5a6f58e
Branch: refs/heads/ui-restyle
Commit: a5a6f58eb88ba62db7d71d24838247acc9e0592c
Parents: dc8f053
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Wed Oct 9 17:53:29 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Wed Oct 9 18:22:49 2013 -0700
----------------------------------------------------------------------
.../com/cloud/api/query/QueryManagerImpl.java | 139 ++++++++-----------
1 file changed, 60 insertions(+), 79 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a5a6f58e/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 9ff37a6..21fa25e 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -27,12 +27,6 @@ import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
-import com.cloud.dc.DcDetailVO;
-import com.cloud.dc.dao.DcDetailsDao;
-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;
import org.apache.cloudstack.affinity.AffinityGroupDomainMapVO;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
@@ -90,6 +84,8 @@ import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateState;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.query.QueryService;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.cloud.api.query.dao.AccountJoinDao;
import com.cloud.api.query.dao.AffinityGroupJoinDao;
@@ -132,7 +128,9 @@ import com.cloud.api.query.vo.TemplateJoinVO;
import com.cloud.api.query.vo.UserAccountJoinVO;
import com.cloud.api.query.vo.UserVmJoinVO;
import com.cloud.api.query.vo.VolumeJoinVO;
+import com.cloud.dc.DcDetailVO;
import com.cloud.dc.DedicatedResourceVO;
+import com.cloud.dc.dao.DcDetailsDao;
import com.cloud.dc.dao.DedicatedResourceDao;
import com.cloud.domain.Domain;
import com.cloud.domain.DomainVO;
@@ -141,10 +139,9 @@ import com.cloud.event.dao.EventJoinDao;
import com.cloud.exception.CloudAuthenticationException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.PermissionDeniedException;
+import com.cloud.exception.UnsupportedServiceException;
import com.cloud.ha.HighAvailabilityManager;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.network.dao.NetworkDomainVO;
-import com.cloud.network.dao.NetworkVO;
import com.cloud.network.security.SecurityGroupVMMapVO;
import com.cloud.network.security.dao.SecurityGroupVMMapDao;
import com.cloud.org.Grouping;
@@ -189,11 +186,13 @@ import com.cloud.utils.db.SearchCriteria.Func;
import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.NicDetailVO;
+import com.cloud.vm.UserVmDetailVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDetailDao;
import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
@Component
@Local(value = { QueryService.class })
@@ -3222,108 +3221,90 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
@Override
public List<ResourceDetailResponse> listResource(ListResourceDetailsCmd cmd) {
-
String key = cmd.getKey();
ResourceTag.TaggedResourceType resourceType = cmd.getResourceType();
String resourceId = cmd.getResourceId();
Long id = _taggedResourceMgr.getResourceId(resourceId, resourceType);
-
+ List<ResourceDetailResponse> responseList = new ArrayList<ResourceDetailResponse>();
+
if (resourceType == ResourceTag.TaggedResourceType.Volume) {
-
- List<VolumeDetailVO> volumeDetailList;
+ List<VolumeDetailVO> detailList;
if (key == null) {
- volumeDetailList = _volumeDetailDao.findDetails(id);
+ detailList = _volumeDetailDao.findDetails(id);
} else {
VolumeDetailVO volumeDetail = _volumeDetailDao.findDetail(id, key);
- volumeDetailList = new LinkedList<VolumeDetailVO>();
- volumeDetailList.add(volumeDetail);
+ detailList = new LinkedList<VolumeDetailVO>();
+ detailList.add(volumeDetail);
}
- List<ResourceDetailResponse> volumeDetailResponseList = new ArrayList<ResourceDetailResponse>();
- for (VolumeDetailVO volumeDetail : volumeDetailList) {
- ResourceDetailResponse volumeDetailResponse = new ResourceDetailResponse();
- volumeDetailResponse.setResourceId(id.toString());
- volumeDetailResponse.setName(volumeDetail.getName());
- volumeDetailResponse.setValue(volumeDetail.getValue());
- volumeDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Volume.toString());
- volumeDetailResponse.setObjectName("volumedetail");
- volumeDetailResponseList.add(volumeDetailResponse);
+ for (VolumeDetailVO detail : detailList) {
+ ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(),
+ ResourceTag.TaggedResourceType.Volume);
+ responseList.add(detailResponse);
}
- return volumeDetailResponseList;
-
} else if (resourceType == ResourceTag.TaggedResourceType.Nic){
-
- List<NicDetailVO> nicDetailList;
+ List<NicDetailVO> detailList;
if (key == null) {
- nicDetailList = _nicDetailDao.findDetails(id);
+ detailList = _nicDetailDao.findDetails(id);
} else {
NicDetailVO nicDetail = _nicDetailDao.findDetail(id, key);
- nicDetailList = new LinkedList<NicDetailVO>();
- nicDetailList.add(nicDetail);
+ detailList = new LinkedList<NicDetailVO>();
+ detailList.add(nicDetail);
}
- List<ResourceDetailResponse> nicDetailResponseList = new ArrayList<ResourceDetailResponse>();
- for (NicDetailVO nicDetail : nicDetailList) {
- ResourceDetailResponse nicDetailResponse = new ResourceDetailResponse();
- // String uuid = ApiDBUtils.findN
- nicDetailResponse.setName(nicDetail.getName());
- nicDetailResponse.setValue(nicDetail.getValue());
- nicDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Nic.toString());
- nicDetailResponse.setObjectName("nicdetail");
- nicDetailResponseList.add(nicDetailResponse);
+ for (NicDetailVO detail : detailList) {
+ ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(),
+ ResourceTag.TaggedResourceType.Nic);
+ responseList.add(detailResponse);
}
-
- return nicDetailResponseList;
-
- } else if (resourceType == ResourceTag.TaggedResourceType.Zone){
-
- List<DcDetailVO> dcDetailList;
+ } else if (resourceType == ResourceTag.TaggedResourceType.UserVm){
+ List<UserVmDetailVO> detailList;
if (key == null) {
- dcDetailList = _dcDetailsDao.findDetailsList(id);
+ detailList = _userVmDetailDao.findDetailsList(id);
} else {
- DcDetailVO nicDetail = _dcDetailsDao.findDetail(id, key);
- dcDetailList = new LinkedList<DcDetailVO>();
- dcDetailList.add(nicDetail);
+ UserVmDetailVO vmDetail = _userVmDetailDao.findDetail(id, key);
+ detailList = new LinkedList<UserVmDetailVO>();
+ detailList.add(vmDetail);
}
-
- List<ResourceDetailResponse> dcDetailResponseList = new ArrayList<ResourceDetailResponse>();
- for (DcDetailVO dcDetail : dcDetailList) {
- ResourceDetailResponse dcDetailResponse = new ResourceDetailResponse();
- // String uuid = ApiDBUtils.findN
- dcDetailResponse.setName(dcDetail.getName());
- dcDetailResponse.setValue(dcDetail.getValue());
- dcDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Nic.toString());
- dcDetailResponse.setObjectName("zonedetail");
- dcDetailResponseList.add(dcDetailResponse);
+ for (UserVmDetailVO detail : detailList) {
+ ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(),
+ ResourceTag.TaggedResourceType.UserVm);
+ responseList.add(detailResponse);
}
+ } else if (resourceType == ResourceTag.TaggedResourceType.Zone){
- return dcDetailResponseList;
-
- }else {
-
- List<UserVmDetailVO> userVmDetailList;
+ List<DcDetailVO> details;
if (key == null) {
- userVmDetailList = _userVmDetailDao.findDetailsList(id);
+ details = _dcDetailsDao.findDetailsList(id);
} else {
- UserVmDetailVO nicDetail = _userVmDetailDao.findDetail(id, key);
- userVmDetailList = new LinkedList<UserVmDetailVO>();
- userVmDetailList.add(nicDetail);
+ DcDetailVO zoneDetail = _dcDetailsDao.findDetail(id, key);
+ details = new LinkedList<DcDetailVO>();
+ details.add(zoneDetail);
}
- List<ResourceDetailResponse> userVmDetailResponseList = new ArrayList<ResourceDetailResponse>();
- 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");
- userVmDetailResponseList.add(userVmDetailResponse);
+ List<ResourceDetailResponse> dcDetailResponseList = new ArrayList<ResourceDetailResponse>();
+ for (DcDetailVO detail : details) {
+ ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(),
+ ResourceTag.TaggedResourceType.Zone);
+ responseList.add(detailResponse);
}
-
- return userVmDetailResponseList;
+ } else {
+ throw new UnsupportedServiceException("Resource type " + resourceType + " is not supported by the cloudStack");
}
+
+ return responseList;
+ }
+
+ protected ResourceDetailResponse createResourceDetailsResponse(long resourceId, String key, String value, ResourceTag.TaggedResourceType type) {
+ ResourceDetailResponse resourceDetailResponse = new ResourceDetailResponse();
+ resourceDetailResponse.setResourceId(String.valueOf(resourceId));
+ resourceDetailResponse.setName(key);
+ resourceDetailResponse.setValue(value);
+ resourceDetailResponse.setResourceType(type.toString());
+ resourceDetailResponse.setObjectName("resourcedetail");
+ return resourceDetailResponse;
}
}