From 95af3cb5153bd07f633fd2bbe0f36ab05cbf272d Mon Sep 17 00:00:00 2001 From: pb Date: Mon, 3 Mar 2025 10:32:52 +0100 Subject: [PATCH] removed caller from checkPeerStatus() parameters by adding the path to url --- models/peer/peer_cache.go | 17 +++++------------ tools/api.go | 4 +--- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/models/peer/peer_cache.go b/models/peer/peer_cache.go index e7500e4..66f5f65 100644 --- a/models/peer/peer_cache.go +++ b/models/peer/peer_cache.go @@ -48,28 +48,21 @@ func (p *PeerCache) urlFormat(url string, dt tools.DataType) string { url = strings.ReplaceAll(url, localhost, dt.API()+":8080/oc") } } else { - url = url + "/" + strings.ReplaceAll(dt.API(), "oc-", "") + url = url + "/" + dt.API() } return url } // checkPeerStatus checks the status of a peer -func (p *PeerCache) checkPeerStatus(peerID string, appName string, caller *tools.HTTPCaller) (*Peer, bool) { +func (p *PeerCache) checkPeerStatus(peerID string, appName string) (*Peer, bool) { api := tools.API{} access := NewShallowAccessor() res, code, _ := access.LoadOne(peerID) // Load the peer from db if code != 200 { // no peer no party return nil, false } - methods := caller.URLS[tools.PEER] // Get the methods url of the peer - if methods == nil { - return res.(*Peer), false - } - meth := methods[tools.POST] // Get the POST method to check status - if meth == "" { - return res.(*Peer), false - } - url := p.urlFormat(res.(*Peer).Url, tools.PEER) + meth // Format the URL + + url := p.urlFormat(res.(*Peer).Url, tools.PEER) + "/status" // Format the URL state, services := api.CheckRemotePeer(url) res.(*Peer).ServicesState = services // Update the services states of the peer access.UpdateOne(res, peerID) // Update the peer in the db @@ -89,7 +82,7 @@ func (p *PeerCache) LaunchPeerExecution(peerID string, dataID string, url := "" // Check the status of the peer - if mypeer, ok := p.checkPeerStatus(peerID, dt.API(), caller); !ok && mypeer != nil { + if mypeer, ok := p.checkPeerStatus(peerID, dt.API()); !ok && mypeer != nil { // If the peer is not reachable, add the execution to the failed executions list pexec := &PeerExecution{ Method: method.String(), diff --git a/tools/api.go b/tools/api.go index 34f81fd..e213ecd 100644 --- a/tools/api.go +++ b/tools/api.go @@ -3,7 +3,6 @@ package tools import ( "encoding/json" "errors" - "fmt" "strings" "cloud.o-forge.io/core/oc-lib/config" @@ -98,7 +97,6 @@ func (a *API) SubscribeRouter(infos []*beego.ControllerInfo) { nats := NewNATSCaller() discovery := map[string][]string{} for _, info := range infos { - fmt.Println("DISCOVERY", info.GetPattern()) path := strings.ReplaceAll(info.GetPattern(), "/oc/", "/"+strings.ReplaceAll(config.GetAppName(), "oc-", "")) for k, v := range info.GetMethod() { if discovery[path] == nil { @@ -117,8 +115,8 @@ func (a *API) SubscribeRouter(infos []*beego.ControllerInfo) { // CheckRemotePeer checks the state of a remote peer func (a *API) CheckRemotePeer(url string) (State, map[string]int) { // Check if the database is up - caller := NewHTTPCaller(map[DataType]map[METHOD]string{}) // Create a new http caller var resp APIStatusResponse + caller := NewHTTPCaller(map[DataType]map[METHOD]string{}) // Create a new http caller b, err := caller.CallPost(url, "", map[string]interface{}{}) // Call the status endpoint of the peer if err != nil { return DEAD, map[string]int{} // If the peer is not reachable, return dead