Procházet zdrojové kódy

cast secret in informer updatefunc

Alexander Belanger před 4 roky
rodič
revize
351e18c3f6
1 změnil soubory, kde provedl 21 přidání a 1 odebrání
  1. 21 1
      internal/kubernetes/agent.go

+ 21 - 1
internal/kubernetes/agent.go

@@ -683,7 +683,27 @@ func (a *Agent) StreamHelmReleases(conn *websocket.Conn, selectors string) error
 
 
 	informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
 	informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
 		UpdateFunc: func(oldObj, newObj interface{}) {
 		UpdateFunc: func(oldObj, newObj interface{}) {
-			obj, _ := decodeRelease(newObj.Data.release)
+			secretObj, ok := newObj.(*v1.Secret)
+
+			if !ok {
+				errorchan <- fmt.Errorf("could not cast to secret")
+				return
+			}
+
+			releaseData, ok := secretObj.Data["release"]
+
+			if !ok {
+				errorchan <- fmt.Errorf("release field not found")
+				return
+			}
+
+			obj, err := decodeRelease(string(releaseData))
+
+			if err != nil {
+				errorchan <- err
+				return
+			}
+
 			msg := Message{
 			msg := Message{
 				EventType: "UPDATE",
 				EventType: "UPDATE",
 				Object:    obj,
 				Object:    obj,