Search in sources :

Example 1 with HostForMigrationResponse

use of org.apache.cloudstack.api.response.HostForMigrationResponse in project cloudstack by apache.

the class ViewResponseHelper method createHostForMigrationResponse.

public static List<HostForMigrationResponse> createHostForMigrationResponse(EnumSet<HostDetails> details, HostJoinVO... hosts) {
    Hashtable<Long, HostForMigrationResponse> vrDataList = new Hashtable<Long, HostForMigrationResponse>();
    // Initialise the vrdatalist with the input data
    for (HostJoinVO vr : hosts) {
        HostForMigrationResponse vrData = ApiDBUtils.newHostForMigrationResponse(vr, details);
        vrDataList.put(vr.getId(), vrData);
    }
    return new ArrayList<HostForMigrationResponse>(vrDataList.values());
}
Also used : Hashtable(java.util.Hashtable) ArrayList(java.util.ArrayList) HostJoinVO(com.cloud.api.query.vo.HostJoinVO) HostForMigrationResponse(org.apache.cloudstack.api.response.HostForMigrationResponse)

Example 2 with HostForMigrationResponse

use of org.apache.cloudstack.api.response.HostForMigrationResponse in project cloudstack by apache.

the class HostJoinDaoImpl method newHostForMigrationResponse.

@Override
public HostForMigrationResponse newHostForMigrationResponse(HostJoinVO host, EnumSet<HostDetails> details) {
    HostForMigrationResponse hostResponse = new HostForMigrationResponse();
    hostResponse.setId(host.getUuid());
    hostResponse.setCapabilities(host.getCapabilities());
    hostResponse.setClusterId(host.getClusterUuid());
    hostResponse.setCpuNumber(host.getCpus());
    hostResponse.setZoneId(host.getZoneUuid());
    hostResponse.setDisconnectedOn(host.getDisconnectedOn());
    hostResponse.setHypervisor(host.getHypervisorType());
    hostResponse.setHostType(host.getType());
    hostResponse.setLastPinged(new Date(host.getLastPinged()));
    hostResponse.setManagementServerId(host.getManagementServerId());
    hostResponse.setName(host.getName());
    hostResponse.setPodId(host.getPodUuid());
    hostResponse.setRemoved(host.getRemoved());
    hostResponse.setCpuSpeed(host.getSpeed());
    hostResponse.setState(host.getStatus());
    hostResponse.setIpAddress(host.getPrivateIpAddress());
    hostResponse.setVersion(host.getVersion());
    hostResponse.setCreated(host.getCreated());
    if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity) || details.contains(HostDetails.stats) || details.contains(HostDetails.events)) {
        hostResponse.setOsCategoryId(host.getOsCategoryUuid());
        hostResponse.setOsCategoryName(host.getOsCategoryName());
        hostResponse.setZoneName(host.getZoneName());
        hostResponse.setPodName(host.getPodName());
        if (host.getClusterId() > 0) {
            hostResponse.setClusterName(host.getClusterName());
            hostResponse.setClusterType(host.getClusterType().toString());
        }
    }
    DecimalFormat decimalFormat = new DecimalFormat("#.##");
    if (host.getType() == Host.Type.Routing) {
        if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity)) {
            // set allocated capacities
            Long mem = host.getMemReservedCapacity() + host.getMemUsedCapacity();
            Long cpu = host.getCpuReservedCapacity() + host.getCpuUsedCapacity();
            hostResponse.setMemoryTotal(host.getTotalMemory());
            Float memWithOverprovisioning = host.getTotalMemory() * ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId());
            hostResponse.setMemWithOverprovisioning(decimalFormat.format(memWithOverprovisioning));
            String memoryAllocatedPercentage = decimalFormat.format((float) mem / memWithOverprovisioning * 100.0f) + "%";
            hostResponse.setMemoryAllocated(memoryAllocatedPercentage);
            hostResponse.setMemoryAllocatedPercentage(memoryAllocatedPercentage);
            hostResponse.setMemoryAllocatedBytes(mem);
            String hostTags = host.getTag();
            hostResponse.setHostTags(hostTags);
            hostResponse.setHaHost(containsHostHATag(hostTags));
            hostResponse.setHypervisorVersion(host.getHypervisorVersion());
            hostResponse.setCpuAllocatedValue(cpu);
            String cpuAlloc = decimalFormat.format(((float) cpu / (float) (host.getCpus() * host.getSpeed())) * 100f) + "%";
            hostResponse.setCpuAllocated(cpuAlloc);
            hostResponse.setCpuAllocatedPercentage(cpuAlloc);
            float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId());
            hostResponse.setCpuAllocatedWithOverprovisioning(calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning));
            hostResponse.setCpuWithOverprovisioning(decimalFormat.format(cpuWithOverprovisioning));
        }
        if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) {
            // set CPU/RAM/Network stats
            String cpuUsed = null;
            HostStats hostStats = ApiDBUtils.getHostStatistics(host.getId());
            if (hostStats != null) {
                float cpuUtil = (float) hostStats.getCpuUtilization();
                cpuUsed = decimalFormat.format(cpuUtil) + "%";
                hostResponse.setCpuUsed(cpuUsed);
                hostResponse.setMemoryUsed((new Double(hostStats.getUsedMemory())).longValue());
                hostResponse.setNetworkKbsRead((new Double(hostStats.getNetworkReadKBs())).longValue());
                hostResponse.setNetworkKbsWrite((new Double(hostStats.getNetworkWriteKBs())).longValue());
            }
        }
    } else if (host.getType() == Host.Type.SecondaryStorage) {
        StorageStats secStorageStats = ApiDBUtils.getSecondaryStorageStatistics(host.getId());
        if (secStorageStats != null) {
            hostResponse.setDiskSizeTotal(secStorageStats.getCapacityBytes());
            hostResponse.setDiskSizeAllocated(secStorageStats.getByteUsed());
        }
    }
    hostResponse.setLocalStorageActive(ApiDBUtils.isLocalStorageActiveOnHost(host.getId()));
    if (details.contains(HostDetails.all) || details.contains(HostDetails.events)) {
        Set<com.cloud.host.Status.Event> possibleEvents = host.getStatus().getPossibleEvents();
        if ((possibleEvents != null) && !possibleEvents.isEmpty()) {
            String events = "";
            Iterator<com.cloud.host.Status.Event> iter = possibleEvents.iterator();
            while (iter.hasNext()) {
                com.cloud.host.Status.Event event = iter.next();
                events += event.toString();
                if (iter.hasNext()) {
                    events += "; ";
                }
            }
            hostResponse.setEvents(events);
        }
    }
    hostResponse.setResourceState(host.getResourceState().toString());
    // set async job
    hostResponse.setJobId(host.getJobUuid());
    hostResponse.setJobStatus(host.getJobStatus());
    hostResponse.setObjectName("host");
    return hostResponse;
}
Also used : StorageStats(com.cloud.storage.StorageStats) DecimalFormat(java.text.DecimalFormat) HostForMigrationResponse(org.apache.cloudstack.api.response.HostForMigrationResponse) Date(java.util.Date) HostStats(com.cloud.host.HostStats)

Example 3 with HostForMigrationResponse

use of org.apache.cloudstack.api.response.HostForMigrationResponse in project cloudstack by apache.

the class FindHostsForMigrationCmd method execute.

@Override
public void execute() {
    ListResponse<HostForMigrationResponse> response = null;
    Pair<List<? extends Host>, Integer> result;
    Map<Host, Boolean> hostsRequiringStorageMotion;
    Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> hostsForMigration = _mgr.listHostsForMigrationOfVM(getVirtualMachineId(), this.getStartIndex(), this.getPageSizeVal(), this.getKeyword());
    result = hostsForMigration.first();
    List<? extends Host> hostsWithCapacity = hostsForMigration.second();
    hostsRequiringStorageMotion = hostsForMigration.third();
    response = new ListResponse<HostForMigrationResponse>();
    List<HostForMigrationResponse> hostResponses = new ArrayList<HostForMigrationResponse>();
    for (Host host : result.first()) {
        HostForMigrationResponse hostResponse = _responseGenerator.createHostForMigrationResponse(host);
        Boolean suitableForMigration = false;
        if (hostsWithCapacity.contains(host)) {
            suitableForMigration = true;
        }
        hostResponse.setSuitableForMigration(suitableForMigration);
        Boolean requiresStorageMotion = hostsRequiringStorageMotion.get(host);
        if (requiresStorageMotion != null && requiresStorageMotion) {
            hostResponse.setRequiresStorageMotion(true);
        } else {
            hostResponse.setRequiresStorageMotion(false);
        }
        hostResponse.setObjectName("host");
        hostResponses.add(hostResponse);
    }
    response.setResponses(hostResponses, result.second());
    response.setResponseName(getCommandName());
    this.setResponseObject(response);
}
Also used : ArrayList(java.util.ArrayList) Host(com.cloud.host.Host) HostForMigrationResponse(org.apache.cloudstack.api.response.HostForMigrationResponse) ArrayList(java.util.ArrayList) List(java.util.List) Map(java.util.Map) Pair(com.cloud.utils.Pair)

Aggregations

HostForMigrationResponse (org.apache.cloudstack.api.response.HostForMigrationResponse)3 ArrayList (java.util.ArrayList)2 HostJoinVO (com.cloud.api.query.vo.HostJoinVO)1 Host (com.cloud.host.Host)1 HostStats (com.cloud.host.HostStats)1 StorageStats (com.cloud.storage.StorageStats)1 Pair (com.cloud.utils.Pair)1 DecimalFormat (java.text.DecimalFormat)1 Date (java.util.Date)1 Hashtable (java.util.Hashtable)1 List (java.util.List)1 Map (java.util.Map)1