|
@@ -159,24 +159,24 @@ func failOverME(w http.ResponseWriter, r *http.Request) {
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("peer not found"), "badrequest"))
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("peer not found"), "badrequest"))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if node.IsIngressGateway {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node is acting as remote access gw"), "badrequest"))
|
|
|
|
|
|
+ if node.IsFailOver {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node is acting as failover"), "badrequest"))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if node.IsRelayed || node.IsFailOver {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node is relayed or acting as failover"), "badrequest"))
|
|
|
|
|
|
+ if node.IsRelayed && node.RelayedBy == peerNode.ID.String() {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node is relayed by peer node"), "badrequest"))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if node.IsRelay {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node acting as relay cannot be failedOver"), "badrequest"))
|
|
|
|
|
|
+ if node.IsRelay && peerNode.RelayedBy == node.ID.String() {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node acting as relay for the peer node"), "badrequest"))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if node.IsInternetGateway {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node acting as internet gw cannot be failedOver"), "badrequest"))
|
|
|
|
|
|
+ if node.IsInternetGateway && peerNode.InternetGwID == node.ID.String() {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node acting as internet gw for the peer node"), "badrequest"))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if node.InternetGwID != "" {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node using a internet gw cannot be failedOver"), "badrequest"))
|
|
|
|
|
|
+ if node.InternetGwID != "" && node.InternetGwID == peerNode.ID.String() {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("node using a internet gw by the peer node"), "badrequest"))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|