private void updateResourcePool(PlacementCapacityUpdateTaskState state) { // calculate average cpu usage per core double totalCpuUsage = 0.0; if (state.aggregatedStats.cpuCoreCount > 0) { totalCpuUsage = state.aggregatedStats.cpuUsageSumAllCores / state.aggregatedStats.cpuCoreCount; } ResourcePoolState rpPatchState = new ResourcePoolState(); rpPatchState.customProperties = new HashMap<>(); rpPatchState.customProperties.put( ContainerHostDataCollectionService.RESOURCE_POOL_CPU_USAGE_CUSTOM_PROP, Double.toString(totalCpuUsage)); rpPatchState.customProperties.put( ContainerHostDataCollectionService.RESOURCE_POOL_AVAILABLE_MEMORY_CUSTOM_PROP, Long.toString(state.aggregatedStats.availableMemoryBytes)); rpPatchState.maxMemoryBytes = state.aggregatedStats.totalMemoryBytes; sendRequest(Operation.createPatch(this, state.resourcePoolLink) .setBody(rpPatchState) .setCompletion((o, e) -> { if (e != null) { failTask(String.format("Unable to update resource pool '%s'", state.resourcePoolLink), e); return; } proceedTo(PlacementCapacityUpdateTaskState.SubStage.UPDATE_PLACEMENTS); })); }
private void handleComputePage(PlacementCapacityUpdateTaskState state) { sendRequest(Operation .createGet(getHost(), state.nextPageLink) .setCompletion((o, e) -> { if (e != null) { failTask("Error retrieving computes", e); return; } ServiceDocumentQueryResult result = o.getBody(QueryTask.class).results; List<ComputeState> computes = result.documents.values().stream() .map(json -> Utils.fromJson(json, ComputeState.class)) .collect(Collectors.toList()); if (computes.isEmpty()) { proceedTo(PlacementCapacityUpdateTaskState.SubStage.UPDATE_RESOURCE_POOL); } else { queryComputeDescriptions(state, computes, result.nextPageLink); } })); }
private void startComputeQuery(PlacementCapacityUpdateTaskState state, ResourcePoolState resourcePoolState) { if (resourcePoolState == null) { sendRequest(Operation.createGet(getHost(), state.resourcePoolLink) .setCompletion((o, e) -> { if (e != null) { .build(); sendRequest(Operation .createPost(this, ServiceUriPaths.CORE_QUERY_TASKS) .setBody(queryTask)