change proxy models reference paths

This commit is contained in:
Abhishek Kondur 2022-12-27 21:56:55 +05:30
parent d5446fb302
commit 2cb3ee65af
12 changed files with 111 additions and 113 deletions

View file

@ -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

View file

@ -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)
}

2
go.mod
View file

@ -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
go.sum
View file

@ -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=

View file

@ -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 {

View file

@ -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

View file

@ -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()

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)
// }