Files
odo/pkg/labels/selector_builder.go
Philippe Martin feb49607d4 Refactor labels (#5618)
* refacto labels

* Getters

* Builder

* Do not export labels

* Move to pkg/labels + doc

* Fix rebase
2022-04-28 09:51:02 -04:00

39 lines
811 B
Go

package labels
import (
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/selection"
)
type selectorBuilder struct {
selector labels.Selector
}
func SelectorBuilder() selectorBuilder {
return selectorBuilder{
selector: labels.NewSelector(),
}
}
func (o selectorBuilder) WithComponent(name string) selectorBuilder {
req, err := labels.NewRequirement(componentLabel, selection.Equals, []string{name})
if err != nil {
panic(err)
}
o.selector = o.selector.Add(*req)
return o
}
func (o selectorBuilder) WithoutSourcePVC(s string) selectorBuilder {
req, err := labels.NewRequirement(sourcePVCLabel, selection.NotEquals, []string{s})
if err != nil {
panic(err)
}
o.selector = o.selector.Add(*req)
return o
}
func (o selectorBuilder) Selector() string {
return o.selector.String()
}