|
27 | 27 | import javax.ejb.Local; |
28 | 28 | import javax.inject.Inject; |
29 | 29 |
|
30 | | -import com.cloud.dc.DcDetailVO; |
31 | | -import com.cloud.dc.dao.DcDetailsDao; |
32 | | -import com.cloud.vm.UserVmDetailVO; |
33 | | -import com.cloud.vm.dao.UserVmDetailsDao; |
34 | | -import org.apache.log4j.Logger; |
35 | | -import org.springframework.stereotype.Component; |
36 | 30 | import org.apache.cloudstack.acl.ControlledEntity.ACLType; |
37 | 31 | import org.apache.cloudstack.affinity.AffinityGroupDomainMapVO; |
38 | 32 | import org.apache.cloudstack.affinity.AffinityGroupResponse; |
|
90 | 84 | import org.apache.cloudstack.engine.subsystem.api.storage.TemplateState; |
91 | 85 | import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
92 | 86 | import org.apache.cloudstack.query.QueryService; |
| 87 | +import org.apache.log4j.Logger; |
| 88 | +import org.springframework.stereotype.Component; |
93 | 89 |
|
94 | 90 | import com.cloud.api.query.dao.AccountJoinDao; |
95 | 91 | import com.cloud.api.query.dao.AffinityGroupJoinDao; |
|
132 | 128 | import com.cloud.api.query.vo.UserAccountJoinVO; |
133 | 129 | import com.cloud.api.query.vo.UserVmJoinVO; |
134 | 130 | import com.cloud.api.query.vo.VolumeJoinVO; |
| 131 | +import com.cloud.dc.DcDetailVO; |
135 | 132 | import com.cloud.dc.DedicatedResourceVO; |
| 133 | +import com.cloud.dc.dao.DcDetailsDao; |
136 | 134 | import com.cloud.dc.dao.DedicatedResourceDao; |
137 | 135 | import com.cloud.domain.Domain; |
138 | 136 | import com.cloud.domain.DomainVO; |
|
141 | 139 | import com.cloud.exception.CloudAuthenticationException; |
142 | 140 | import com.cloud.exception.InvalidParameterValueException; |
143 | 141 | import com.cloud.exception.PermissionDeniedException; |
| 142 | +import com.cloud.exception.UnsupportedServiceException; |
144 | 143 | import com.cloud.ha.HighAvailabilityManager; |
145 | 144 | import com.cloud.hypervisor.Hypervisor.HypervisorType; |
146 | | -import com.cloud.network.dao.NetworkDomainVO; |
147 | | -import com.cloud.network.dao.NetworkVO; |
148 | 145 | import com.cloud.network.security.SecurityGroupVMMapVO; |
149 | 146 | import com.cloud.network.security.dao.SecurityGroupVMMapDao; |
150 | 147 | import com.cloud.org.Grouping; |
|
189 | 186 | import com.cloud.utils.db.SearchCriteria.Op; |
190 | 187 | import com.cloud.vm.DomainRouterVO; |
191 | 188 | import com.cloud.vm.NicDetailVO; |
| 189 | +import com.cloud.vm.UserVmDetailVO; |
192 | 190 | import com.cloud.vm.UserVmVO; |
193 | 191 | import com.cloud.vm.VirtualMachine; |
194 | 192 | import com.cloud.vm.dao.DomainRouterDao; |
195 | 193 | import com.cloud.vm.dao.NicDetailDao; |
196 | 194 | import com.cloud.vm.dao.UserVmDao; |
| 195 | +import com.cloud.vm.dao.UserVmDetailsDao; |
197 | 196 |
|
198 | 197 | @Component |
199 | 198 | @Local(value = { QueryService.class }) |
@@ -3222,108 +3221,90 @@ private List<AffinityGroupJoinVO> listDomainLevelAffinityGroups( |
3222 | 3221 |
|
3223 | 3222 | @Override |
3224 | 3223 | public List<ResourceDetailResponse> listResource(ListResourceDetailsCmd cmd) { |
3225 | | - |
3226 | 3224 | String key = cmd.getKey(); |
3227 | 3225 | ResourceTag.TaggedResourceType resourceType = cmd.getResourceType(); |
3228 | 3226 | String resourceId = cmd.getResourceId(); |
3229 | 3227 | Long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); |
3230 | | - |
| 3228 | + List<ResourceDetailResponse> responseList = new ArrayList<ResourceDetailResponse>(); |
| 3229 | + |
3231 | 3230 | if (resourceType == ResourceTag.TaggedResourceType.Volume) { |
3232 | | - |
3233 | | - List<VolumeDetailVO> volumeDetailList; |
| 3231 | + List<VolumeDetailVO> detailList; |
3234 | 3232 | if (key == null) { |
3235 | | - volumeDetailList = _volumeDetailDao.findDetails(id); |
| 3233 | + detailList = _volumeDetailDao.findDetails(id); |
3236 | 3234 | } else { |
3237 | 3235 | VolumeDetailVO volumeDetail = _volumeDetailDao.findDetail(id, key); |
3238 | | - volumeDetailList = new LinkedList<VolumeDetailVO>(); |
3239 | | - volumeDetailList.add(volumeDetail); |
| 3236 | + detailList = new LinkedList<VolumeDetailVO>(); |
| 3237 | + detailList.add(volumeDetail); |
3240 | 3238 | } |
3241 | 3239 |
|
3242 | | - List<ResourceDetailResponse> volumeDetailResponseList = new ArrayList<ResourceDetailResponse>(); |
3243 | | - for (VolumeDetailVO volumeDetail : volumeDetailList) { |
3244 | | - ResourceDetailResponse volumeDetailResponse = new ResourceDetailResponse(); |
3245 | | - volumeDetailResponse.setResourceId(id.toString()); |
3246 | | - volumeDetailResponse.setName(volumeDetail.getName()); |
3247 | | - volumeDetailResponse.setValue(volumeDetail.getValue()); |
3248 | | - volumeDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Volume.toString()); |
3249 | | - volumeDetailResponse.setObjectName("volumedetail"); |
3250 | | - volumeDetailResponseList.add(volumeDetailResponse); |
| 3240 | + for (VolumeDetailVO detail : detailList) { |
| 3241 | + ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(), |
| 3242 | + ResourceTag.TaggedResourceType.Volume); |
| 3243 | + responseList.add(detailResponse); |
3251 | 3244 | } |
3252 | 3245 |
|
3253 | | - return volumeDetailResponseList; |
3254 | | - |
3255 | 3246 | } else if (resourceType == ResourceTag.TaggedResourceType.Nic){ |
3256 | | - |
3257 | | - List<NicDetailVO> nicDetailList; |
| 3247 | + List<NicDetailVO> detailList; |
3258 | 3248 | if (key == null) { |
3259 | | - nicDetailList = _nicDetailDao.findDetails(id); |
| 3249 | + detailList = _nicDetailDao.findDetails(id); |
3260 | 3250 | } else { |
3261 | 3251 | NicDetailVO nicDetail = _nicDetailDao.findDetail(id, key); |
3262 | | - nicDetailList = new LinkedList<NicDetailVO>(); |
3263 | | - nicDetailList.add(nicDetail); |
| 3252 | + detailList = new LinkedList<NicDetailVO>(); |
| 3253 | + detailList.add(nicDetail); |
3264 | 3254 | } |
3265 | 3255 |
|
3266 | | - List<ResourceDetailResponse> nicDetailResponseList = new ArrayList<ResourceDetailResponse>(); |
3267 | | - for (NicDetailVO nicDetail : nicDetailList) { |
3268 | | - ResourceDetailResponse nicDetailResponse = new ResourceDetailResponse(); |
3269 | | - // String uuid = ApiDBUtils.findN |
3270 | | - nicDetailResponse.setName(nicDetail.getName()); |
3271 | | - nicDetailResponse.setValue(nicDetail.getValue()); |
3272 | | - nicDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Nic.toString()); |
3273 | | - nicDetailResponse.setObjectName("nicdetail"); |
3274 | | - nicDetailResponseList.add(nicDetailResponse); |
| 3256 | + for (NicDetailVO detail : detailList) { |
| 3257 | + ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(), |
| 3258 | + ResourceTag.TaggedResourceType.Nic); |
| 3259 | + responseList.add(detailResponse); |
3275 | 3260 | } |
3276 | | - |
3277 | | - return nicDetailResponseList; |
3278 | | - |
3279 | | - } else if (resourceType == ResourceTag.TaggedResourceType.Zone){ |
3280 | | - |
3281 | | - List<DcDetailVO> dcDetailList; |
| 3261 | + } else if (resourceType == ResourceTag.TaggedResourceType.UserVm){ |
| 3262 | + List<UserVmDetailVO> detailList; |
3282 | 3263 | if (key == null) { |
3283 | | - dcDetailList = _dcDetailsDao.findDetailsList(id); |
| 3264 | + detailList = _userVmDetailDao.findDetailsList(id); |
3284 | 3265 | } else { |
3285 | | - DcDetailVO nicDetail = _dcDetailsDao.findDetail(id, key); |
3286 | | - dcDetailList = new LinkedList<DcDetailVO>(); |
3287 | | - dcDetailList.add(nicDetail); |
| 3266 | + UserVmDetailVO vmDetail = _userVmDetailDao.findDetail(id, key); |
| 3267 | + detailList = new LinkedList<UserVmDetailVO>(); |
| 3268 | + detailList.add(vmDetail); |
3288 | 3269 | } |
3289 | | - |
3290 | | - List<ResourceDetailResponse> dcDetailResponseList = new ArrayList<ResourceDetailResponse>(); |
3291 | | - for (DcDetailVO dcDetail : dcDetailList) { |
3292 | | - ResourceDetailResponse dcDetailResponse = new ResourceDetailResponse(); |
3293 | | - // String uuid = ApiDBUtils.findN |
3294 | | - dcDetailResponse.setName(dcDetail.getName()); |
3295 | | - dcDetailResponse.setValue(dcDetail.getValue()); |
3296 | | - dcDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Nic.toString()); |
3297 | | - dcDetailResponse.setObjectName("zonedetail"); |
3298 | | - dcDetailResponseList.add(dcDetailResponse); |
| 3270 | + for (UserVmDetailVO detail : detailList) { |
| 3271 | + ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(), |
| 3272 | + ResourceTag.TaggedResourceType.UserVm); |
| 3273 | + responseList.add(detailResponse); |
3299 | 3274 | } |
| 3275 | + } else if (resourceType == ResourceTag.TaggedResourceType.Zone){ |
3300 | 3276 |
|
3301 | | - return dcDetailResponseList; |
3302 | | - |
3303 | | - }else { |
3304 | | - |
3305 | | - List<UserVmDetailVO> userVmDetailList; |
| 3277 | + List<DcDetailVO> details; |
3306 | 3278 | if (key == null) { |
3307 | | - userVmDetailList = _userVmDetailDao.findDetailsList(id); |
| 3279 | + details = _dcDetailsDao.findDetailsList(id); |
3308 | 3280 | } else { |
3309 | | - UserVmDetailVO nicDetail = _userVmDetailDao.findDetail(id, key); |
3310 | | - userVmDetailList = new LinkedList<UserVmDetailVO>(); |
3311 | | - userVmDetailList.add(nicDetail); |
| 3281 | + DcDetailVO zoneDetail = _dcDetailsDao.findDetail(id, key); |
| 3282 | + details = new LinkedList<DcDetailVO>(); |
| 3283 | + details.add(zoneDetail); |
3312 | 3284 | } |
3313 | 3285 |
|
3314 | | - List<ResourceDetailResponse> userVmDetailResponseList = new ArrayList<ResourceDetailResponse>(); |
3315 | | - for (UserVmDetailVO nicDetail : userVmDetailList) { |
3316 | | - ResourceDetailResponse userVmDetailResponse = new ResourceDetailResponse(); |
3317 | | - userVmDetailResponse.setName(nicDetail.getName()); |
3318 | | - userVmDetailResponse.setValue(nicDetail.getValue()); |
3319 | | - userVmDetailResponse.setResourceType(ResourceTag.TaggedResourceType.Nic.toString()); |
3320 | | - userVmDetailResponse.setObjectName("uservmdetail"); |
3321 | | - userVmDetailResponseList.add(userVmDetailResponse); |
| 3286 | + List<ResourceDetailResponse> dcDetailResponseList = new ArrayList<ResourceDetailResponse>(); |
| 3287 | + for (DcDetailVO detail : details) { |
| 3288 | + ResourceDetailResponse detailResponse = createResourceDetailsResponse(id, detail.getName(), detail.getValue(), |
| 3289 | + ResourceTag.TaggedResourceType.Zone); |
| 3290 | + responseList.add(detailResponse); |
3322 | 3291 | } |
3323 | | - |
3324 | | - return userVmDetailResponseList; |
| 3292 | + } else { |
| 3293 | + throw new UnsupportedServiceException("Resource type " + resourceType + " is not supported by the cloudStack"); |
3325 | 3294 | } |
| 3295 | + |
| 3296 | + return responseList; |
| 3297 | + } |
3326 | 3298 |
|
| 3299 | + |
| 3300 | + protected ResourceDetailResponse createResourceDetailsResponse(long resourceId, String key, String value, ResourceTag.TaggedResourceType type) { |
| 3301 | + ResourceDetailResponse resourceDetailResponse = new ResourceDetailResponse(); |
| 3302 | + resourceDetailResponse.setResourceId(String.valueOf(resourceId)); |
| 3303 | + resourceDetailResponse.setName(key); |
| 3304 | + resourceDetailResponse.setValue(value); |
| 3305 | + resourceDetailResponse.setResourceType(type.toString()); |
| 3306 | + resourceDetailResponse.setObjectName("resourcedetail"); |
| 3307 | + return resourceDetailResponse; |
3327 | 3308 | } |
3328 | 3309 |
|
3329 | 3310 | } |
0 commit comments