private void removePortProfiles(ContainerHostRemovalTaskState state, ArrayList<String> hostPortProfileLinks, String subTaskLink) { if (subTaskLink == null) { // create counter subtask to remove every host port profile. Go to REMOVED_PORT_PROFILES when complete createCounterSubTask(state, hostPortProfileLinks.size(), SubStage.REMOVED_PORT_PROFILES, (link) -> removePortProfiles(state, hostPortProfileLinks, link)); return; } // delete host port profiles for (String profileLink : hostPortProfileLinks) { sendRequest(Operation.createDelete(this, profileLink) .setCompletion((o, ex) -> { if (ex != null) { failTask("Failed to delete host port profile: %s", ex); return; } completeSubTasksCounter(subTaskLink, null); })); } }
private void updateNetworkParentLinks(ContainerNetworkState networkState) { ContainerNetworkState patchNetworkState = new ContainerNetworkState(); patchNetworkState.parentLinks = networkState.parentLinks; if ((networkState.originatingHostLink != null) && !networkState.parentLinks.isEmpty() && (!networkState.parentLinks.contains(networkState.originatingHostLink))) { // set another parent like the "owner" of the network patchNetworkState.originatingHostLink = networkState.parentLinks.get(0); } sendRequest(Operation .createPatch(this, networkState.documentSelfLink) .setBody(patchNetworkState) .setCompletion((o, ex) -> { if (o.getStatusCode() == Operation.STATUS_CODE_NOT_FOUND) { logFine("Network %s not found to be updated its parent links.", networkState.documentSelfLink); } else if (ex != null) { logWarning("Failed to update network %s parent links: %s", networkState.documentSelfLink, Utils.toString(ex)); } else { logInfo("Updated network parent links: %s", networkState.documentSelfLink); } })); }
private void removeKubernetesResources(ContainerHostRemovalTaskState state, Set<String> kubernetesHostLinks) { if (kubernetesHostLinks == null || kubernetesHostLinks.isEmpty()) { queryPortProfiles(state); return; } CompositeKubernetesRemovalTaskState kubernetesRemovalTask = new CompositeKubernetesRemovalTaskState(); kubernetesRemovalTask.resourceLinks = kubernetesHostLinks; kubernetesRemovalTask.cleanupOnly = true; kubernetesRemovalTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.REMOVED_KUBERNETES_RESOURCES, TaskStage.STARTED, SubStage.ERROR); kubernetesRemovalTask.requestTrackerLink = state.requestTrackerLink; Operation startPost = Operation .createPost(this, CompositeKubernetesRemovalTaskService.FACTORY_LINK) .setBody(kubernetesRemovalTask) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating kubernetes composite removal task", e); return; } proceedTo(SubStage.REMOVING_KUBERNETES_RESOURCES); }); sendRequest(startPost); }
private void removeVolumes(ContainerHostRemovalTaskState state, Set<String> volumeSelfLinks) { // run a sub task for removing the volumes ContainerVolumeRemovalTaskState volumeRemovalTask = new ContainerVolumeRemovalTaskState(); volumeRemovalTask.resourceLinks = volumeSelfLinks; volumeRemovalTask.removeOnly = true; volumeRemovalTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.REMOVED_VOLUMES, TaskStage.STARTED, SubStage.ERROR); volumeRemovalTask.requestTrackerLink = state.requestTrackerLink; Operation startPost = Operation .createPost(this, ContainerVolumeRemovalTaskService.FACTORY_LINK) .setBody(volumeRemovalTask) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating container volume removal task", e); return; } proceedTo(SubStage.REMOVING_VOLUMES); }); sendRequest(startPost); }
dataCollectionState.computeContainerHostLinks = state.resourceLinks; dataCollectionState.remove = true; sendRequest(Operation.createPatch(uri) .setBody(dataCollectionState) .setCompletion((o1, ex1) -> { sendRequest(Operation .createDelete(this, resourceLink) .setBody(new ServiceDocument())
private void removeContainers(ContainerHostRemovalTaskState state, Set<String> containerSelfLinks) { // run a sub task for removing the containers ContainerRemovalTaskState containerRemovalTask = new ContainerRemovalTaskState(); containerRemovalTask.resourceLinks = containerSelfLinks; containerRemovalTask.removeOnly = true; containerRemovalTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.REMOVED_CONTAINERS, TaskStage.STARTED, SubStage.ERROR); containerRemovalTask.requestTrackerLink = state.requestTrackerLink; Operation startPost = Operation .createPost(this, ContainerRemovalTaskFactoryService.SELF_LINK) .setBody(containerRemovalTask) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating container removal task", e); return; } proceedTo(SubStage.REMOVING_CONTAINERS); }); sendRequest(startPost); }
private void removeNetworks(ContainerHostRemovalTaskState state, Set<String> networkSelfLinks) { // run a sub task for removing the networks ContainerNetworkRemovalTaskState networkRemovalTask = new ContainerNetworkRemovalTaskState(); networkRemovalTask.resourceLinks = networkSelfLinks; networkRemovalTask.removeOnly = true; networkRemovalTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.REMOVED_NETWORKS, TaskStage.STARTED, SubStage.ERROR); networkRemovalTask.requestTrackerLink = state.requestTrackerLink; Operation startPost = Operation .createPost(this, ContainerNetworkRemovalTaskService.FACTORY_LINK) .setBody(networkRemovalTask) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating container network removal task", e); return; } proceedTo(SubStage.REMOVING_NETWORKS); }); sendRequest(startPost); }
AtomicBoolean error = new AtomicBoolean(); for (String resourceLink : state.resourceLinks) { sendRequest(Operation .createPatch(this, resourceLink) .setBody(computeState)