12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- Copyright 2016 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.
- */
- package v1
- // Clones the given selector and returns a new selector with the given key and value added.
- // Returns the given selector, if labelKey is empty.
- func CloneSelectorAndAddLabel(selector *LabelSelector, labelKey, labelValue string) *LabelSelector {
- if labelKey == "" {
- // Don't need to add a label.
- return selector
- }
- // Clone.
- newSelector := selector.DeepCopy()
- if newSelector.MatchLabels == nil {
- newSelector.MatchLabels = make(map[string]string)
- }
- newSelector.MatchLabels[labelKey] = labelValue
- return newSelector
- }
- // AddLabelToSelector returns a selector with the given key and value added to the given selector's MatchLabels.
- func AddLabelToSelector(selector *LabelSelector, labelKey, labelValue string) *LabelSelector {
- if labelKey == "" {
- // Don't need to add a label.
- return selector
- }
- if selector.MatchLabels == nil {
- selector.MatchLabels = make(map[string]string)
- }
- selector.MatchLabels[labelKey] = labelValue
- return selector
- }
- // SelectorHasLabel checks if the given selector contains the given label key in its MatchLabels
- func SelectorHasLabel(selector *LabelSelector, labelKey string) bool {
- return len(selector.MatchLabels[labelKey]) > 0
- }
|