Skip to content

Commit a0423f3

Browse files
committed
ondemand: report not found when a task is not found instead of error
For related capture like ovsmirror we got wrong error message as there is a capture for the mirror interface but not task.
1 parent a7710de commit a0423f3

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

flow/probes/ovsmirror.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ func (o *ovsMirrorInterfaceHandler) onNodeEvent(n *graph.Node) {
480480
name, _ := n.GetFieldString("Name")
481481
intf, err := netlink.LinkByName(name)
482482
if err != nil {
483-
logging.GetLogger().Errorf("Error reading interface name %s: %s", name, err)
483+
logging.GetLogger().Warningf("Error reading interface name %s: %s", name, err)
484484
return
485485
}
486486
netlink.LinkSetUp(intf)

ondemand/server/server.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package server
1919

2020
import (
2121
"encoding/json"
22+
"errors"
2223
"fmt"
2324
"net/http"
2425

@@ -59,6 +60,9 @@ type OnDemandServerHandler interface {
5960
RemoveTask(*graph.Node, types.Resource, interface{}) error
6061
}
6162

63+
// ErrTaskNotFound used when a task is not found for a specific node
64+
var ErrTaskNotFound = errors.New("task not found")
65+
6266
func (o *OnDemandServer) registerTask(n *graph.Node, resource types.Resource) bool {
6367
logging.GetLogger().Debugf("Attempting to register %s %s on node %s", o.resourceName, resource.ID(), n.ID)
6468

@@ -111,7 +115,7 @@ func (o *OnDemandServer) unregisterTask(n *graph.Node, resource types.Resource)
111115
o.RUnlock()
112116

113117
if !isActive {
114-
return fmt.Errorf("no running task found on node %s", n.ID)
118+
return ErrTaskNotFound
115119
}
116120

117121
name, _ := n.GetFieldString("Name")
@@ -181,8 +185,13 @@ func (o *OnDemandServer) OnStructMessage(c ws.Speaker, msg *ws.StructMessage) {
181185

182186
status = http.StatusOK
183187
if err := o.unregisterTask(n, resource); err != nil {
184-
logging.GetLogger().Errorf("Failed to unregister %s on node %s", o.resourceName, n.ID)
185-
status = http.StatusInternalServerError
188+
if err == ErrTaskNotFound {
189+
logging.GetLogger().Warningf("Failed to unregister %s on node %s, %s", o.resourceName, n.ID, err)
190+
status = http.StatusNotFound
191+
} else {
192+
logging.GetLogger().Errorf("Failed to unregister %s on node %s, %s", o.resourceName, n.ID, err)
193+
status = http.StatusInternalServerError
194+
}
186195
}
187196
}
188197

0 commit comments

Comments
 (0)