Add metav1.SetMetaDataLabel func

Signed-off-by: ialidzhikov <i.alidjikov@gmail.com>
This commit is contained in:
ialidzhikov 2020-07-13 18:21:34 +03:00
parent 19f0a54d6b
commit a083a529a8
2 changed files with 49 additions and 0 deletions

View File

@ -201,6 +201,20 @@ func SetMetaDataAnnotation(obj *ObjectMeta, ann string, value string) {
obj.Annotations[ann] = value
}
// HasLabel returns a bool if passed in label exists
func HasLabel(obj ObjectMeta, label string) bool {
_, found := obj.Labels[label]
return found
}
// SetMetaDataLabel sets the label and value
func SetMetaDataLabel(obj *ObjectMeta, label string, value string) {
if obj.Labels == nil {
obj.Labels = make(map[string]string)
}
obj.Labels[label] = value
}
// SingleObject returns a ListOptions for watching a single object.
func SingleObject(meta ObjectMeta) ListOptions {
return ListOptions{

View File

@ -195,3 +195,38 @@ func TestResetObjectMetaForStatus(t *testing.T) {
t.Error(diff.ObjectDiff(meta, existingMeta))
}
}
func TestSetMetaDataLabel(t *testing.T) {
tests := []struct {
obj *ObjectMeta
label string
value string
want map[string]string
}{
{
obj: &ObjectMeta{},
label: "foo",
value: "bar",
want: map[string]string{"foo": "bar"},
},
{
obj: &ObjectMeta{Labels: map[string]string{"foo": "bar"}},
label: "foo",
value: "baz",
want: map[string]string{"foo": "baz"},
},
{
obj: &ObjectMeta{Labels: map[string]string{"foo": "bar"}},
label: "version",
value: "1.0.0",
want: map[string]string{"foo": "bar", "version": "1.0.0"},
},
}
for _, tc := range tests {
SetMetaDataLabel(tc.obj, tc.label, tc.value)
if !reflect.DeepEqual(tc.obj.Labels, tc.want) {
t.Errorf("got %v, want %v", tc.obj.Labels, tc.want)
}
}
}