github.com/kubeshop/testkube@v1.17.23/pkg/mapper/deployments/mapper.go (about)

     1  package deployments
     2  
     3  import (
     4  	"time"
     5  
     6  	appsv1 "k8s.io/api/apps/v1"
     7  
     8  	testtriggersv1 "github.com/kubeshop/testkube-operator/api/testtriggers/v1"
     9  )
    10  
    11  // MapCRDConditionsToAPI maps Deployment CRD conditions to OpenAPI spec TestTriggerConditions
    12  func MapCRDConditionsToAPI(conditions []appsv1.DeploymentCondition, currentTime time.Time) []testtriggersv1.TestTriggerCondition {
    13  	var results []testtriggersv1.TestTriggerCondition
    14  	for _, condition := range conditions {
    15  		latestTime := condition.LastTransitionTime.Time
    16  		if condition.LastUpdateTime.Time.After(latestTime) {
    17  			latestTime = condition.LastUpdateTime.Time
    18  		}
    19  
    20  		results = append(results, testtriggersv1.TestTriggerCondition{
    21  			Type_:  string(condition.Type),
    22  			Status: (*testtriggersv1.TestTriggerConditionStatuses)(&condition.Status),
    23  			Reason: condition.Reason,
    24  			Ttl:    int32(currentTime.Sub(latestTime) / time.Second),
    25  		})
    26  	}
    27  
    28  	return results
    29  }