KubeUtil { public static boolean isFarzoneNode(List<String> farzones, V1Node node) { Map<String, String> labels = node.getMetadata().getLabels(); if (CollectionsExt.isNullOrEmpty(labels)) { return false; } String nodeZone = labels.get(KubeConstants.NODE_LABEL_ZONE); if (StringExt.isEmpty(nodeZone)) { logger.debug("Node without zone label: {}", node.getMetadata().getName()); return false; } for (String farzone : farzones) { if (farzone.equalsIgnoreCase(nodeZone)) { logger.debug("Farzone node: nodeId={}, zoneId={}", node.getMetadata().getName(), nodeZone); return true; } } logger.debug("Non-farzone node: nodeId={}, zoneId={}", node.getMetadata().getName(), nodeZone); return false; }  static int estimatePodSize(V1Pod v1Pod); static boolean isPodPhaseTerminal(String phase); static Optional<Long> findFinishedTimestamp(V1Pod pod); static Optional<TitusExecutorDetails> getTitusExecutorDetails(V1Pod pod); static Optional<V1ContainerState> findContainerState(V1Pod pod); static Optional<V1ContainerStateTerminated> findTerminatedContainerStatus(V1Pod pod); static String formatV1ContainerState(V1ContainerState containerState); static Optional<String> findFarzoneId(DirectKubeConfiguration configuration, Job job); static boolean isOwnedByKubeScheduler(V1Pod v1Pod); static Optional<String> getNodeIpV4Address(V1Node node); static Map<String, String> createPodAnnotations(
            Job<?> job,
            Task task,
            byte[] containerInfoData,
            Map<String, String> passthroughAttributes,
            boolean includeJobDescriptor
    ); static Map<String, String> createPodAnnotationsFromJobParameters(Job<?> job); static boolean isNodeOwnedByFenzo(List<String> farzones, V1Node node); static boolean hasFenzoSchedulerTaint(V1Node node); static boolean isFarzoneNode(List<String> farzones, V1Node node); static String toErrorDetails(Throwable e); static Mono<T> toReact(KubeFunction<ApiCallback<T>, Call> handler); static String getMetadataName(V1ObjectMeta metadata); static Optional<V1NodeCondition> findNodeCondition(V1Node node, String type); static boolean hasUninitializedTaint(V1Node node); static final String TYPE_INTERNAL_IP; }
@Test public void testIsFarzone() { assertThat(KubeUtil.isFarzoneNode(FARZONES, newNodeInZone(FARZONE_A))).isTrue(); assertThat(KubeUtil.isFarzoneNode(asList(FARZONE_A, "farzoneB"), newNodeInZone(NOT_FARZONE))).isFalse(); assertThat(KubeUtil.isFarzoneNode(asList(FARZONE_A, "farzoneB"), NODE_WITHOUT_ZONE)).isFalse(); }