forked from rook/rook
* another * are * availability * available * bootstrap * boundaries * ceph * certificate * class * codifies * consuming * corrupted * createor * csi * deployments * exceeded * execute * filesystem * healthiness * heuristics * immediately * insecure * installed * isolated * maintained * maximum * minute * monitor * new * nginx * nonexistent * not * occurs * omitempty * operator * orchestration * persistentvolumes * placement * preexisting * prometheus * protecting * provisioner * purposes * reconcile * regex * related * requests * returns * rubbish * running * schedulable * schedule * serviceaccount * simulating * snapshots * statement * static * tenants * the * unavailable * volumeattachment * waiting * with * wrapper * zonegroup Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
60 lines
2.0 KiB
Go
60 lines
2.0 KiB
Go
/*
|
|
Copyright 2019 The Rook Authors. All rights reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package k8sutil
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// WaitOptions are a common set of options controlling the behavior of k8sutil operations. If
|
|
// WaitOptions are specified, the operation should wait in a loop and verify that the operation
|
|
// being performed was successful.
|
|
type WaitOptions struct {
|
|
// Wait defines whether the operation should wait in a loop and verify that the operation was
|
|
// successful before returning.
|
|
Wait bool
|
|
|
|
// RetryCount defines how many times the operation should retry verification in the wait loop
|
|
// before giving up. If RetryCount is zero, the operation should default to a sane value based
|
|
// on the operation.
|
|
RetryCount uint
|
|
|
|
// RetryInterval defines the time the operation will wait before retrying verification. If
|
|
// RetryInterval is zero, the operation should default to a sane value based on the operation.
|
|
RetryInterval time.Duration
|
|
|
|
// ErrorOnTimeout defines whether the operation should time out with an error. If ErrorOnTimeout
|
|
// is true and the operation times out, the operation is considered a failure. If ErrorOnTimeout
|
|
// is false and the operation times out, the operation should log a warning but not report
|
|
// failure.
|
|
ErrorOnTimeout bool
|
|
}
|
|
|
|
func (w *WaitOptions) retryCountOrDefault(def uint) uint {
|
|
if w.RetryCount > 0 {
|
|
return w.RetryCount
|
|
}
|
|
return def
|
|
}
|
|
|
|
func (w *WaitOptions) retryIntervalOrDefault(def time.Duration) time.Duration {
|
|
if w.RetryInterval > 0 {
|
|
return w.RetryInterval
|
|
}
|
|
return def
|
|
}
|