mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-355: fix count for listSwiftsCmd.
This commit is contained in:
parent
26be5ce2df
commit
c3f1a9d324
|
|
@ -34,6 +34,7 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
|||
import com.cloud.org.Cluster;
|
||||
import com.cloud.storage.S3;
|
||||
import com.cloud.storage.Swift;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.fsm.NoTransitionException;
|
||||
import org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd;
|
||||
|
||||
|
|
@ -94,10 +95,10 @@ public interface ResourceService {
|
|||
Swift discoverSwift(AddSwiftCmd addSwiftCmd) throws DiscoveryException;
|
||||
|
||||
S3 discoverS3(AddS3Cmd cmd) throws DiscoveryException;
|
||||
|
||||
|
||||
List<HypervisorType> getSupportedHypervisorTypes(long zoneId, boolean forVirtualRouter, Long podId);
|
||||
|
||||
List<? extends Swift> listSwifts(ListSwiftsCmd cmd);
|
||||
Pair<List<? extends Swift>, Integer> listSwifts(ListSwiftsCmd cmd);
|
||||
|
||||
List<? extends S3> listS3s(ListS3sCmd cmd);
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.apache.cloudstack.api.response.ListResponse;
|
|||
import org.apache.cloudstack.api.response.SwiftResponse;
|
||||
import com.cloud.storage.Swift;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.Pair;
|
||||
|
||||
@APICommand(name = "listSwifts", description = "List Swift.", responseObject = HostResponse.class, since="3.0.0")
|
||||
public class ListSwiftsCmd extends BaseListCmd {
|
||||
|
|
@ -64,20 +65,19 @@ public class ListSwiftsCmd extends BaseListCmd {
|
|||
|
||||
@Override
|
||||
public void execute(){
|
||||
List<? extends Swift> result = _resourceService.listSwifts(this);
|
||||
Pair<List<? extends Swift>, Integer> result = _resourceService.listSwifts(this);
|
||||
ListResponse<SwiftResponse> response = new ListResponse<SwiftResponse>();
|
||||
List<SwiftResponse> swiftResponses = new ArrayList<SwiftResponse>();
|
||||
|
||||
if (result != null) {
|
||||
SwiftResponse swiftResponse = null;
|
||||
for (Swift swift : result) {
|
||||
swiftResponse = _responseGenerator.createSwiftResponse(swift);
|
||||
for (Swift swift : result.first()) {
|
||||
SwiftResponse swiftResponse = _responseGenerator.createSwiftResponse(swift);
|
||||
swiftResponse.setResponseName(getCommandName());
|
||||
swiftResponse.setObjectName("swift");
|
||||
swiftResponses.add(swiftResponse);
|
||||
}
|
||||
}
|
||||
response.setResponses(swiftResponses);
|
||||
response.setResponses(swiftResponses, result.second());
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -560,8 +560,9 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SwiftVO> listSwifts(ListSwiftsCmd cmd) {
|
||||
return _swiftMgr.listSwifts(cmd);
|
||||
public Pair<List<? extends Swift>, Integer> listSwifts(ListSwiftsCmd cmd) {
|
||||
Pair<List<SwiftVO>, Integer> swifts = _swiftMgr.listSwifts(cmd);
|
||||
return new Pair<List<? extends Swift>, Integer>(swifts.first(), swifts.second());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import com.cloud.exception.DiscoveryException;
|
|||
import com.cloud.storage.Swift;
|
||||
import com.cloud.storage.SwiftVO;
|
||||
import com.cloud.storage.VMTemplateSwiftVO;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.Manager;
|
||||
public interface SwiftManager extends Manager {
|
||||
|
||||
|
|
@ -50,7 +51,7 @@ public interface SwiftManager extends Manager {
|
|||
|
||||
Long chooseZoneForTmpltExtract(Long tmpltId);
|
||||
|
||||
List<SwiftVO> listSwifts(ListSwiftsCmd cmd);
|
||||
Pair<List<SwiftVO>, Integer> listSwifts(ListSwiftsCmd cmd);
|
||||
|
||||
VMTemplateSwiftVO findByTmpltId(Long tmpltId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ import com.cloud.storage.dao.SwiftDao;
|
|||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.dao.VMTemplateSwiftDao;
|
||||
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
|
|
@ -242,7 +243,7 @@ public class SwiftManagerImpl implements SwiftManager {
|
|||
if (swift == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
List<VMTemplateHostVO> tmpltHosts = _vmTmpltHostDao.listByOnlyTemplateId(tmpltId);
|
||||
if (tmpltHosts != null) {
|
||||
Collections.shuffle(tmpltHosts);
|
||||
|
|
@ -260,13 +261,13 @@ public class SwiftManagerImpl implements SwiftManager {
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SwiftVO> listSwifts(ListSwiftsCmd cmd) {
|
||||
public Pair<List<SwiftVO>, Integer> listSwifts(ListSwiftsCmd cmd) {
|
||||
Filter searchFilter = new Filter(SwiftVO.class, "id", Boolean.TRUE, cmd.getStartIndex(), cmd.getPageSizeVal());
|
||||
SearchCriteria<SwiftVO> sc = _swiftDao.createSearchCriteria();
|
||||
if (cmd.getId() != null) {
|
||||
sc.addAnd("id", SearchCriteria.Op.EQ, cmd.getId());
|
||||
}
|
||||
return _swiftDao.search(sc, searchFilter);
|
||||
return _swiftDao.searchAndCount(sc, searchFilter);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ public class MockResourceManagerImpl implements ResourceManager, Manager {
|
|||
* @see com.cloud.resource.ResourceService#listSwifts(com.cloud.api.commands.ListSwiftsCmd)
|
||||
*/
|
||||
@Override
|
||||
public List<? extends Swift> listSwifts(ListSwiftsCmd cmd) {
|
||||
public Pair<List<? extends Swift>, Integer> listSwifts(ListSwiftsCmd cmd) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue