mirror of https://github.com/knative/pkg.git
				
				
				
			
		
			
				
	
	
		
			126 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Go
		
	
	
	
| /*
 | |
| Copyright 2019 The Knative Authors
 | |
| 
 | |
| 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 apis
 | |
| 
 | |
| import (
 | |
| 	corev1 "k8s.io/api/core/v1"
 | |
| )
 | |
| 
 | |
| // Conditions is the schema for the conditions portion of the payload
 | |
| type Conditions []Condition
 | |
| 
 | |
| // ConditionType is a camel-cased condition type.
 | |
| type ConditionType string
 | |
| 
 | |
| const (
 | |
| 	// ConditionReady specifies that the resource is ready.
 | |
| 	// For long-running resources.
 | |
| 	ConditionReady ConditionType = "Ready"
 | |
| 	// ConditionSucceeded specifies that the resource has finished.
 | |
| 	// For resource which run to completion.
 | |
| 	ConditionSucceeded ConditionType = "Succeeded"
 | |
| )
 | |
| 
 | |
| // ConditionSeverity expresses the severity of a Condition Type failing.
 | |
| type ConditionSeverity string
 | |
| 
 | |
| const (
 | |
| 	// ConditionSeverityError specifies that a failure of a condition type
 | |
| 	// should be viewed as an error.  As "Error" is the default for conditions
 | |
| 	// we use the empty string (coupled with omitempty) to avoid confusion in
 | |
| 	// the case where the condition is in state "True" (aka nothing is wrong).
 | |
| 	ConditionSeverityError ConditionSeverity = ""
 | |
| 	// ConditionSeverityWarning specifies that a failure of a condition type
 | |
| 	// should be viewed as a warning, but that things could still work.
 | |
| 	ConditionSeverityWarning ConditionSeverity = "Warning"
 | |
| 	// ConditionSeverityInfo specifies that a failure of a condition type
 | |
| 	// should be viewed as purely informational, and that things could still work.
 | |
| 	ConditionSeverityInfo ConditionSeverity = "Info"
 | |
| )
 | |
| 
 | |
| // Condition defines a readiness condition for a Knative resource.
 | |
| // See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties
 | |
| // +k8s:deepcopy-gen=true
 | |
| type Condition struct {
 | |
| 	// Type of condition.
 | |
| 	// +required
 | |
| 	Type ConditionType `json:"type" description:"type of status condition"`
 | |
| 
 | |
| 	// Status of the condition, one of True, False, Unknown.
 | |
| 	// +required
 | |
| 	Status corev1.ConditionStatus `json:"status" description:"status of the condition, one of True, False, Unknown"`
 | |
| 
 | |
| 	// Severity with which to treat failures of this type of condition.
 | |
| 	// When this is not specified, it defaults to Error.
 | |
| 	// +optional
 | |
| 	Severity ConditionSeverity `json:"severity,omitempty" description:"how to interpret failures of this condition, one of Error, Warning, Info"`
 | |
| 
 | |
| 	// LastTransitionTime is the last time the condition transitioned from one status to another.
 | |
| 	// We use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic
 | |
| 	// differences (all other things held constant).
 | |
| 	// +optional
 | |
| 	LastTransitionTime VolatileTime `json:"lastTransitionTime,omitempty" description:"last time the condition transit from one status to another"`
 | |
| 
 | |
| 	// The reason for the condition's last transition.
 | |
| 	// +optional
 | |
| 	Reason string `json:"reason,omitempty" description:"one-word CamelCase reason for the condition's last transition"`
 | |
| 
 | |
| 	// A human readable message indicating details about the transition.
 | |
| 	// +optional
 | |
| 	Message string `json:"message,omitempty" description:"human-readable message indicating details about last transition"`
 | |
| }
 | |
| 
 | |
| // IsTrue is true if the condition is True
 | |
| func (c *Condition) IsTrue() bool {
 | |
| 	if c == nil {
 | |
| 		return false
 | |
| 	}
 | |
| 	return c.Status == corev1.ConditionTrue
 | |
| }
 | |
| 
 | |
| // IsFalse is true if the condition is False
 | |
| func (c *Condition) IsFalse() bool {
 | |
| 	if c == nil {
 | |
| 		return false
 | |
| 	}
 | |
| 	return c.Status == corev1.ConditionFalse
 | |
| }
 | |
| 
 | |
| // IsUnknown is true if the condition is Unknown
 | |
| func (c *Condition) IsUnknown() bool {
 | |
| 	if c == nil {
 | |
| 		return true
 | |
| 	}
 | |
| 	return c.Status == corev1.ConditionUnknown
 | |
| }
 | |
| 
 | |
| // GetReason returns a nil save string of Reason
 | |
| func (c *Condition) GetReason() string {
 | |
| 	if c == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return c.Reason
 | |
| }
 | |
| 
 | |
| // GetMessage returns a nil save string of Message
 | |
| func (c *Condition) GetMessage() string {
 | |
| 	if c == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return c.Message
 | |
| }
 |