Browse Source

change proxy models reference paths

Abhishek Kondur 2 years ago
parent
commit
2cb3ee65af
12 changed files with 111 additions and 113 deletions
  1. 2 2
      Dockerfile
  2. 3 3
      controllers/node.go
  3. 1 1
      go.mod
  4. 4 0
      go.sum
  5. 2 1
      logic/metrics/metrics.go
  6. 2 3
      logic/peers.go
  7. 0 3
      logic/server.go
  8. 8 8
      models/metrics.go
  9. 8 8
      models/mqtt.go
  10. 9 12
      models/structs.go
  11. 4 4
      mq/publishers.go
  12. 68 68
      test/main.go

+ 2 - 2
Dockerfile

@@ -6,13 +6,13 @@ WORKDIR /app
 COPY . .
 ENV GO111MODULE=auto
 
-RUN apk add git libpcap-dev
+RUN apk add git
 RUN GOOS=linux CGO_ENABLED=1 go build ${tags} -ldflags="-s -X 'main.version=${version}'" .
 # RUN go build -tags=ee . -o netmaker main.go
 FROM alpine:3.16.2
 
 # add a c lib
-RUN apk add gcompat iptables wireguard-tools libpcap-dev
+RUN apk add gcompat iptables wireguard-tools
 # set the working directory
 WORKDIR /root/
 RUN mkdir -p /etc/netclient/config

+ 3 - 3
controllers/node.go

@@ -8,7 +8,7 @@ import (
 	"strings"
 
 	"github.com/gorilla/mux"
-	"github.com/gravitl/netclient/nmproxy/manager"
+	proxy_models "github.com/gravitl/netclient/nmproxy/models"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic"
@@ -1112,8 +1112,8 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 	if host.ProxyEnabled {
-		mq.ProxyUpdate(&manager.ProxyManagerPayload{
-			Action:  manager.DeleteNetwork,
+		mq.ProxyUpdate(&proxy_models.ProxyManagerPayload{
+			Action:  proxy_models.DeleteNetwork,
 			Network: node.Network,
 		}, &node)
 	}

+ 1 - 1
go.mod

@@ -43,7 +43,7 @@ require (
 )
 
 require (
-	github.com/gravitl/netclient v0.0.0-20221223224636-19a8b2eaa550
+	github.com/gravitl/netclient v0.0.0-20221227162300-436737fad273
 	github.com/matryer/is v1.4.0
 )
 

+ 4 - 0
go.sum

@@ -245,6 +245,10 @@ github.com/gravitl/netclient v0.0.0-20221212172659-bdf676e4250a h1:1c8zoEJS7BeQ3
 github.com/gravitl/netclient v0.0.0-20221212172659-bdf676e4250a/go.mod h1:FzorTqDHIx2RZSij15VDPc1lafn/3R6ppYcOK0n7szk=
 github.com/gravitl/netclient v0.0.0-20221223224636-19a8b2eaa550 h1:jfZbpaawwQg99IMcS6wvQie482uwoFEu9wbRRTLbEqc=
 github.com/gravitl/netclient v0.0.0-20221223224636-19a8b2eaa550/go.mod h1:u8eW0nZTg1Xcn8kfxJyrvIruXrVTP4mVbThxq8to7FU=
+github.com/gravitl/netclient v0.0.0-20221227161428-ed82d1320d97 h1:a9fyFLv11O+F/hSXAMiQY9/Gk+BeWuhSYRmTHCLswVE=
+github.com/gravitl/netclient v0.0.0-20221227161428-ed82d1320d97/go.mod h1:u8eW0nZTg1Xcn8kfxJyrvIruXrVTP4mVbThxq8to7FU=
+github.com/gravitl/netclient v0.0.0-20221227162300-436737fad273 h1:kJJX/Otaje40hsCs27jnt+k+gJCOHSsVJgXBrhiyioA=
+github.com/gravitl/netclient v0.0.0-20221227162300-436737fad273/go.mod h1:u8eW0nZTg1Xcn8kfxJyrvIruXrVTP4mVbThxq8to7FU=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/guumaster/hostctl v1.1.3 h1:b/yR3svkYsbr5VBdvfdyLXUl2xaKopSzgE/Xi7+1WRo=
 github.com/guumaster/hostctl v1.1.3/go.mod h1:h5rDx5Z8Hj2bYZfDt/eX4BNS2RSq7iRcGVQqfROJyH8=

+ 2 - 1
logic/metrics/metrics.go

@@ -5,6 +5,7 @@ import (
 
 	"github.com/go-ping/ping"
 	proxy_metrics "github.com/gravitl/netclient/nmproxy/metrics"
+	proxy_models "github.com/gravitl/netclient/nmproxy/models"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
@@ -26,7 +27,7 @@ func Collect(iface, network string, proxy bool, peerMap models.PeerMap) (*models
 		fillUnconnectedData(&metrics, peerMap)
 		return &metrics, err
 	}
-	metrics.ProxyMetrics = make(map[string]proxy_metrics.Metric)
+	metrics.ProxyMetrics = make(map[string]proxy_models.Metric)
 
 	// TODO handle freebsd??
 	for i := range device.Peers {

+ 2 - 3
logic/peers.go

@@ -10,7 +10,6 @@ import (
 	"time"
 
 	"github.com/c-robinson/iplib"
-	"github.com/gravitl/netclient/nmproxy/manager"
 	proxy_models "github.com/gravitl/netclient/nmproxy/models"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
@@ -29,8 +28,8 @@ import (
 // TODO ==========================
 // TODO ==========================
 // revisit this logic with new host/node models.
-func GetPeersForProxy(node *models.Node, onlyPeers bool) (manager.ProxyManagerPayload, error) {
-	proxyPayload := manager.ProxyManagerPayload{}
+func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyManagerPayload, error) {
+	proxyPayload := proxy_models.ProxyManagerPayload{}
 	var peers []wgtypes.PeerConfig
 	peerConfMap := make(map[string]proxy_models.PeerConf)
 	var err error

+ 0 - 3
logic/server.go

@@ -3,12 +3,9 @@ package logic
 import (
 	"strings"
 
-	"github.com/gravitl/netclient/nmproxy/manager"
 	"github.com/gravitl/netmaker/models"
 )
 
-var ProxyMgmChan = make(chan *manager.ProxyManagerPayload, 100)
-
 // EnterpriseCheckFuncs - can be set to run functions for EE
 var EnterpriseCheckFuncs []func()
 

+ 8 - 8
models/metrics.go

@@ -3,18 +3,18 @@ package models
 import (
 	"time"
 
-	proxy "github.com/gravitl/netclient/nmproxy/metrics"
+	proxy_models "github.com/gravitl/netclient/nmproxy/models"
 )
 
 // Metrics - metrics struct
 type Metrics struct {
-	Network       string                  `json:"network" bson:"network" yaml:"network"`
-	NodeID        string                  `json:"node_id" bson:"node_id" yaml:"node_id"`
-	NodeName      string                  `json:"node_name" bson:"node_name" yaml:"node_name"`
-	IsServer      string                  `json:"isserver" bson:"isserver" yaml:"isserver" validate:"checkyesorno"`
-	Connectivity  map[string]Metric       `json:"connectivity" bson:"connectivity" yaml:"connectivity"`
-	FailoverPeers map[string]string       `json:"needsfailover" bson:"needsfailover" yaml:"needsfailover"`
-	ProxyMetrics  map[string]proxy.Metric `json:"proxy_metrics" bson:"proxy_metrics" yaml:"proxy_metrics"`
+	Network       string                         `json:"network" bson:"network" yaml:"network"`
+	NodeID        string                         `json:"node_id" bson:"node_id" yaml:"node_id"`
+	NodeName      string                         `json:"node_name" bson:"node_name" yaml:"node_name"`
+	IsServer      string                         `json:"isserver" bson:"isserver" yaml:"isserver" validate:"checkyesorno"`
+	Connectivity  map[string]Metric              `json:"connectivity" bson:"connectivity" yaml:"connectivity"`
+	FailoverPeers map[string]string              `json:"needsfailover" bson:"needsfailover" yaml:"needsfailover"`
+	ProxyMetrics  map[string]proxy_models.Metric `json:"proxy_metrics" bson:"proxy_metrics" yaml:"proxy_metrics"`
 }
 
 // Metric - holds a metric for data between nodes

+ 8 - 8
models/mqtt.go

@@ -1,19 +1,19 @@
 package models
 
 import (
-	"github.com/gravitl/netclient/nmproxy/manager"
+	"github.com/gravitl/netclient/nmproxy/models"
 	"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
 )
 
 // PeerUpdate - struct
 type PeerUpdate struct {
-	Network       string                      `json:"network" bson:"network" yaml:"network"`
-	ServerVersion string                      `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
-	ServerAddrs   []ServerAddr                `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
-	Peers         []wgtypes.PeerConfig        `json:"peers" bson:"peers" yaml:"peers"`
-	DNS           string                      `json:"dns" bson:"dns" yaml:"dns"`
-	PeerIDs       PeerMap                     `json:"peerids" bson:"peerids" yaml:"peerids"`
-	ProxyUpdate   manager.ProxyManagerPayload `json:"proxy_update" bson:"proxy_update" yaml:"proxy_update"`
+	Network       string                     `json:"network" bson:"network" yaml:"network"`
+	ServerVersion string                     `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
+	ServerAddrs   []ServerAddr               `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
+	Peers         []wgtypes.PeerConfig       `json:"peers" bson:"peers" yaml:"peers"`
+	DNS           string                     `json:"dns" bson:"dns" yaml:"dns"`
+	PeerIDs       PeerMap                    `json:"peerids" bson:"peerids" yaml:"peerids"`
+	ProxyUpdate   models.ProxyManagerPayload `json:"proxy_update" bson:"proxy_update" yaml:"proxy_update"`
 }
 
 // KeyUpdate - key update struct

+ 9 - 12
models/structs.go

@@ -5,7 +5,6 @@ import (
 	"time"
 
 	jwt "github.com/golang-jwt/jwt/v4"
-	"github.com/gravitl/netclient/nmproxy/manager"
 	"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
 )
 
@@ -203,21 +202,19 @@ type TrafficKeys struct {
 
 // NodeGet - struct for a single node get response
 type NodeGet struct {
-	Node         LegacyNode                  `json:"node" bson:"node" yaml:"node"`
-	Host         Host                        `json:"host" yaml:"host"`
-	Peers        []wgtypes.PeerConfig        `json:"peers" bson:"peers" yaml:"peers"`
-	ServerConfig ServerConfig                `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"`
-	PeerIDs      PeerMap                     `json:"peerids,omitempty" bson:"peerids,omitempty" yaml:"peerids,omitempty"`
-	ProxyUpdate  manager.ProxyManagerPayload `json:"proxy_update,omitempty" bson:"proxy_update,omitempty" yaml:"proxy_update,omitempty"`
+	Node         LegacyNode           `json:"node" bson:"node" yaml:"node"`
+	Host         Host                 `json:"host" yaml:"host"`
+	Peers        []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
+	ServerConfig ServerConfig         `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"`
+	PeerIDs      PeerMap              `json:"peerids,omitempty" bson:"peerids,omitempty" yaml:"peerids,omitempty"`
 }
 
 // NodeJoinResponse data returned to node in response to join
 type NodeJoinResponse struct {
-	Node         Node                        `json:"node" bson:"node" yaml:"node"`
-	Host         Host                        `json:"host" yaml:"host"`
-	ServerConfig ServerConfig                `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"`
-	PeerIDs      PeerMap                     `json:"peerids,omitempty" bson:"peerids,omitempty" yaml:"peerids,omitempty"`
-	ProxyUpdate  manager.ProxyManagerPayload `json:"proxy_update,omitempty" bson:"proxy_update,omitempty" yaml:"proxy_update,omitempty"`
+	Node         Node         `json:"node" bson:"node" yaml:"node"`
+	Host         Host         `json:"host" yaml:"host"`
+	ServerConfig ServerConfig `json:"serverconfig" bson:"serverconfig" yaml:"serverconfig"`
+	PeerIDs      PeerMap      `json:"peerids,omitempty" bson:"peerids,omitempty" yaml:"peerids,omitempty"`
 }
 
 // ServerConfig - struct for dealing with the server information for a netclient

+ 4 - 4
mq/publishers.go

@@ -6,7 +6,7 @@ import (
 	"fmt"
 	"time"
 
-	"github.com/gravitl/netclient/nmproxy/manager"
+	proxy_models "github.com/gravitl/netclient/nmproxy/models"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
@@ -38,7 +38,7 @@ func PublishProxyPeerUpdate(node *models.Node) error {
 	if err != nil {
 		return err
 	}
-	proxyUpdate.Action = manager.AddNetwork
+	proxyUpdate.Action = proxy_models.AddNetwork
 	err = ProxyUpdate(&proxyUpdate, node)
 	if err != nil {
 		logger.Log(1, "failed to send proxy update: ", err.Error())
@@ -63,7 +63,7 @@ func PublishSinglePeerUpdate(node *models.Node) error {
 		if err != nil {
 			return err
 		}
-		proxyUpdate.Action = manager.AddNetwork
+		proxyUpdate.Action = proxy_models.AddNetwork
 		peerUpdate.ProxyUpdate = proxyUpdate
 
 	}
@@ -141,7 +141,7 @@ func NodeUpdate(node *models.Node) error {
 }
 
 // ProxyUpdate -- publishes updates to peers related to proxy
-func ProxyUpdate(proxyPayload *manager.ProxyManagerPayload, node *models.Node) error {
+func ProxyUpdate(proxyPayload *proxy_models.ProxyManagerPayload, node *models.Node) error {
 	host, err := logic.GetHost(node.HostID.String())
 	if err != nil {
 		return nil

+ 68 - 68
test/main.go

@@ -1,73 +1,73 @@
-package main
+// package main
 
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"io"
-	"log"
-	"net/http"
+// import (
+// 	"bytes"
+// 	"encoding/json"
+// 	"fmt"
+// 	"io"
+// 	"log"
+// 	"net/http"
 
-	"github.com/gravitl/netmaker/models"
-	"github.com/gravitl/netmaker/netclient/config"
-	"github.com/gravitl/netmaker/netclient/functions"
-	"github.com/kr/pretty"
-)
+// 	"github.com/gravitl/netclient/config"
+// 	"github.com/gravitl/netclient/functions"
+// 	"github.com/gravitl/netmaker/models"
+// 	"github.com/kr/pretty"
+// )
 
-func main() {
-	cfg := &config.ClientConfig{}
-	cfg.Network = "short"
-	cfg.ReadConfig()
-	token, err := functions.Authenticate(cfg)
-	if err != nil {
-		log.Fatal(err)
-	} else {
-		log.Println("success", token)
-	}
-	url := "https://" + cfg.Server.API + "/api/nodes/" + cfg.Network + "/" + cfg.Node.ID
+// func main() {
+// 	cfg := &config.ClientConfig{}
+// 	cfg.Network = "short"
+// 	cfg.ReadConfig()
+// 	token, err := functions.Authenticate(cfg)
+// 	if err != nil {
+// 		log.Fatal(err)
+// 	} else {
+// 		log.Println("success", token)
+// 	}
+// 	url := "https://" + cfg.Server.API + "/api/nodes/" + cfg.Network + "/" + cfg.Node.ID
 
-	response, err := api("", http.MethodGet, url, token)
-	if err != nil {
-		fmt.Println(err)
-	}
-	fmt.Println(response.StatusCode, response.Status)
-	if response.StatusCode != http.StatusOK {
-		bytes, err := io.ReadAll(response.Body)
-		if err != nil {
-			fmt.Println(err)
-		}
-		pretty.Println(string(bytes))
-	}
-	defer response.Body.Close()
-	node := models.LegacyNode{}
-	if err := json.NewDecoder(response.Body).Decode(&node); err != nil {
-		fmt.Println(err)
-	}
-	pretty.Println(node)
-}
+// 	response, err := api("", http.MethodGet, url, token)
+// 	if err != nil {
+// 		fmt.Println(err)
+// 	}
+// 	fmt.Println(response.StatusCode, response.Status)
+// 	if response.StatusCode != http.StatusOK {
+// 		bytes, err := io.ReadAll(response.Body)
+// 		if err != nil {
+// 			fmt.Println(err)
+// 		}
+// 		pretty.Println(string(bytes))
+// 	}
+// 	defer response.Body.Close()
+// 	node := models.LegacyNode{}
+// 	if err := json.NewDecoder(response.Body).Decode(&node); err != nil {
+// 		fmt.Println(err)
+// 	}
+// 	pretty.Println(node)
+// }
 
-func api(data any, method, url, authorization string) (*http.Response, error) {
-	var request *http.Request
-	var err error
-	if data != "" {
-		payload, err := json.Marshal(data)
-		if err != nil {
-			return nil, fmt.Errorf("error encoding data %w", err)
-		}
-		request, err = http.NewRequest(method, url, bytes.NewBuffer(payload))
-		if err != nil {
-			return nil, fmt.Errorf("error creating http request %w", err)
-		}
-		request.Header.Set("Content-Type", "application/json")
-	} else {
-		request, err = http.NewRequest(method, url, nil)
-		if err != nil {
-			return nil, fmt.Errorf("error creating http request %w", err)
-		}
-	}
-	if authorization != "" {
-		request.Header.Set("authorization", "Bearer "+authorization)
-	}
-	client := http.Client{}
-	return client.Do(request)
-}
+// func api(data any, method, url, authorization string) (*http.Response, error) {
+// 	var request *http.Request
+// 	var err error
+// 	if data != "" {
+// 		payload, err := json.Marshal(data)
+// 		if err != nil {
+// 			return nil, fmt.Errorf("error encoding data %w", err)
+// 		}
+// 		request, err = http.NewRequest(method, url, bytes.NewBuffer(payload))
+// 		if err != nil {
+// 			return nil, fmt.Errorf("error creating http request %w", err)
+// 		}
+// 		request.Header.Set("Content-Type", "application/json")
+// 	} else {
+// 		request, err = http.NewRequest(method, url, nil)
+// 		if err != nil {
+// 			return nil, fmt.Errorf("error creating http request %w", err)
+// 		}
+// 	}
+// 	if authorization != "" {
+// 		request.Header.Set("authorization", "Bearer "+authorization)
+// 	}
+// 	client := http.Client{}
+// 	return client.Do(request)
+// }