1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- Copyright 2015 The Kubernetes 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.
- */
- // If you make changes to this file, you should also make the corresponding change in ReplicaSet.
- package replication
- import (
- "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- )
- // NewReplicationControllerCondition creates a new replication controller condition.
- func NewReplicationControllerCondition(condType v1.ReplicationControllerConditionType, status v1.ConditionStatus, reason, msg string) v1.ReplicationControllerCondition {
- return v1.ReplicationControllerCondition{
- Type: condType,
- Status: status,
- LastTransitionTime: metav1.Now(),
- Reason: reason,
- Message: msg,
- }
- }
- // GetCondition returns a replication controller condition with the provided type if it exists.
- func GetCondition(status v1.ReplicationControllerStatus, condType v1.ReplicationControllerConditionType) *v1.ReplicationControllerCondition {
- for i := range status.Conditions {
- c := status.Conditions[i]
- if c.Type == condType {
- return &c
- }
- }
- return nil
- }
- // SetCondition adds/replaces the given condition in the replication controller status.
- func SetCondition(status *v1.ReplicationControllerStatus, condition v1.ReplicationControllerCondition) {
- currentCond := GetCondition(*status, condition.Type)
- if currentCond != nil && currentCond.Status == condition.Status && currentCond.Reason == condition.Reason {
- return
- }
- newConditions := filterOutCondition(status.Conditions, condition.Type)
- status.Conditions = append(newConditions, condition)
- }
- // RemoveCondition removes the condition with the provided type from the replication controller status.
- func RemoveCondition(status *v1.ReplicationControllerStatus, condType v1.ReplicationControllerConditionType) {
- status.Conditions = filterOutCondition(status.Conditions, condType)
- }
- // filterOutCondition returns a new slice of replication controller conditions without conditions with the provided type.
- func filterOutCondition(conditions []v1.ReplicationControllerCondition, condType v1.ReplicationControllerConditionType) []v1.ReplicationControllerCondition {
- var newConditions []v1.ReplicationControllerCondition
- for _, c := range conditions {
- if c.Type == condType {
- continue
- }
- newConditions = append(newConditions, c)
- }
- return newConditions
- }
|