예제 #1
0
        static RuntimeData GetRuntimeData(V1ContainerStatus status)
        {
            string imageName = "unknown:unknown";

            if (status?.Image != null)
            {
                imageName = status.Image;
            }

            if (status?.State?.Running != null)
            {
                if (status.State.Running.StartedAt.HasValue)
                {
                    return(new RuntimeData(0, Option.Some(status.State.Running.StartedAt.Value), Option.None <DateTime>(), imageName));
                }
            }
            else if (status?.State?.Terminated != null)
            {
                return(GetTerminatedRuntimeData(status.State.Terminated, imageName));
            }
            else if (status?.LastState?.Terminated != null)
            {
                return(GetTerminatedRuntimeData(status.LastState.Terminated, imageName));
            }

            return(new RuntimeData(0, Option.None <DateTime>(), Option.None <DateTime>(), imageName));
        }
예제 #2
0
        static Option <V1ContainerStatus> GetContainerByName(string name, V1Pod pod)
        {
            string            containerName = KubeUtils.SanitizeDNSValue(name);
            V1ContainerStatus status        = pod.Status?.ContainerStatuses?
                                              .FirstOrDefault(container => string.Equals(container.Name, containerName, StringComparison.OrdinalIgnoreCase));

            return(Option.Maybe(status));
        }
 /// <summary>
 /// Instantiates an instance of <see cref="ContainerStatus" />
 /// </summary>
 public ContainerStatus(V1ContainerStatus status)
 {
     _status = status;
 }