/** * Check if host is running Kubernetes. * * @param computeState * host to check * @return boolean value */ public static boolean isKubernetesHost(ComputeState computeState) { if (computeState == null || computeState.customProperties == null) { return false; } String hostType = computeState.customProperties.get( ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME); return (hostType != null && hostType.equals(ContainerHostType.KUBERNETES.name())); }
kubernetesHost.customProperties = new HashMap<>(); kubernetesHost.customProperties.put(CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); kubernetesHost.customProperties.put(HOST_DOCKER_ADAPTER_TYPE_PROP_NAME, ContainerHostService.DockerAdapterType.API.name());
private void addRequestProperties(AdapterRequest request) { if (request.customProperties == null) { request.customProperties = new HashMap<>(); } request.customProperties.put(ComputeConstants.HOST_AUTH_CREDENTIALS_PROP_NAME, testKubernetesCredentialsLink); request.customProperties.put(ComputeConstants.HOST_URI_PROP_NAME, kubernetesUri.toString()); request.customProperties.put( ContainerHostService.HOST_DOCKER_ADAPTER_TYPE_PROP_NAME, ContainerHostService.DockerAdapterType.API.name()); request.customProperties.put( ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); }
map.put(ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, hostType.name()); map.put(ComputeConstants.HOST_AUTH_CREDENTIALS_PROP_NAME, PropertyUtils.getPropertyString(hostSpec.hostState.customProperties,
@Test public void testRequestBrokerContainerHostRemovalWithKubernetesResources() throws Throwable { computeHost.customProperties.put(ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); computeHost = doPatch(computeHost, computeHost.documentSelfLink); PodState podState = new PodState(); podState.parentLink = computeHost.documentSelfLink; podState = doPost(podState, PodFactoryService.SELF_LINK); ServiceState serviceState = new ServiceState(); serviceState.parentLink = computeHost.documentSelfLink; serviceState = doPost(serviceState, ServiceEntityFactoryHandler.SELF_LINK); RequestBrokerState request = new RequestBrokerState(); request.resourceType = ResourceType.CONTAINER_HOST_TYPE.getName(); request.resourceLinks = new HashSet<>(Collections.singletonList( computeHost.documentSelfLink)); request.operation = RequestBrokerState.REMOVE_RESOURCE_OPERATION; request = startRequest(request); waitForRequestToComplete(request); List<String> podStateLinks = findResourceLinks(PodState.class, Collections.singletonList(podState.documentSelfLink)); assertTrue("PodState links not removed: " + podStateLinks, podStateLinks.isEmpty()); List<String> serviceStateLinks = findResourceLinks(ServiceState.class, Collections.singletonList(serviceState.documentSelfLink)); assertTrue("ServiceState links not removed: " + serviceStateLinks, serviceStateLinks.isEmpty()); Collection<String> computeSelfLinks = findResourceLinks(ComputeState.class, Collections.singletonList(computeHost.documentSelfLink)); assertTrue("ComputeState was not deleted: " + computeSelfLinks, computeSelfLinks.isEmpty()); }
protected ComputeState createKubernetesHostComputeState(String testKubernetesCredentialsLink) throws Throwable { ComputeDescription computeDescription = new ComputeDescription(); computeDescription.customProperties = new HashMap<>(); computeDescription.id = UUID.randomUUID().toString(); waitForServiceAvailability(ComputeDescriptionService.FACTORY_LINK); String computeDescriptionLink = doPost(computeDescription, ComputeDescriptionService.FACTORY_LINK).documentSelfLink; ComputeState computeState = new ComputeState(); computeState.id = "testParentComputeState"; computeState.descriptionLink = computeDescriptionLink; computeState.customProperties = new HashMap<>(); computeState.customProperties.put( ComputeConstants.HOST_AUTH_CREDENTIALS_PROP_NAME, testKubernetesCredentialsLink); computeState.customProperties.put( ContainerHostService.HOST_DOCKER_ADAPTER_TYPE_PROP_NAME, ContainerHostService.DockerAdapterType.API.name()); computeState.customProperties.put( ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); computeState.customProperties.put( KubernetesHostConstants.KUBERNETES_HOST_NAMESPACE_PROP_NAME, KubernetesHostConstants.KUBERNETES_HOST_DEFAULT_NAMESPACE); computeState.address = kubernetesUri.toString(); waitForServiceAvailability(ComputeService.FACTORY_LINK); ComputeState kubernetesHostState = doPost(computeState, ComputeService.FACTORY_LINK); return kubernetesHostState; }
private ContainerHostSpec createContainerHostSpec(final String projectLinkDocker) { ContainerHostSpec hostSpecDocker1 = new ContainerHostSpec(); hostSpecDocker1.hostState = new ComputeState(); hostSpecDocker1.hostState.id = UUID.randomUUID().toString(); hostSpecDocker1.hostState.address = "test-address"; hostSpecDocker1.hostState.tenantLinks = Collections.singletonList(projectLinkDocker); hostSpecDocker1.acceptCertificate = true; hostSpecDocker1.hostState.customProperties = new HashMap<>(); hostSpecDocker1.hostState.customProperties.put( ContainerHostService.HOST_DOCKER_ADAPTER_TYPE_PROP_NAME, ContainerHostService.DockerAdapterType.API.name()); hostSpecDocker1.hostState.customProperties.put( ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.DOCKER.name()); hostSpecDocker1.hostState.customProperties.put( ComputeConstants.HOST_AUTH_CREDENTIALS_PROP_NAME, ""); return hostSpecDocker1; }
private ComputeState createCompute(String authCredentialsLink, boolean isKubernetesHost, boolean pksManaged) throws Throwable { ComputeState kubernetesHost = new ComputeState(); kubernetesHost.address = "hostname"; kubernetesHost.descriptionLink = "description"; kubernetesHost.customProperties = new HashMap<>(); kubernetesHost.customProperties.put(HOST_AUTH_CREDENTIALS_PROP_NAME, authCredentialsLink); if (isKubernetesHost) { kubernetesHost.customProperties.put(CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); } else { kubernetesHost.customProperties.put(CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.DOCKER.name()); } if (pksManaged) { kubernetesHost.customProperties.put(PKS_ENDPOINT_PROP_NAME, "/endpoint/link"); } return doPost(kubernetesHost, ComputeService.FACTORY_LINK); } }
@Test public void testIsSchedulerHost() { final String alias = "alias"; ComputeService.ComputeState state = new ComputeService.ComputeState(); state.customProperties = new HashMap<>(); state.customProperties.put(ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); state.customProperties.put(ContainerHostUtil.PROPERTY_NAME_DRIVER, ContainerHostUtil.VMWARE_VIC_DRIVER2); boolean result = ContainerHostUtil.isSchedulerHost(state); assertTrue(result); // negative test state.customProperties = new HashMap<>(); result = ContainerHostUtil.isSchedulerHost(state); assertFalse(result); }
protected ComputeState createKubernetesHost(ResourcePoolState resourcePool) throws Throwable { ComputeDescription createDockerHostDescription = createDockerHostDescription(); ComputeState compute = new ComputeState(); compute.resourcePoolLink = resourcePool.documentSelfLink; compute.primaryMAC = UUID.randomUUID().toString(); compute.powerState = PowerState.ON; compute.adapterManagementReference = URI.create("http://localhost:8081"); // not real reference compute.descriptionLink = createDockerHostDescription.documentSelfLink; compute.customProperties = new HashMap<>(); compute.customProperties.put(ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); compute = getOrCreateDocument(compute, ComputeService.FACTORY_LINK); assertNotNull(compute); addForDeletion(compute); return compute; }
@Test public void testIsKubernetesHost() { ComputeService.ComputeState state = new ComputeService.ComputeState(); state.customProperties = new HashMap<>(); state.customProperties.put(ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, ContainerHostType.KUBERNETES.name()); boolean result = ContainerHostUtil.isKubernetesHost(state); assertTrue(result); // negative test state.customProperties = null; result = ContainerHostUtil.isKubernetesHost(state); assertFalse(result); }