From aed200492d5432df350983d7de25b80b8063c5c7 Mon Sep 17 00:00:00 2001 From: abhishek Date: Tue, 21 Dec 2010 10:35:35 -0800 Subject: [PATCH] bug 7459: honoring the isBootable flag for isos status 7459: resolved fixed --- api/src/com/cloud/api/ResponseGenerator.java | 2 +- api/src/com/cloud/api/commands/ListIsosCmd.java | 2 +- server/src/com/cloud/api/ApiResponseHelper.java | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/api/src/com/cloud/api/ResponseGenerator.java b/api/src/com/cloud/api/ResponseGenerator.java index e156bb953e4..45dd1957a25 100644 --- a/api/src/com/cloud/api/ResponseGenerator.java +++ b/api/src/com/cloud/api/ResponseGenerator.java @@ -191,7 +191,7 @@ public interface ResponseGenerator { EventResponse createEventResponse(Event event); - ListResponse createIsoResponse(Set> isoZonePairSet, boolean onlyReady, Account account); + ListResponse createIsoResponse(Set> isoZonePairSet, boolean onlyReady, Account account, Boolean isBootable); TemplateResponse createIsoResponse(VirtualMachineTemplate result); diff --git a/api/src/com/cloud/api/commands/ListIsosCmd.java b/api/src/com/cloud/api/commands/ListIsosCmd.java index 00161decc08..38ceb942948 100755 --- a/api/src/com/cloud/api/commands/ListIsosCmd.java +++ b/api/src/com/cloud/api/commands/ListIsosCmd.java @@ -159,7 +159,7 @@ public class ListIsosCmd extends BaseListCmd { isAdmin = true; } - ListResponse response = _responseGenerator.createIsoResponse(isoZonePairSet, isAdmin, account); + ListResponse response = _responseGenerator.createIsoResponse(isoZonePairSet, isAdmin, account, bootable); response.setResponseName(getCommandName()); this.setResponseObject(response); } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 6096114435d..0cb29aa5434 100644 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -1819,14 +1819,14 @@ public class ApiResponseHelper implements ResponseGenerator { } @Override - public ListResponse createIsoResponse(Set> isoZonePairSet, boolean isAdmin, Account account) { + public ListResponse createIsoResponse(Set> isoZonePairSet, boolean isAdmin, Account account, Boolean isBootable) { ListResponse response = new ListResponse(); List isoResponses = new ArrayList(); for (Pair 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 isoHosts = ApiDBUtils.listTemplateHostBy(iso.getId(), isoZonePair.second());