github.com/giantswarm/apiextensions/v6@v6.6.0/pkg/apis/core/v1alpha1/drainer_funcs.go (about)

     1  package v1alpha1
     2  
     3  import (
     4  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
     5  )
     6  
     7  func (s DrainerConfigStatus) HasDrainedCondition() bool {
     8  	return hasDrainerConfigCondition(s.Conditions, DrainerConfigStatusStatusTrue, DrainerConfigStatusTypeDrained)
     9  }
    10  
    11  func (s DrainerConfigStatus) HasTimeoutCondition() bool {
    12  	return hasDrainerConfigCondition(s.Conditions, DrainerConfigStatusStatusTrue, DrainerConfigStatusTypeTimeout)
    13  }
    14  
    15  func (s DrainerConfigStatus) NewDrainedCondition() DrainerConfigStatusCondition {
    16  	return DrainerConfigStatusCondition{
    17  		LastHeartbeatTime:  metav1.Now(),
    18  		LastTransitionTime: metav1.Now(),
    19  		Status:             DrainerConfigStatusStatusTrue,
    20  		Type:               DrainerConfigStatusTypeDrained,
    21  	}
    22  }
    23  
    24  func (s DrainerConfigStatus) NewTimeoutCondition() DrainerConfigStatusCondition {
    25  	return DrainerConfigStatusCondition{
    26  		LastHeartbeatTime:  metav1.Now(),
    27  		LastTransitionTime: metav1.Now(),
    28  		Status:             DrainerConfigStatusStatusTrue,
    29  		Type:               DrainerConfigStatusTypeTimeout,
    30  	}
    31  }
    32  
    33  func hasDrainerConfigCondition(conditions []DrainerConfigStatusCondition, s string, t string) bool {
    34  	for _, c := range conditions {
    35  		if c.Status == s && c.Type == t {
    36  			return true
    37  		}
    38  	}
    39  
    40  	return false
    41  }