mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 21:24:16 +08:00
change proxy models reference paths
This commit is contained in:
parent
d5446fb302
commit
2cb3ee65af
12 changed files with 111 additions and 113 deletions
|
@ -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
|
||||
|
|
|
@ -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
2
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
go.sum
4
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=
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
136
test/main.go
136
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)
|
||||
// }
|
Loading…
Add table
Reference in a new issue