当前位置: 首页>>代码示例>>Java>>正文


Java ContainerStatus类代码示例

本文整理汇总了Java中io.fabric8.kubernetes.api.model.ContainerStatus的典型用法代码示例。如果您正苦于以下问题:Java ContainerStatus类的具体用法?Java ContainerStatus怎么用?Java ContainerStatus使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ContainerStatus类属于io.fabric8.kubernetes.api.model包,在下文中一共展示了ContainerStatus类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resolve

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
public DeploymentState resolve(ContainerStatus containerStatus) {

		Stream<Predicate<ContainerStatus>> conditionsStream = Stream.of(conditions);
		Boolean allConditionsMet = conditionsStream.reduce((x, y) -> x.and(y)).get().test(containerStatus);

		if (allConditionsMet) {
			logger.debug("deployment state is " + resolvedState.name());
			return this.resolvedState;
		}
		else {
			Stream<ContainerStatusCondition> report = Stream.of(conditions);
			report.filter(c -> {
				boolean result= false;
				try {
					result = c.test(containerStatus);
				}
				catch (NullPointerException e) {

				}
				return !result;

			}).forEach(c -> logger.debug(c + " is not satisfied"));

		}
		return null;
	}
 
开发者ID:spring-cloud,项目名称:spring-cloud-deployer-kubernetes,代码行数:27,代码来源:PredicateRunningPhaseDeploymentStateResolver.java

示例2: logLastLines

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
/**
 * Log the last lines of containers logs
 */
private void logLastLines(List<ContainerStatus> containers, String podId, String namespace, KubernetesSlave slave,
                          Map<String, Integer> errors, KubernetesClient client) {
    for (ContainerStatus containerStatus : containers) {
        String containerName = containerStatus.getName();
        PrettyLoggable<String, LogWatch> tailingLines = client.pods().inNamespace(namespace)
                .withName(podId).inContainer(containerStatus.getName()).tailingLines(30);
        String log = tailingLines.getLog();
        if (!StringUtils.isBlank(log)) {
            String msg = errors != null ? String.format(" exited with error %s", errors.get(containerName))
                    : "";
            LOGGER.log(Level.SEVERE,
                    "Error in provisioning; agent={0}, template={1}. Container {2}{3}. Logs: {4}",
                    new Object[]{slave, slave.getTemplate(), containerName, msg, tailingLines.getLog()});
        }
    }
}
 
开发者ID:carlossg,项目名称:jenkins-kubernetes-plugin,代码行数:20,代码来源:KubernetesLauncher.java

示例3: createMissingContainers

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
/**
 * Creates any missing containers; updating the currentState with the new values.
 */
public static String createMissingContainers(final ProcessManager processManager, final KubernetesModel model, final Pod pod,
                                             final PodStatus currentState, List<Container> containers) throws Exception {
    Map<String, ContainerStatus> currentContainers = KubernetesHelper.getCurrentContainers(currentState);

    for (final Container container : containers) {
        // lets update the pod model if we update the ports
        podTransaction(model, pod, new Callable<Void>() {
            @Override
            public Void call() throws Exception {
                createContainer(processManager, model, container, pod, currentState);
                return null;
            }
        });
    }

    return null;
}
 
开发者ID:fabric8io,项目名称:jube,代码行数:21,代码来源:NodeHelper.java

示例4: getPodRunningContainers

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
/**
 * Returns all the current containers and their pods
 */
@Override
public ImmutableMap<String, PodCurrentContainer> getPodRunningContainers(KubernetesModel model) {
    Map<String, PodCurrentContainer> answer = new HashMap<>();
    for (Map.Entry<String, Pod> entry : getInternalPodMap(namespace).entrySet()) {
        String podId = entry.getKey();
        Pod podSchema = entry.getValue();
        Map<String, ContainerStatus> currentContainers = KubernetesHelper.getCurrentContainers(podSchema);
        for (Map.Entry<String, ContainerStatus> containerEntry : currentContainers.entrySet()) {
            String containerId = containerEntry.getKey();
            ContainerStatus currentContainer = containerEntry.getValue();
            PodCurrentContainer podCurrentContainer = new PodCurrentContainer(model, podId, podSchema, containerId, currentContainer);
            answer.put(containerId, podCurrentContainer);
        }
    }
    return ImmutableMap.copyOf(answer);
}
 
开发者ID:fabric8io,项目名称:jube,代码行数:20,代码来源:LocalKubernetesModel.java

示例5: allContainersReady

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
private boolean allContainersReady(List<ContainerStatus> containerStatuses) {
    boolean errorPresent = containerStatuses.stream()
            .filter(cs -> !cs.getReady().booleanValue())
            .findFirst()
            .isPresent();

    return !errorPresent ;
}
 
开发者ID:j-white,项目名称:activemq-k8s-discovery,代码行数:9,代码来源:KubernetesDiscoveryAgent.java

示例6: isInErrorState

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
private static Optional<Event> isInErrorState(WorkflowInstance workflowInstance, Pod pod) {
  final PodStatus status = pod.getStatus();
  final String phase = status.getPhase();

  switch (phase) {
    case "Pending":
      // check if one or more docker contains failed to pull their image, a possible silent error
      return status.getContainerStatuses().stream()
          .filter(IS_STYX_CONTAINER.and(KubernetesPodEventTranslator::hasPullImageError))
          .findAny()
          .map((x) -> Event.runError(workflowInstance, "One or more containers failed to pull their image"));

    case "Succeeded":
    case "Failed":
      final Optional<ContainerStatus> containerStatusOpt =
          pod.getStatus().getContainerStatuses().stream()
              .filter(IS_STYX_CONTAINER)
              .findFirst();

      if (!containerStatusOpt.isPresent()) {
        return Optional.of(Event.runError(workflowInstance, "Could not find our container in pod"));
      }

      final ContainerStatus containerStatus = containerStatusOpt.get();
      final ContainerStateTerminated terminated = containerStatus.getState().getTerminated();
      if (terminated == null) {
        return Optional.of(Event.runError(workflowInstance, "Unexpected null terminated status"));
      }
      return Optional.empty();

    case "Unknown":
      return Optional.of(Event.runError(workflowInstance, "Pod entered Unknown phase"));

    default:
      return Optional.empty();
  }
}
 
开发者ID:spotify,项目名称:styx,代码行数:38,代码来源:KubernetesPodEventTranslator.java

示例7: hasPullImageError

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
static boolean hasPullImageError(ContainerStatus cs) {
  ContainerStateWaiting waiting = cs.getState().getWaiting();
  return waiting != null && (
      "PullImageError".equals(waiting.getReason())
      || "ErrImagePull".equals(waiting.getReason())
      || "ImagePullBackOff".equals(waiting.getReason()));
}
 
开发者ID:spotify,项目名称:styx,代码行数:8,代码来源:KubernetesPodEventTranslator.java

示例8: deletePodIfNonDeletePeriodExpired

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
private void deletePodIfNonDeletePeriodExpired(WorkflowInstance workflowInstance,
                                               String executionId,
                                               ContainerStatus containerStatus) {
  if (isNonDeletePeriodExpired(containerStatus)) {
    // if terminated and after graceful period, delete the pod
    // otherwise wait until next polling happens
    deletePod(workflowInstance, executionId);
  }
}
 
开发者ID:spotify,项目名称:styx,代码行数:10,代码来源:KubernetesDockerRunner.java

示例9: cleanup

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
private void cleanup(WorkflowInstance workflowInstance, String executionId, 
                     Consumer<List<ContainerStatus>> cleaner) {
  Optional.ofNullable(client.pods().withName(executionId).get()).ifPresent(pod -> {
    final List<ContainerStatus> containerStatuses = pod.getStatus().getContainerStatuses();
    if (!containerStatuses.isEmpty()) {
      cleaner.accept(containerStatuses);
    } else {
      // for some cases such as evicted pod, there is no container status, so we delete directly
      deletePod(workflowInstance, executionId);
    }
  });
}
 
开发者ID:spotify,项目名称:styx,代码行数:13,代码来源:KubernetesDockerRunner.java

示例10: isNonDeletePeriodExpired

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
private boolean isNonDeletePeriodExpired(ContainerStatus containerStatus) {
  return Optional.ofNullable(containerStatus.getState().getTerminated().getFinishedAt())
      .map(finishedAt -> Instant.parse(finishedAt)
          .isBefore(clock.instant().minus(
              Duration.ofSeconds(podDeletionDelaySeconds))))
      .orElse(true);
}
 
开发者ID:spotify,项目名称:styx,代码行数:8,代码来源:KubernetesDockerRunner.java

示例11: ContainerReady

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
ContainerReady(KubernetesDeployerProperties properties) {
	super(properties, DeploymentState.deployed, new ContainerStatusCondition("container ready") {
		@Override
		public boolean test(ContainerStatus containerStatus) {
			return containerStatus.getReady();
		}
	});
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-deployer-kubernetes,代码行数:9,代码来源:PredicateRunningPhaseDeploymentStateResolver.java

示例12: resolve

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
@Override
public DeploymentState resolve(ContainerStatus containerStatus) {
	for (RunningPhaseDeploymentStateResolver resolver: delegates) {
		DeploymentState deploymentState = resolver.resolve(containerStatus);
		if (deploymentState != null) {
			return deploymentState;
		}
	}
	return null;
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-deployer-kubernetes,代码行数:11,代码来源:CompositeDeploymentStateResolver.java

示例13: getOrCreateContainerStatuses

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
/**
 * Returns the current container map for the current pod state; lazily creating if required
 */
public static List<ContainerStatus> getOrCreateContainerStatuses(Pod pod) {
    PodStatus currentState = getOrCreatetStatus(pod);
    List<ContainerStatus> containerStatuses = currentState.getContainerStatuses();
    if (containerStatuses == null) {
        containerStatuses = new ArrayList<>();
        currentState.setContainerStatuses(containerStatuses);
    }
    return containerStatuses;
}
 
开发者ID:fabric8io,项目名称:jube,代码行数:13,代码来源:NodeHelper.java

示例14: getOrCreateContainerState

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
/**
 * Returns the containers state, lazily creating any objects if required.
 */
public static ContainerState getOrCreateContainerState(Pod pod, String containerName) {
    ContainerStatus containerInfo = getOrCreateContainerInfo(pod, containerName);
    ContainerState state = containerInfo.getState();
    if (state == null) {
        state = new ContainerState();
        containerInfo.setState(state);
    }
    return state;
}
 
开发者ID:fabric8io,项目名称:jube,代码行数:13,代码来源:NodeHelper.java

示例15: getOrCreateContainerInfo

import io.fabric8.kubernetes.api.model.ContainerStatus; //导入依赖的package包/类
/**
 * Returns the container information for the given pod and container name, lazily creating as required
 */
public static ContainerStatus getOrCreateContainerInfo(Pod pod, String containerName) {
    List<ContainerStatus> containerStatuses = getOrCreateContainerStatuses(pod);
    for (ContainerStatus containerStatus : containerStatuses) {
        String containerID = containerStatus.getContainerID();
        if (Objects.equal(containerName, containerID)) {
            return containerStatus;
        }
    }
    ContainerStatus status = new ContainerStatus();
    status.setContainerID(containerName);
    containerStatuses.add(status);
    return status;
}
 
开发者ID:fabric8io,项目名称:jube,代码行数:17,代码来源:NodeHelper.java


注:本文中的io.fabric8.kubernetes.api.model.ContainerStatus类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。