@@ -49,17 +49,17 @@ func (r *Service) runWatch(
49
49
50
50
gvk .Group = r .getOriginalGroupName (gvk .Group )
51
51
52
- var err error
53
-
54
52
labelSelector , err := getStringArg (p .Args , LabelSelectorArg , false )
55
53
if err != nil {
56
54
r .log .Error ().Err (err ).Msg ("Failed to get label selector argument" )
55
+ resultChannel <- errorResult ("Failed to get label selector: " + err .Error ())
57
56
return
58
57
}
59
58
60
59
subscribeToAll , err := getBoolArg (p .Args , SubscribeToAllArg , false )
61
60
if err != nil {
62
61
r .log .Error ().Err (err ).Msg ("Failed to get subscribeToAll argument" )
62
+ resultChannel <- errorResult ("Failed to get subscribeToAll: " + err .Error ())
63
63
return
64
64
}
65
65
@@ -78,6 +78,7 @@ func (r *Service) runWatch(
78
78
namespace , err = getStringArg (p .Args , NamespaceArg , isNamespaceRequired )
79
79
if err != nil {
80
80
r .log .Error ().Err (err ).Msg ("Failed to get namespace argument" )
81
+ resultChannel <- errorResult ("Failed to get namespace: " + err .Error ())
81
82
return
82
83
}
83
84
if namespace != "" {
@@ -89,6 +90,7 @@ func (r *Service) runWatch(
89
90
selector , err := labels .Parse (labelSelector )
90
91
if err != nil {
91
92
r .log .Error ().Err (err ).Str ("labelSelector" , labelSelector ).Msg ("Invalid label selector" )
93
+ resultChannel <- errorResult ("Invalid label selector: " + err .Error ())
92
94
return
93
95
}
94
96
opts = append (opts , client.MatchingLabelsSelector {Selector : selector })
@@ -99,6 +101,7 @@ func (r *Service) runWatch(
99
101
name , err = getStringArg (p .Args , NameArg , true )
100
102
if err != nil {
101
103
r .log .Error ().Err (err ).Msg ("Failed to get name argument" )
104
+ resultChannel <- errorResult ("Failed to get name: " + err .Error ())
102
105
return
103
106
}
104
107
opts = append (opts , client.MatchingFields {"metadata.name" : name })
@@ -107,12 +110,14 @@ func (r *Service) runWatch(
107
110
sortBy , err := getStringArg (p .Args , SortByArg , false )
108
111
if err != nil {
109
112
r .log .Error ().Err (err ).Msg ("Failed to get sortBy argument" )
113
+ resultChannel <- errorResult ("Failed to get sortBy: " + err .Error ())
110
114
return
111
115
}
112
116
113
117
watcher , err := r .runtimeClient .Watch (ctx , list , opts ... )
114
118
if err != nil {
115
119
r .log .Error ().Err (err ).Str ("gvk" , gvk .String ()).Msg ("Failed to start watch" )
120
+ resultChannel <- errorResult ("Failed to start watch: " + err .Error ())
116
121
return
117
122
}
118
123
defer watcher .Stop ()
@@ -143,6 +148,7 @@ func (r *Service) runWatch(
143
148
changed , err := determineFieldChanged (oldObj , obj , fieldsToWatch )
144
149
if err != nil {
145
150
r .log .Error ().Err (err ).Msg ("Failed to determine field changes" )
151
+ resultChannel <- errorResult ("Failed to determine field changes: " + err .Error ())
146
152
return
147
153
}
148
154
sendUpdate = changed
@@ -173,6 +179,7 @@ func (r *Service) runWatch(
173
179
err := validateSortBy (items , sortBy )
174
180
if err != nil {
175
181
r .log .Error ().Err (err ).Str (SortByArg , sortBy ).Msg ("Invalid sortBy field path" )
182
+ resultChannel <- errorResult ("Invalid sortBy field path: " + err .Error ())
176
183
return
177
184
}
178
185
@@ -296,3 +303,9 @@ func getFieldValue(obj *unstructured.Unstructured, fieldPath string) (interface{
296
303
297
304
return current , true , nil
298
305
}
306
+
307
+ func errorResult (msg string ) map [string ]interface {} {
308
+ return map [string ]interface {}{
309
+ "error" : msg ,
310
+ }
311
+ }
0 commit comments