mirror of https://github.com/k3s-io/k3s
37 lines
608 B
Go
37 lines
608 B
Go
// Copyright 2020 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
type errTimeOut struct {
|
|
duration time.Duration
|
|
cmd string
|
|
}
|
|
|
|
func NewErrTimeOut(d time.Duration, c string) errTimeOut {
|
|
return errTimeOut{duration: d, cmd: c}
|
|
}
|
|
|
|
func (e errTimeOut) Error() string {
|
|
return fmt.Sprintf("hit %s timeout running '%s'", e.duration, e.cmd)
|
|
}
|
|
|
|
func IsErrTimeout(err error) bool {
|
|
if err == nil {
|
|
return false
|
|
}
|
|
_, ok := err.(errTimeOut)
|
|
if ok {
|
|
return true
|
|
}
|
|
_, ok = errors.Cause(err).(errTimeOut)
|
|
return ok
|
|
}
|