@Override public Pair<List<? extends Host>, Integer> searchForServers(final ListHostsCmd cmd) { final Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId()); final Object name = cmd.getHostName(); final Object type = cmd.getType(); final Object state = cmd.getState(); final Object pod = cmd.getPodId(); final Object cluster = cmd.getClusterId(); final Object id = cmd.getId(); final Object keyword = cmd.getKeyword(); final Object resourceState = cmd.getResourceState(); final Object haHosts = cmd.getHaHost(); final Pair<List<HostVO>, Integer> result = searchForServers(cmd.getStartIndex(), cmd.getPageSizeVal(), name, type, state, zoneId, pod, cluster, id, keyword, resourceState, haHosts, null, null); return new Pair<List<? extends Host>, Integer>(result.first(), result.second()); }
@Override public void execute() { ListResponse<HostResponse> response = getHostResponses(); response.setResponseName(getCommandName()); this.setResponseObject(response); } }
protected ListResponse<HostResponse> getHostResponses() { ListResponse<HostResponse> response = new ListResponse<>(); if (getVirtualMachineId() == null) { response = _queryService.searchForServers(this); } else { Pair<List<? extends Host>, Integer> result; Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> hostsForMigration = _mgr.listHostsForMigrationOfVM(getVirtualMachineId(), this.getStartIndex(), this.getPageSizeVal(), null); result = hostsForMigration.first(); List<? extends Host> hostsWithCapacity = hostsForMigration.second(); List<HostResponse> hostResponses = new ArrayList<HostResponse>(); for (Host host : result.first()) { HostResponse hostResponse = _responseGenerator.createHostResponse(host, getDetails()); Boolean suitableForMigration = false; if (hostsWithCapacity.contains(host)) { suitableForMigration = true; } hostResponse.setSuitableForMigration(suitableForMigration); hostResponse.setObjectName("host"); hostResponses.add(hostResponse); } response.setResponses(hostResponses, result.second()); } return response; }
@Override public ListResponse<HostResponse> searchForServers(ListHostsCmd cmd) { // FIXME: do we need to support list hosts with VmId, maybe we should // create another command just for this // Right now it is handled separately outside this QueryService s_logger.debug(">>>Searching for hosts>>>"); Pair<List<HostJoinVO>, Integer> hosts = searchForServersInternal(cmd); ListResponse<HostResponse> response = new ListResponse<HostResponse>(); s_logger.debug(">>>Generating Response>>>"); List<HostResponse> hostResponses = ViewResponseHelper.createHostResponse(cmd.getDetails(), hosts.first().toArray(new HostJoinVO[hosts.first().size()])); response.setResponses(hostResponses, hosts.second()); return response; }
public Pair<List<HostJoinVO>, Integer> searchForServersInternal(ListHostsCmd cmd) { Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId()); Object name = cmd.getHostName(); Object type = cmd.getType(); Object state = cmd.getState(); Object pod = cmd.getPodId(); Object cluster = cmd.getClusterId(); Object id = cmd.getId(); Object keyword = cmd.getKeyword(); Object outOfBandManagementEnabled = cmd.isOutOfBandManagementEnabled(); Object powerState = cmd.getHostOutOfBandManagementPowerState(); Object resourceState = cmd.getResourceState(); Object haHosts = cmd.getHaHost(); Long startIndex = cmd.getStartIndex(); Long pageSize = cmd.getPageSizeVal(); Hypervisor.HypervisorType hypervisorType = cmd.getHypervisor();