private void validate(ContainerHostSpec hostSpec) { final ComputeState cs = hostSpec.hostState; AssertUtil.assertNotNull(cs, "computeState"); AssertUtil.assertNotEmpty(cs.address, "address"); AssertUtil.assertNotEmpty(cs.customProperties, "customProperties"); String adapterDockerType = cs.customProperties.get(HOST_DOCKER_ADAPTER_TYPE_PROP_NAME); AssertUtil.assertNotEmpty(adapterDockerType, HOST_DOCKER_ADAPTER_TYPE_PROP_NAME); DockerAdapterType adapterType = DockerAdapterType.valueOf(adapterDockerType); AssertUtil.assertNotNull(adapterType, "adapterType"); cs.address = cs.address.trim(); String kubernetesNamespace = cs.customProperties.get( KubernetesHostConstants.KUBERNETES_HOST_NAMESPACE_PROP_NAME); if (kubernetesNamespace == null || kubernetesNamespace.isEmpty()) { cs.customProperties.put( KubernetesHostConstants.KUBERNETES_HOST_NAMESPACE_PROP_NAME, KubernetesHostConstants.KUBERNETES_HOST_DEFAULT_NAMESPACE); } else { kubernetesNamespace = kubernetesNamespace.trim(); AssertUtil.assertTrue(!kubernetesNamespace.contains("/") && !kubernetesNamespace.contains("\\"), "Namespace cannot contain" + " slashes."); AssertUtil.assertTrue(kubernetesNamespace.matches( KubernetesHostConstants.KUBERNETES_NAMESPACE_REGEX), "Invalid namespace."); cs.customProperties.put( KubernetesHostConstants.KUBERNETES_HOST_NAMESPACE_PROP_NAME, kubernetesNamespace); } }