private AdapterRequest createAdapterRequest(PKSProvisioningTaskState task, PKSOperationType operation) { AdapterRequest adapterRequest = new AdapterRequest(); adapterRequest.operationTypeId = operation.id; adapterRequest.resourceReference = URI.create(task.endpointLink); adapterRequest.serviceTaskCallback = ServiceTaskCallback.createEmpty(); adapterRequest.customProperties = task.customProperties; return adapterRequest; }
private AdapterRequest createAdapterRequest(PKSClusterRemovalTaskState task, PKSOperationType operationType) { AdapterRequest adapterRequest = new AdapterRequest(); adapterRequest.operationTypeId = operationType.id; adapterRequest.resourceReference = URI.create(task.endpointLink); adapterRequest.serviceTaskCallback = ServiceTaskCallback.createEmpty(); adapterRequest.customProperties = new HashMap<>(2); adapterRequest.customProperties.put(PKS_CLUSTER_NAME_PROP_NAME, task.clusterName); return adapterRequest; }
private AdapterRequest createAdapterRequest(PKSClusterResizeTaskState task, PKSOperationType operationType) { AdapterRequest adapterRequest = new AdapterRequest(); adapterRequest.operationTypeId = operationType.id; adapterRequest.resourceReference = URI.create(task.endpointLink); adapterRequest.serviceTaskCallback = ServiceTaskCallback.createEmpty(); adapterRequest.customProperties = task.customProperties; if (adapterRequest.customProperties == null) { adapterRequest.customProperties = new HashMap<>(); } adapterRequest.customProperties.put(PKS_CLUSTER_NAME_PROP_NAME, task.clusterName); return adapterRequest; }
private AdapterRequest prepareAdapterRequest(ContainerHostOperationType operationType, ComputeState cs, SslTrustCertificateState sslTrust) { AdapterRequest request = new AdapterRequest(); request.operationTypeId = operationType.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), ComputeService.FACTORY_LINK); request.customProperties = cs.customProperties == null ? new HashMap<>() : new HashMap<>(cs.customProperties); request.customProperties.putIfAbsent(ComputeConstants.HOST_URI_PROP_NAME, cs.address); if (sslTrust != null) { request.customProperties.put(SSL_TRUST_CERT_PROP_NAME, sslTrust.certificate); request.customProperties.put(SSL_TRUST_ALIAS_PROP_NAME, SslTrustCertificateFactoryService.generateFingerprint(sslTrust)); } return request; }
private ContainerNetworkAllocationTaskState createContainerNetworkAllocationTask( String networkDocSelfLink, long resourceCount) { ContainerNetworkAllocationTaskState allocationTask = new ContainerNetworkAllocationTaskState(); allocationTask.resourceDescriptionLink = networkDocSelfLink; allocationTask.resourceCount = resourceCount; allocationTask.serviceTaskCallback = ServiceTaskCallback.createEmpty(); allocationTask.customProperties = new HashMap<>(); return allocationTask; }
private ContainerVolumeAllocationTaskState createContainerVolumeAllocationTask( String volumeDocSelfLink, long resourceCount) { ContainerVolumeAllocationTaskState allocationTask = new ContainerVolumeAllocationTaskState(); allocationTask.resourceDescriptionLink = volumeDocSelfLink; allocationTask.resourceCount = resourceCount; allocationTask.serviceTaskCallback = ServiceTaskCallback.createEmpty(); allocationTask.customProperties = new HashMap<>(1); allocationTask.customProperties.put("volume propKey string", "volume customPropertyValue string"); return allocationTask; }
private Operation createSearchOperation(URI registryAdapterUri, Map<String, String> queryParams, String searchRegistryLink) { AdapterRequest imageRequest = new AdapterRequest(); imageRequest.operationTypeId = ImageOperationType.SEARCH.id; imageRequest.serviceTaskCallback = ServiceTaskCallback.createEmpty(); imageRequest.resourceReference = UriUtils.buildPublicUri(getHost(), searchRegistryLink); imageRequest.customProperties = new HashMap<>(queryParams); Operation adapterOp = Operation .createPatch(registryAdapterUri) .setBody(imageRequest); return adapterOp; }
private ContainerAllocationTaskState createContainerAllocationTask(String containerDescLink, long resourceCount) { ContainerAllocationTaskState allocationTask = new ContainerAllocationTaskState(); allocationTask.resourceDescriptionLink = containerDescLink; allocationTask.groupResourcePlacementLink = groupPlacementState.documentSelfLink; allocationTask.resourceType = ResourceType.CONTAINER_TYPE.getName(); allocationTask.resourceCount = resourceCount; allocationTask.serviceTaskCallback = ServiceTaskCallback.createEmpty(); allocationTask.customProperties = new HashMap<>(); return allocationTask; }
private PlacementHostSelectionTaskState createHostPlacementTask(String containerDescLink, int resourceCount, boolean expectError) throws Throwable { PlacementHostSelectionTaskState placementTask = new PlacementHostSelectionTaskState(); placementTask.documentSelfLink = UUID.randomUUID().toString(); placementTask.resourceDescriptionLink = containerDescLink; placementTask.resourcePoolLinks = new ArrayList<>(); placementTask.resourcePoolLinks.add(resourcePool.documentSelfLink); placementTask.resourceCount = resourceCount; placementTask.resourceType = ResourceType.CONTAINER_TYPE.getName(); placementTask.contextId = contextId; placementTask.serviceTaskCallback = ServiceTaskCallback.createEmpty(); placementTask.documentExpirationTimeMicros = ServiceUtils .getDefaultTaskExpirationTimeInMicros(); return placeTask(placementTask, expectError); }
public void requestNetworkInspection(ContainerNetworkState networkState) { AdapterRequest request = new AdapterRequest(); request.resourceReference = UriUtils.buildPublicUri(host, networkState.documentSelfLink); request.operationTypeId = NetworkOperationType.INSPECT.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); host.sendRequest(Operation .createPatch(host, networkState.adapterManagementReference.toString()) .setBodyNoCloning(request) .setReferer(UriUtils.buildUri(host, SERVICE_REFERRER_PATH)) .setCompletion((o, ex) -> { if (ex != null) { Utils.log(getClass(), SERVICE_REFERRER_PATH, Level.WARNING, "Exception while inspect request for network: %s. Error: %s", networkState.documentSelfLink, Utils.toString(ex)); } })); }
@Test public void testGetFailedCallbackResponse() throws Throwable { PKSClusterProvisioningTaskService service = new PKSClusterProvisioningTaskService(); Method m = service.getClass().getDeclaredMethod("getFailedCallbackResponse", PKSProvisioningTaskState.class); m.setAccessible(true); PKSProvisioningTaskState task = new PKSProvisioningTaskState(); task.serviceTaskCallback = ServiceTaskCallback.createEmpty(); task.taskInfo = new TaskState(); task.resourceLinks = new HashSet<>(); task.resourceLinks.add("link1"); CallbackCompleteResponse response = (CallbackCompleteResponse) m.invoke(service, task); assertNotNull(response); assertNotNull(response.resourceLinks); assertEquals(1, response.resourceLinks.size()); assertEquals("link1", response.resourceLinks.iterator().next()); }
private CompositionSubTaskState createCompositionSubTask(String name, String compositeDescriptionLink, String resourceDescriptionLink) throws Throwable { CompositionSubTaskState compositionSubTaskState = new CompositionSubTaskState(); compositionSubTaskState.name = name; compositionSubTaskState.tenantLinks = TestRequestStateFactory.createTenantLinks(TestRequestStateFactory.TENANT_NAME); compositionSubTaskState.resourceType = ResourceType.CONTAINER_TYPE.getName(); compositionSubTaskState.documentSelfLink = UriUtils.buildUriPath( CompositionSubTaskFactoryService.SELF_LINK, UUID.randomUUID().toString()); compositionSubTaskState.resourceDescriptionLink = resourceDescriptionLink; compositionSubTaskState.requestId = UUID.randomUUID().toString(); compositionSubTaskState.serviceTaskCallback = ServiceTaskCallback.createEmpty(); compositionSubTaskState.documentExpirationTimeMicros = ServiceUtils .getDefaultTaskExpirationTimeInMicros(); compositionSubTaskState.compositeDescriptionLink = compositeDescriptionLink; compositionSubTaskState.operation = RequestBrokerState.PROVISION_RESOURCE_OPERATION; return compositionSubTaskState; }
private void listHostNetworks(NetworkListCallback body, Operation.CompletionHandler c) { AdapterRequest request = new AdapterRequest(); request.operationTypeId = ContainerHostOperationType.LIST_NETWORKS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), body.containerHostLink); sendRequest(Operation .createPatch(body.hostAdapterReference) .setBodyNoCloning(request) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setCompletion(c)); }
private void listHostContainers(ContainerListCallback body, Operation.CompletionHandler c) { String containerHostLink = body.containerHostLink; AdapterRequest request = new AdapterRequest(); request.operationTypeId = ContainerHostOperationType.LIST_CONTAINERS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), containerHostLink); sendRequest(Operation .createPatch(body.hostAdapterReference) .setBodyNoCloning(request) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setCompletion(c)); }
private void setContainerPowerState(ContainerState c, PowerState ps) throws Throwable { c.powerState = ps; doPut(c); AdapterRequest request = new AdapterRequest(); request.resourceReference = UriUtils.buildUri(host, c.documentSelfLink); request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.operationTypeId = ContainerOperationType.EXEC.id; doPatch(request, DockerAdapterService.SELF_LINK); }
private void createAdapterRequest(PodState pod) { AdapterRequest request = new AdapterRequest(); request.resourceReference = UriUtils.buildPublicUri(getHost(), pod.documentSelfLink); request.operationTypeId = KubernetesOperationType.FETCH_LOGS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); sendRequest(Operation.createPatch(getHost(), ManagementUriParts.ADAPTER_KUBERNETES) .setBody(request) .setContextId(Service.getId(getSelfLink())) .setCompletion((op, ex) -> { if (ex != null) { logWarning("Adapter request for container logs %s failed. Error: %s", pod.documentSelfLink, Utils.toString(ex)); } })); }
private void handleListRequest(Operation op, String endpointLink) { AdapterRequest request = new AdapterRequest(); request.operationTypeId = PKSOperationType.LIST_CLUSTERS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), endpointLink); sendRequest(Operation.createPatch(getHost(), ManagementUriParts.ADAPTER_PKS) .setBodyNoCloning(request) .setCompletion((o, ex) -> { if (ex != null) { logSevere("Adapter request for listing PKS clusters failed. Error: %s", Utils.toString(ex)); op.fail(ex); } else { PKSCluster[] pksClusters = o.getBody(PKSCluster[].class); queryComputes(op, pksClusters, endpointLink); } })); }
private void updateHostStats(ComputeState computeHost) { AdapterRequest request = new AdapterRequest(); request.operationTypeId = ContainerHostOperationType.STATS.id; request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); request.resourceReference = UriUtils.buildUri(getHost(), computeHost.documentSelfLink); URI adapterManagementReference = computeHost.endpointLink == null ? computeHost.adapterManagementReference : getDefaultHostAdapter(getHost()); sendRequest(Operation.createPatch(adapterManagementReference) .setAuthorizationContext(getSystemAuthorizationContext()) .setBodyNoCloning(request) .setCompletion((o, ex) -> { if (ex != null) { logWarning("Failed request host stats: %s", Utils.toString(ex)); return; } })); }
@Test public void testReservationTaskLifeCycleWhenNoAvailableGroupPlacements() throws Throwable { GroupResourcePlacementState groupPlacementState = doPost( TestRequestStateFactory.createGroupResourcePlacementState(), GroupResourcePlacementService.FACTORY_LINK); addForDeletion(groupPlacementState); ReservationTaskState task = new ReservationTaskState(); task.tenantLinks = groupPlacementState.tenantLinks; task.resourceDescriptionLink = containerDesc.documentSelfLink; task.resourceCount = groupPlacementState.maxNumberInstances + 1; task.serviceTaskCallback = ServiceTaskCallback.createEmpty(); task = doPost(task, ReservationTaskFactoryService.SELF_LINK); assertNotNull(task); waitForTaskError(task.documentSelfLink, ReservationTaskState.class); }
@Test public void testListEntities() throws Throwable { AdapterRequest request; OperationResult r; // Direct request = prepareAdapterRequest(ContainerHostOperationType.LIST_ENTITIES); request.serviceTaskCallback = ServiceTaskCallback.createEmpty(); r = sendAdapterRequest(request, getKubernetesHostStateUri()); Assert.assertNull(r.ex); Assert.assertEquals(200, r.op.getStatusCode()); Assert.assertNotNull(r.op.getBody(EntityListCallback.class)); // With ServiceCallback request = prepareAdapterRequest(ContainerHostOperationType.LIST_ENTITIES); r = sendAdapterRequest(request, getKubernetesHostStateUri()); TaskStage stage = waitForTaskToFinish(); Assert.assertNull(r.ex); Assert.assertEquals(200, r.op.getStatusCode()); Assert.assertEquals(TaskStage.FINISHED, stage); }