CLOUDSTACK-4785:

Adding list details for UserVm.
Signed off by : nitin mehta<nitin.mehta@citrix.com>
This commit is contained in:
Nitin Mehta 2013-10-02 14:53:07 -07:00
parent 85b5c6e353
commit 8466fad6ca
4 changed files with 41 additions and 7 deletions

View File

@ -70,11 +70,6 @@ public class NicDetailDaoImpl extends GenericDaoBase<NicDetailVO, Long> implemen
sc.setParameters("nicId", nicId);
List<NicDetailVO> results = search(sc, null);
/*Map<String, String> details = new HashMap<String, String>(results.size());
for (NicDetailVO result : results) {
details.put(result.getName(), result.getValue());
} */
return results;
}

View File

@ -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<UserVmDetailVO, Long> {
Map<String, String> findDetails(long vmId);
public List<UserVmDetailVO> findDetailsList(long vmId);
void persist(long vmId, Map<String, String> details);
UserVmDetailVO findDetail(long vmId, String name);

View File

@ -82,6 +82,15 @@ public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> i
return details;
}
@Override
public List<UserVmDetailVO> findDetailsList(long vmId) {
SearchCriteria<UserVmDetailVO> sc = VmSearch.create();
sc.setParameters("vmId", vmId);
List<UserVmDetailVO> results = search(sc, null);
return results;
}
@Override
public void persist(long vmId, Map<String, String> details) {
Transaction txn = Transaction.currentTxn();

View File

@ -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<NicDetailVO> nicDetailList;
if (key == null) {
@ -3245,6 +3250,28 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
return nicDetailResponseList;
} else {
List<UserVmDetailVO> userVmDetailList;
if (key == null) {
userVmDetailList = _userVmDetailDao.findDetailsList(id);
} else {
UserVmDetailVO nicDetail = _userVmDetailDao.findDetail(id, key);
userVmDetailList = new LinkedList<UserVmDetailVO>();
userVmDetailList.add(nicDetail);
}
List<ResourceDetailResponse> nicDetailResponseList = 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");
nicDetailResponseList.add(userVmDetailResponse);
}
return nicDetailResponseList;
}
}