1
0
mirror of https://github.com/rancher/norman.git synced 2025-09-17 15:49:53 +00:00

Switch offspring controller to patch

This commit is contained in:
Darren Shepherd
2017-12-22 23:12:06 -07:00
parent 36e9738cde
commit b8b0dcfdb9

View File

@@ -7,7 +7,10 @@ import (
"strings"
"sync"
"encoding/json"
"github.com/rancher/norman/clientbase"
"github.com/rancher/norman/types/values"
"github.com/sirupsen/logrus"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -447,10 +450,10 @@ func (w *Reconciliation) updateObject(reference ObjectReference, oldObj runtime.
}
if data, changed := compareMaps(oldMeta.GetLabels(), newMeta.GetLabels()); changed {
changes["labels"] = data
values.PutValue(changes, data, "metadata", "labels")
}
if data, changed := compareMaps(oldMeta.GetAnnotations(), newMeta.GetAnnotations()); changed {
changes["annotations"] = data
values.PutValue(changes, data, "metadata", "annotations")
}
} else {
oldField := oldValue.FieldByName(key)
@@ -461,32 +464,23 @@ func (w *Reconciliation) updateObject(reference ObjectReference, oldObj runtime.
oldField.Set(newField)
changeName := jsonName(newValue, key)
if changeName != "-" {
changes[changeName] = newValue
changes[changeName] = newIValue
}
}
}
}
if len(changes) > 0 {
//newObj := &unstructured.Unstructured{}
//newObj.Object = changes
//newMeta, err := apimeta.Accessor(newObj)
//if err != nil {
// return nil, err
//}
//
//newTypeMeta, err := apimeta.TypeAccessor(newObj)
//if err != nil {
// return nil, err
//}
//
//newMeta.SetName(reference.Name)
//newMeta.SetNamespace(reference.Namespace)
//newTypeMeta.SetKind(reference.Kind)
//newTypeMeta.SetAPIVersion(reference.APIVersion)
meta, err := apimeta.Accessor(oldObj)
if err == nil {
values.PutValue(changes, meta.GetResourceVersion(), "metadata", "resourceVersion")
}
fmt.Println("!!!!!!!!!!!!!! UPDATE! !!!!!!!!!!!!!!")
return client.Update(reference.Name, oldObj)
data, err := json.Marshal(changes)
if err != nil {
return newObj, err
}
return client.Patch(reference.Name, oldObj, data)
}
return newObj, nil