private void getContainerVolumeDescription(ContainerVolumeProvisionTaskState state, Consumer<ContainerVolumeDescription> callbackFunction) { if (volumeDescription != null) { callbackFunction.accept(volumeDescription); return; } sendRequest(Operation.createGet(this, state.resourceDescriptionLink) .setCompletion( (o, e) -> { if (e != null) { failTask("Failure retrieving container volume description.", e); return; } ContainerVolumeDescription desc = o .getBody(ContainerVolumeDescription.class); this.volumeDescription = desc; callbackFunction.accept(desc); })); }
private void updateContainerVolumeStateWithContainerHostLink(String volumeSelfLink, ComputeState host, Runnable callbackFunction) { ContainerVolumeState patch = new ContainerVolumeState(); patch.originatingHostLink = host.documentSelfLink; patch.parentLinks = new ArrayList<>(Arrays.asList(host.documentSelfLink)); sendRequest(Operation .createPatch(this, volumeSelfLink) .setBody(patch) .setCompletion( (o, e) -> { if (e != null) { logWarning("Error while updating volume: %s", volumeSelfLink); failTask(String.format("Error while updating volume: %s", volumeSelfLink), e); } else { callbackFunction.run(); } })); }
sendRequest(Operation .createPatch(this, currentVolumeState.documentSelfLink) .setBody(patch)
private void createAndSendContainerVolumeRequest(ContainerVolumeProvisionTaskState state, ServiceTaskCallback taskCallback, String volumeSelfLink) { AdapterRequest volumeRequest = new AdapterRequest(); volumeRequest.resourceReference = UriUtils.buildUri(getHost(), volumeSelfLink); volumeRequest.serviceTaskCallback = taskCallback; if (Boolean.TRUE.equals(volumeDescription.external)) { // The volume is defined as external, just validate that it exists actually. volumeRequest.operationTypeId = VolumeOperationType.INSPECT.id; } else { volumeRequest.operationTypeId = VolumeOperationType.CREATE.id; } volumeRequest.customProperties = state.customProperties; sendRequest(Operation.createPatch(getHost(), state.instanceAdapterReference.toString()) .setBody(volumeRequest) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("AdapterRequest failed for volume: " + volumeSelfLink, e); return; } logInfo("Volume provisioning started for: %s", volumeSelfLink); })); }