mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-28 11:11:33 +08:00
added netmaker check on checkin
This commit is contained in:
@@ -23,8 +23,9 @@ func GetPeersList(networkName string) ([]models.PeersResponse, error) {
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
udppeers, errN := serverctl.GetPeers(networkName)
|
||||
udppeers, errN := database.GetPeers(networkName)
|
||||
if errN != nil {
|
||||
log.Println("failed to collect udp peers")
|
||||
log.Println(errN)
|
||||
}
|
||||
for _, value := range collection {
|
||||
@@ -47,9 +48,11 @@ func GetPeersList(networkName string) ([]models.PeersResponse, error) {
|
||||
if node.UDPHolePunch == "yes" && errN == nil {
|
||||
endpointstring := udppeers[peer.PublicKey]
|
||||
endpointarr := strings.Split(endpointstring, ":")
|
||||
log.Println("got values:",endpointstring,endpointarr)
|
||||
if len(endpointarr) == 2 {
|
||||
port, err := strconv.Atoi(endpointarr[1])
|
||||
if err == nil {
|
||||
log.Println("overriding:",endpointarr[0],int32(port))
|
||||
peer.Endpoint = endpointarr[0]
|
||||
peer.ListenPort = int32(port)
|
||||
}
|
||||
@@ -233,6 +236,25 @@ func NodeCheckIn(node models.Node, networkName string) (models.CheckInResponse,
|
||||
err = fmt.Errorf("%w; Couldnt Get Node "+node.MacAddress, err)
|
||||
return response, err
|
||||
}
|
||||
|
||||
if parentnode.Name == "netmaker" {
|
||||
if NotifyNetworkCheck(networkName) {
|
||||
err := SetNetworkNodesLastModified(networkName)
|
||||
if err != nil {
|
||||
log.Println(err, "could not notify network to update peers")
|
||||
}
|
||||
}
|
||||
return models.CheckInResponse{
|
||||
Success:true,
|
||||
NeedPeerUpdate:false,
|
||||
NeedKeyUpdate: false,
|
||||
NeedConfigUpdate:false,
|
||||
NeedDelete:false,
|
||||
NodeMessage:"",
|
||||
IsPending:false,
|
||||
}, nil
|
||||
}
|
||||
|
||||
if parentnode.IsPending == "yes" {
|
||||
err = fmt.Errorf("%w; Node checking in is still pending: "+node.MacAddress, err)
|
||||
response.IsPending = true
|
||||
@@ -260,14 +282,6 @@ func NodeCheckIn(node models.Node, networkName string) (models.CheckInResponse,
|
||||
if nkeyupdate < gkeyupdate {
|
||||
response.NeedKeyUpdate = true
|
||||
}
|
||||
if parentnode.Name == "netmaker" {
|
||||
if NotifyNetworkCheck(networkName) {
|
||||
err := SetNetworkNodesLastModified(networkName)
|
||||
if err != nil {
|
||||
log.Println(err, "could not notify network to update peers")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if time.Now().Unix() > parentnode.ExpirationDateTime {
|
||||
response.NeedDelete = true
|
||||
|
||||
@@ -16,14 +16,19 @@ func SetPeers(newPeers map[string]string, networkName string) bool {
|
||||
}
|
||||
return !areEqual
|
||||
}
|
||||
|
||||
func PeersAreEqual(toCompare map[string]string, networkName string) bool {
|
||||
func GetPeers(networkName string) (map[string]string, error) {
|
||||
record, err := FetchRecord(PEERS_TABLE_NAME, networkName)
|
||||
if err != nil {
|
||||
return false
|
||||
return nil, err
|
||||
}
|
||||
currentDataMap := make(map[string]string)
|
||||
err = json.Unmarshal([]byte(record), ¤tDataMap)
|
||||
return currentDataMap, err
|
||||
}
|
||||
|
||||
|
||||
func PeersAreEqual(toCompare map[string]string, networkName string) bool {
|
||||
currentDataMap, err := GetPeers(networkName)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user