public TensorBoardOutputModel(TensorBoardContainer container, ContainerStatus status, string endpoint = null)
        {
            Status     = status.Name;
            StatusType = status.StatusType;

            if (container != null)
            {
                Name = container.Name;
                if (status.Exist() && string.IsNullOrEmpty(container.Host) == false)
                {
                    //ノードポート番号を返す
                    NodePort = container.PortNo.ToString();
                }

                // 残り生存時間を計算する
                if (container.ExpiresIn.HasValue && container.ExpiresIn.Value != 0)
                {
                    long     elapsedTicks = container.StartedAt.AddSeconds(container.ExpiresIn.Value).Ticks - DateTime.Now.Ticks;
                    TimeSpan elapsedSpan  = new TimeSpan(elapsedTicks);
                    if (elapsedSpan.Ticks < 0)
                    {
                        RemainingTime = "0d 0h 0m";
                    }
                    else
                    {
                        RemainingTime = elapsedSpan.ToString(@"%d'd '%h'h '%m'm'", CultureInfo.InvariantCulture);
                    }
                }
                else
                {
                    // 生存時間が無期限の場合はnullを返す
                    RemainingTime = null;
                }
            }
        }
Beispiel #2
0
        public TensorBoardOutputModel(TensorBoardContainer container, ContainerStatus status, string endpoint = null)
        {
            Status     = status.Name;
            StatusType = status.StatusType;

            if (container != null)
            {
                Name = container.Name;
                if (status.Exist() && string.IsNullOrEmpty(container.Host) == false)
                {
                    //リバプロなどでノードのホスト名ではなく、共通のエンドポイントを使える場合は、そっちを使う
                    string host = string.IsNullOrEmpty(endpoint) ? container.Host : endpoint;
                    Url = new UriBuilder("http", host, (int)container.PortNo).ToString();
                }
            }
        }