bug 7459: honoring the isBootable flag for isos

status 7459: resolved fixed
This commit is contained in:
abhishek 2010-12-21 10:35:35 -08:00
parent 91d8e6ffcc
commit aed200492d
3 changed files with 9 additions and 5 deletions

View File

@ -191,7 +191,7 @@ public interface ResponseGenerator {
EventResponse createEventResponse(Event event);
ListResponse<TemplateResponse> createIsoResponse(Set<Pair<Long,Long>> isoZonePairSet, boolean onlyReady, Account account);
ListResponse<TemplateResponse> createIsoResponse(Set<Pair<Long,Long>> isoZonePairSet, boolean onlyReady, Account account, Boolean isBootable);
TemplateResponse createIsoResponse(VirtualMachineTemplate result);

View File

@ -159,7 +159,7 @@ public class ListIsosCmd extends BaseListCmd {
isAdmin = true;
}
ListResponse<TemplateResponse> response = _responseGenerator.createIsoResponse(isoZonePairSet, isAdmin, account);
ListResponse<TemplateResponse> response = _responseGenerator.createIsoResponse(isoZonePairSet, isAdmin, account, bootable);
response.setResponseName(getCommandName());
this.setResponseObject(response);
}

View File

@ -1819,14 +1819,14 @@ public class ApiResponseHelper implements ResponseGenerator {
}
@Override
public ListResponse<TemplateResponse> createIsoResponse(Set<Pair<Long,Long>> isoZonePairSet, boolean isAdmin, Account account) {
public ListResponse<TemplateResponse> createIsoResponse(Set<Pair<Long,Long>> isoZonePairSet, boolean isAdmin, Account account, Boolean isBootable) {
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
List<TemplateResponse> isoResponses = new ArrayList<TemplateResponse>();
for (Pair<Long,Long> isoZonePair : isoZonePairSet) {
VMTemplateVO iso = ApiDBUtils.findTemplateById(isoZonePair.first());
if ( iso.getTemplateType() == TemplateType.PERHOST ) {
if ( (isBootable == null || !isBootable) && iso.getTemplateType() == TemplateType.PERHOST ) {
TemplateResponse isoResponse = new TemplateResponse();
isoResponse.setId(iso.getId());
isoResponse.setName(iso.getName());
@ -1837,10 +1837,14 @@ public class ApiResponseHelper implements ResponseGenerator {
isoResponse.setFeatured(iso.isFeatured());
isoResponse.setCrossZones(iso.isCrossZones());
isoResponse.setPublic(iso.isPublicTemplate());
isoResponse.setPasswordEnabled(false);
isoResponse.setDomainId(iso.getDomainId());
isoResponse.setObjectName("iso");
isoResponses.add(isoResponse);
response.setResponses(isoResponses);
continue;
if(isBootable != null && !isBootable)
continue; //fetch only non-bootable isos and return (for now only xen tools iso)
}
List<VMTemplateHostVO> isoHosts = ApiDBUtils.listTemplateHostBy(iso.getId(), isoZonePair.second());