mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-21 16:09:59 +08:00
remove comms network leftovers
Signed-off-by: Matthew R. Kasun <mkasun@nusak.ca>
This commit is contained in:
@@ -66,7 +66,6 @@ type ServerConfig struct {
|
|||||||
ManageIPTables string `yaml:"manageiptables"`
|
ManageIPTables string `yaml:"manageiptables"`
|
||||||
PortForwardServices string `yaml:"portforwardservices"`
|
PortForwardServices string `yaml:"portforwardservices"`
|
||||||
HostNetwork string `yaml:"hostnetwork"`
|
HostNetwork string `yaml:"hostnetwork"`
|
||||||
CommsCIDR string `yaml:"commscidr"`
|
|
||||||
MQPort string `yaml:"mqport"`
|
MQPort string `yaml:"mqport"`
|
||||||
Server string `yaml:"server"`
|
Server string `yaml:"server"`
|
||||||
}
|
}
|
||||||
|
@@ -3,10 +3,8 @@ package controller
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"github.com/gravitl/netmaker/database"
|
"github.com/gravitl/netmaker/database"
|
||||||
@@ -16,7 +14,6 @@ import (
|
|||||||
"github.com/gravitl/netmaker/models"
|
"github.com/gravitl/netmaker/models"
|
||||||
"github.com/gravitl/netmaker/mq"
|
"github.com/gravitl/netmaker/mq"
|
||||||
"github.com/gravitl/netmaker/servercfg"
|
"github.com/gravitl/netmaker/servercfg"
|
||||||
"github.com/gravitl/netmaker/serverctl"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ALL_NETWORK_ACCESS - represents all networks
|
// ALL_NETWORK_ACCESS - represents all networks
|
||||||
@@ -85,10 +82,6 @@ func getNetwork(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
netname := params["networkname"]
|
netname := params["networkname"]
|
||||||
if isCommsEdit(w, r, netname) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
network, err := logic.GetNetwork(netname)
|
network, err := logic.GetNetwork(netname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
@@ -106,10 +99,6 @@ func keyUpdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
netname := params["networkname"]
|
netname := params["networkname"]
|
||||||
if isCommsEdit(w, r, netname) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
network, err := logic.KeyUpdate(netname)
|
network, err := logic.KeyUpdate(netname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
@@ -296,10 +285,6 @@ func deleteNetwork(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
network := params["networkname"]
|
network := params["networkname"]
|
||||||
if isCommsEdit(w, r, network) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err := logic.DeleteNetwork(network)
|
err := logic.DeleteNetwork(network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errtype := "badrequest"
|
errtype := "badrequest"
|
||||||
@@ -334,8 +319,7 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if servercfg.IsClientMode() != "off" {
|
if servercfg.IsClientMode() != "off" {
|
||||||
var node models.Node
|
_, err := logic.ServerJoin(&network)
|
||||||
node, err = logic.ServerJoin(&network)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logic.DeleteNetwork(network.NetID)
|
logic.DeleteNetwork(network.NetID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -344,7 +328,6 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
|
|||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
getServerAddrs(&node)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Log(1, r.Header.Get("user"), "created network", network.NetID)
|
logger.Log(1, r.Header.Get("user"), "created network", network.NetID)
|
||||||
@@ -359,9 +342,6 @@ func createAccessKey(w http.ResponseWriter, r *http.Request) {
|
|||||||
var accesskey models.AccessKey
|
var accesskey models.AccessKey
|
||||||
//start here
|
//start here
|
||||||
netname := params["networkname"]
|
netname := params["networkname"]
|
||||||
if isCommsEdit(w, r, netname) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
network, err := logic.GetParentNetwork(netname)
|
network, err := logic.GetParentNetwork(netname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
@@ -414,41 +394,3 @@ func deleteAccessKey(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, r.Header.Get("user"), "deleted access key", keyname, "on network,", netname)
|
logger.Log(1, r.Header.Get("user"), "deleted access key", keyname, "on network,", netname)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
func isCommsEdit(w http.ResponseWriter, r *http.Request, netname string) bool {
|
|
||||||
if netname == serverctl.COMMS_NETID {
|
|
||||||
returnErrorResponse(w, r, formatError(fmt.Errorf("cannot access comms network"), "internal"))
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func getServerAddrs(node *models.Node) {
|
|
||||||
serverNodes := logic.GetServerNodes(serverctl.COMMS_NETID)
|
|
||||||
//pubIP, _ := servercfg.GetPublicIP()
|
|
||||||
if len(serverNodes) == 0 {
|
|
||||||
if err := serverctl.SyncServerNetwork(serverctl.COMMS_NETID); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var serverAddrs = make([]models.ServerAddr, 0)
|
|
||||||
|
|
||||||
for _, node := range serverNodes {
|
|
||||||
if node.Address != "" {
|
|
||||||
serverAddrs = append(serverAddrs, models.ServerAddr{
|
|
||||||
IsLeader: logic.IsLeader(&node),
|
|
||||||
Address: node.Address,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
networkSettings, _ := logic.GetParentNetwork(node.Network)
|
|
||||||
// TODO consolidate functionality around files
|
|
||||||
networkSettings.NodesLastModified = time.Now().Unix()
|
|
||||||
networkSettings.DefaultServerAddrs = serverAddrs
|
|
||||||
if err := logic.SaveNetwork(&networkSettings); err != nil {
|
|
||||||
logger.Log(1, "unable to save network on serverAddr update", err.Error())
|
|
||||||
}
|
|
||||||
node.NetworkSettings.DefaultServerAddrs = networkSettings.DefaultServerAddrs
|
|
||||||
}
|
|
||||||
|
@@ -463,7 +463,6 @@ func createNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getServerAddrs(&node)
|
|
||||||
key, keyErr := logic.RetrievePublicTrafficKey()
|
key, keyErr := logic.RetrievePublicTrafficKey()
|
||||||
if keyErr != nil {
|
if keyErr != nil {
|
||||||
logger.Log(0, "error retrieving key: ", keyErr.Error())
|
logger.Log(0, "error retrieving key: ", keyErr.Error())
|
||||||
|
42
dev.yaml
Normal file
42
dev.yaml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
server:
|
||||||
|
corednsaddr: ""
|
||||||
|
apiconn: "api.ping.clustercat.com:443"
|
||||||
|
apihost: ""
|
||||||
|
apiport: "8081"
|
||||||
|
grpcconn: "grpc.ping.clustercat.com:443"
|
||||||
|
grpchost: ""
|
||||||
|
grpcport: "50051"
|
||||||
|
grpcsecure: "on"
|
||||||
|
mqhost: "localhost"
|
||||||
|
masterkey: "secretkey"
|
||||||
|
dnskey: ""
|
||||||
|
allowedorigin: "*"
|
||||||
|
nodeid: "netmaker"
|
||||||
|
restbackend: "on"
|
||||||
|
agentbackend: "on"
|
||||||
|
messagequeuebackend: "on"
|
||||||
|
clientmode: "on"
|
||||||
|
dnsmode: "on"
|
||||||
|
disableremoteipcheck: ""
|
||||||
|
grpcssl: "on"
|
||||||
|
version: ""
|
||||||
|
sqlconn: ""
|
||||||
|
platform: ""
|
||||||
|
database: "sqlite"
|
||||||
|
defaultnodelimit: ""
|
||||||
|
verbosity: 3
|
||||||
|
servercheckininterval: ""
|
||||||
|
authprovider: ""
|
||||||
|
clientid: ""
|
||||||
|
clientsecret: ""
|
||||||
|
frontendurl: ""
|
||||||
|
displaykeys: ""
|
||||||
|
azuretenant: ""
|
||||||
|
rce: "off"
|
||||||
|
debug: ""
|
||||||
|
telemetry: ""
|
||||||
|
manageiptables: "off"
|
||||||
|
portforwardservices: ""
|
||||||
|
hostnetwork: "off"
|
||||||
|
mqport: ""
|
||||||
|
server: "broker.ping.clustercat.com"
|
@@ -143,7 +143,7 @@ func DecrimentKey(networkName string, keyvalue string) {
|
|||||||
var network models.Network
|
var network models.Network
|
||||||
|
|
||||||
network, err := GetParentNetwork(networkName)
|
network, err := GetParentNetwork(networkName)
|
||||||
if err != nil || network.IsComms == "yes" {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,9 +176,6 @@ func IsKeyValid(networkname string, keyvalue string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
accesskeys := network.AccessKeys
|
accesskeys := network.AccessKeys
|
||||||
if network.IsComms == "yes" {
|
|
||||||
accesskeys = getAllAccessKeys()
|
|
||||||
}
|
|
||||||
|
|
||||||
var key models.AccessKey
|
var key models.AccessKey
|
||||||
foundkey := false
|
foundkey := false
|
||||||
|
@@ -43,7 +43,7 @@ func ServerJoin(networkSettings *models.Network) (models.Node, error) {
|
|||||||
}
|
}
|
||||||
var ishub = "no"
|
var ishub = "no"
|
||||||
|
|
||||||
if networkSettings.IsPointToSite == "yes" || networkSettings.IsComms == "yes" {
|
if networkSettings.IsPointToSite == "yes" {
|
||||||
nodes, err := GetNetworkNodes(networkSettings.NetID)
|
nodes, err := GetNetworkNodes(networkSettings.NetID)
|
||||||
if err != nil || nodes == nil {
|
if err != nil || nodes == nil {
|
||||||
ishub = "yes"
|
ishub = "yes"
|
||||||
|
@@ -72,32 +72,3 @@ func StoreJWTSecret(privateKey string) error {
|
|||||||
}
|
}
|
||||||
return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
|
return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FetchCommsNetID - fetches comms netid from db
|
|
||||||
func FetchCommsNetID() (string, error) {
|
|
||||||
var dbData string
|
|
||||||
var err error
|
|
||||||
var fetchedData = serverData{}
|
|
||||||
dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-comms-id")
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
err = json.Unmarshal([]byte(dbData), &fetchedData)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return fetchedData.PrivateKey, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// StoreCommsNetID - stores server comms network netid if needed
|
|
||||||
func StoreCommsNetID(netid string) error {
|
|
||||||
var newData = serverData{}
|
|
||||||
var err error
|
|
||||||
var data []byte
|
|
||||||
newData.PrivateKey = netid
|
|
||||||
data, err = json.Marshal(&newData)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return database.Insert("nm-comms-id", string(data), database.SERVERCONF_TABLE_NAME)
|
|
||||||
}
|
|
||||||
|
@@ -25,14 +25,11 @@ type Network struct {
|
|||||||
IsIPv4 string `json:"isipv4" bson:"isipv4" validate:"checkyesorno"`
|
IsIPv4 string `json:"isipv4" bson:"isipv4" validate:"checkyesorno"`
|
||||||
IsIPv6 string `json:"isipv6" bson:"isipv6" validate:"checkyesorno"`
|
IsIPv6 string `json:"isipv6" bson:"isipv6" validate:"checkyesorno"`
|
||||||
IsPointToSite string `json:"ispointtosite" bson:"ispointtosite" validate:"checkyesorno"`
|
IsPointToSite string `json:"ispointtosite" bson:"ispointtosite" validate:"checkyesorno"`
|
||||||
IsComms string `json:"iscomms" bson:"iscomms" validate:"checkyesorno"`
|
|
||||||
LocalRange string `json:"localrange" bson:"localrange" validate:"omitempty,cidr"`
|
LocalRange string `json:"localrange" bson:"localrange" validate:"omitempty,cidr"`
|
||||||
DefaultUDPHolePunch string `json:"defaultudpholepunch" bson:"defaultudpholepunch" validate:"checkyesorno"`
|
DefaultUDPHolePunch string `json:"defaultudpholepunch" bson:"defaultudpholepunch" validate:"checkyesorno"`
|
||||||
DefaultExtClientDNS string `json:"defaultextclientdns" bson:"defaultextclientdns"`
|
DefaultExtClientDNS string `json:"defaultextclientdns" bson:"defaultextclientdns"`
|
||||||
DefaultMTU int32 `json:"defaultmtu" bson:"defaultmtu"`
|
DefaultMTU int32 `json:"defaultmtu" bson:"defaultmtu"`
|
||||||
// consider removing - may be depreciated
|
DefaultACL string `json:"defaultacl" bson:"defaultacl" yaml:"defaultacl" validate:"checkyesorno"`
|
||||||
DefaultServerAddrs []ServerAddr `json:"defaultserveraddrs" bson:"defaultserveraddrs" yaml:"defaultserveraddrs"`
|
|
||||||
DefaultACL string `json:"defaultacl" bson:"defaultacl" yaml:"defaultacl" validate:"checkyesorno"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveData - sensitive fields of a network that should be kept the same
|
// SaveData - sensitive fields of a network that should be kept the same
|
||||||
@@ -61,9 +58,6 @@ func (network *Network) SetDefaults() {
|
|||||||
if network.IsPointToSite == "" {
|
if network.IsPointToSite == "" {
|
||||||
network.IsPointToSite = "no"
|
network.IsPointToSite = "no"
|
||||||
}
|
}
|
||||||
if network.IsComms == "" {
|
|
||||||
network.IsComms = "no"
|
|
||||||
}
|
|
||||||
if network.DefaultInterface == "" {
|
if network.DefaultInterface == "" {
|
||||||
if len(network.NetID) < 13 {
|
if len(network.NetID) < 13 {
|
||||||
network.DefaultInterface = "nm-" + network.NetID
|
network.DefaultInterface = "nm-" + network.NetID
|
||||||
|
@@ -10,36 +10,11 @@ import (
|
|||||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// JoinComms -- Join the message queue comms network if it doesn't have it
|
|
||||||
// tries to ping if already found locally, if fail ping pull for best effort for communication
|
|
||||||
func JoinComms(cfg *config.ClientConfig) error {
|
|
||||||
commsCfg := &config.ClientConfig{}
|
|
||||||
commsCfg.Server.AccessKey = cfg.Server.AccessKey
|
|
||||||
commsCfg.Server.CoreDNSAddr = cfg.Server.CoreDNSAddr
|
|
||||||
if commsCfg.ConfigFileExists() {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
commsCfg.ReadConfig()
|
|
||||||
|
|
||||||
if len(commsCfg.Node.Name) == 0 {
|
|
||||||
if err := functions.JoinNetwork(commsCfg, "", true); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else { // check if comms is currently reachable
|
|
||||||
if err := functions.PingServer(commsCfg); err != nil {
|
|
||||||
if err = Pull(commsCfg); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Join - join command to run from cli
|
// Join - join command to run from cli
|
||||||
func Join(cfg *config.ClientConfig, privateKey string) error {
|
func Join(cfg *config.ClientConfig, privateKey string) error {
|
||||||
var err error
|
var err error
|
||||||
//join network
|
//join network
|
||||||
err = functions.JoinNetwork(cfg, privateKey, false)
|
err = functions.JoinNetwork(cfg, privateKey)
|
||||||
if err != nil && !cfg.DebugOn {
|
if err != nil && !cfg.DebugOn {
|
||||||
if !strings.Contains(err.Error(), "ALREADY_INSTALLED") {
|
if !strings.Contains(err.Error(), "ALREADY_INSTALLED") {
|
||||||
logger.Log(1, "error installing: ", err.Error())
|
logger.Log(1, "error installing: ", err.Error())
|
||||||
@@ -89,13 +64,6 @@ func Leave(cfg *config.ClientConfig, force bool) error {
|
|||||||
} else {
|
} else {
|
||||||
logger.Log(0, "success")
|
logger.Log(0, "success")
|
||||||
}
|
}
|
||||||
//nets, err := ncutils.GetSystemNetworks()
|
|
||||||
//if err == nil && len(nets) == 1 {
|
|
||||||
//if nets[0] == cfg.Node.CommID {
|
|
||||||
//logger.Log(1, "detected comms as remaining network, removing...")
|
|
||||||
//err = functions.LeaveNetwork(nets[0], true)
|
|
||||||
//}
|
|
||||||
//}
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -18,7 +18,6 @@ import (
|
|||||||
mqtt "github.com/eclipse/paho.mqtt.golang"
|
mqtt "github.com/eclipse/paho.mqtt.golang"
|
||||||
"github.com/go-ping/ping"
|
"github.com/go-ping/ping"
|
||||||
"github.com/gravitl/netmaker/logger"
|
"github.com/gravitl/netmaker/logger"
|
||||||
"github.com/gravitl/netmaker/models"
|
|
||||||
"github.com/gravitl/netmaker/netclient/auth"
|
"github.com/gravitl/netmaker/netclient/auth"
|
||||||
"github.com/gravitl/netmaker/netclient/config"
|
"github.com/gravitl/netmaker/netclient/config"
|
||||||
"github.com/gravitl/netmaker/netclient/daemon"
|
"github.com/gravitl/netmaker/netclient/daemon"
|
||||||
@@ -72,7 +71,7 @@ func Daemon() error {
|
|||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go Checkin(ctx, &wg, serverSet)
|
go Checkin(ctx, &wg)
|
||||||
quit := make(chan os.Signal, 1)
|
quit := make(chan os.Signal, 1)
|
||||||
signal.Notify(quit, syscall.SIGTERM, os.Interrupt)
|
signal.Notify(quit, syscall.SIGTERM, os.Interrupt)
|
||||||
<-quit
|
<-quit
|
||||||
@@ -112,7 +111,6 @@ func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PingServer -- checks if server is reachable
|
// PingServer -- checks if server is reachable
|
||||||
// use commsCfg only*
|
|
||||||
func PingServer(cfg *config.ClientConfig) error {
|
func PingServer(cfg *config.ClientConfig) error {
|
||||||
pinger, err := ping.NewPinger(cfg.Server.Server)
|
pinger, err := ping.NewPinger(cfg.Server.Server)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -181,10 +179,9 @@ func messageQueue(ctx context.Context, server string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// setupMQTTSub creates a connection to broker and subscribes to topic
|
// setupMQTTSub creates a connection to broker and subscribes to topic
|
||||||
// utilizes comms client configs to setup connections
|
|
||||||
func setupMQTTSub(server string) mqtt.Client {
|
func setupMQTTSub(server string) mqtt.Client {
|
||||||
opts := mqtt.NewClientOptions()
|
opts := mqtt.NewClientOptions()
|
||||||
opts.AddBroker("ssl://" + server + ":8883") // TODO get the appropriate port of the comms mq server
|
opts.AddBroker("ssl://" + server + ":8883")
|
||||||
opts.TLSConfig = NewTLSConfig(nil, server)
|
opts.TLSConfig = NewTLSConfig(nil, server)
|
||||||
opts.SetDefaultPublishHandler(All)
|
opts.SetDefaultPublishHandler(All)
|
||||||
opts.SetAutoReconnect(true)
|
opts.SetAutoReconnect(true)
|
||||||
@@ -325,7 +322,7 @@ func NewTLSConfig(cfg *config.ClientConfig, server string) *tls.Config {
|
|||||||
func setupMQTT(cfg *config.ClientConfig, publish bool) mqtt.Client {
|
func setupMQTT(cfg *config.ClientConfig, publish bool) mqtt.Client {
|
||||||
opts := mqtt.NewClientOptions()
|
opts := mqtt.NewClientOptions()
|
||||||
server := cfg.Server.Server
|
server := cfg.Server.Server
|
||||||
opts.AddBroker("ssl://" + server + ":8883") // TODO get the appropriate port of the comms mq server
|
opts.AddBroker("ssl://" + server + ":8883")
|
||||||
opts.TLSConfig = NewTLSConfig(cfg, "")
|
opts.TLSConfig = NewTLSConfig(cfg, "")
|
||||||
opts.SetDefaultPublishHandler(All)
|
opts.SetDefaultPublishHandler(All)
|
||||||
opts.SetAutoReconnect(true)
|
opts.SetAutoReconnect(true)
|
||||||
@@ -451,16 +448,6 @@ func decryptMsg(nodeCfg *config.ClientConfig, msg []byte) ([]byte, error) {
|
|||||||
return ncutils.DeChunk(msg, serverPubKey, diskKey)
|
return ncutils.DeChunk(msg, serverPubKey, diskKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getServerAddress(cfg *config.ClientConfig) string {
|
|
||||||
var server models.ServerAddr
|
|
||||||
for _, server = range cfg.Node.NetworkSettings.DefaultServerAddrs {
|
|
||||||
if server.Address != "" && server.IsLeader {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return server.Address
|
|
||||||
}
|
|
||||||
|
|
||||||
// == Message Caches ==
|
// == Message Caches ==
|
||||||
|
|
||||||
func insert(network, which, cache string) {
|
func insert(network, which, cache string) {
|
||||||
|
@@ -25,7 +25,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// JoinNetwork - helps a client join a network
|
// JoinNetwork - helps a client join a network
|
||||||
func JoinNetwork(cfg *config.ClientConfig, privateKey string, iscomms bool) error {
|
func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
||||||
if cfg.Node.Network == "" {
|
if cfg.Node.Network == "" {
|
||||||
return errors.New("no network provided")
|
return errors.New("no network provided")
|
||||||
}
|
}
|
||||||
@@ -101,7 +101,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string, iscomms bool) erro
|
|||||||
// Find and set node MacAddress
|
// Find and set node MacAddress
|
||||||
if cfg.Node.MacAddress == "" {
|
if cfg.Node.MacAddress == "" {
|
||||||
macs, err := ncutils.GetMacAddr()
|
macs, err := ncutils.GetMacAddr()
|
||||||
if err != nil || iscomms {
|
if err != nil {
|
||||||
//if macaddress can't be found set to random string
|
//if macaddress can't be found set to random string
|
||||||
cfg.Node.MacAddress = ncutils.MakeRandomString(18)
|
cfg.Node.MacAddress = ncutils.MakeRandomString(18)
|
||||||
} else {
|
} else {
|
||||||
|
@@ -202,10 +202,6 @@ func UpdatePeers(client mqtt.Client, msg mqtt.Message) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.Log(0, "received peer update for node "+cfg.Node.Name+" "+cfg.Node.Network)
|
logger.Log(0, "received peer update for node "+cfg.Node.Name+" "+cfg.Node.Network)
|
||||||
//skip dns updates if this is a peer update for comms network
|
|
||||||
if cfg.Node.NetworkSettings.IsComms == "yes" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if cfg.Node.DNSOn == "yes" {
|
if cfg.Node.DNSOn == "yes" {
|
||||||
if err := setHostDNS(peerUpdate.DNS, cfg.Node.Network, ncutils.IsWindows()); err != nil {
|
if err := setHostDNS(peerUpdate.DNS, cfg.Node.Network, ncutils.IsWindows()); err != nil {
|
||||||
logger.Log(0, "error updating /etc/hosts "+err.Error())
|
logger.Log(0, "error updating /etc/hosts "+err.Error())
|
||||||
|
@@ -18,7 +18,7 @@ import (
|
|||||||
|
|
||||||
// Checkin -- go routine that checks for public or local ip changes, publishes changes
|
// Checkin -- go routine that checks for public or local ip changes, publishes changes
|
||||||
// if there are no updates, simply "pings" the server as a checkin
|
// if there are no updates, simply "pings" the server as a checkin
|
||||||
func Checkin(ctx context.Context, wg *sync.WaitGroup, currentComms map[string]struct{}) {
|
func Checkin(ctx context.Context, wg *sync.WaitGroup) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@@ -113,8 +113,7 @@ func Hello(nodeCfg *config.ClientConfig) {
|
|||||||
logger.Log(3, "server checkin complete")
|
logger.Log(3, "server checkin complete")
|
||||||
}
|
}
|
||||||
|
|
||||||
// requires the commscfg in which to send traffic over and nodecfg of node that is publish the message
|
// node cfg is required in order to fetch the traffic keys of that node for encryption
|
||||||
// node cfg is so that the traffic keys of that node may be fetched for encryption
|
|
||||||
func publish(nodeCfg *config.ClientConfig, dest string, msg []byte, qos byte) error {
|
func publish(nodeCfg *config.ClientConfig, dest string, msg []byte, qos byte) error {
|
||||||
// setup the keys
|
// setup the keys
|
||||||
trafficPrivKey, err := auth.RetrieveTrafficKey(nodeCfg.Node.Network)
|
trafficPrivKey, err := auth.RetrieveTrafficKey(nodeCfg.Node.Network)
|
||||||
|
@@ -47,7 +47,7 @@ func Register(cfg *config.ClientConfig, key string) error {
|
|||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return JoinNetwork(cfg, key, false)
|
return JoinNetwork(cfg, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RegisterWithServer calls the register endpoint with privatekey and commonname - api returns ca and client certificate
|
// RegisterWithServer calls the register endpoint with privatekey and commonname - api returns ca and client certificate
|
||||||
|
@@ -13,7 +13,6 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
Version = "dev"
|
Version = "dev"
|
||||||
commsID = ""
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetHost - sets the host ip
|
// SetHost - sets the host ip
|
||||||
@@ -206,11 +205,6 @@ func GetMQPort() string {
|
|||||||
return mqport
|
return mqport
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetCommsID - sets the commsID
|
|
||||||
func SetCommsID(newCommsID string) {
|
|
||||||
commsID = newCommsID
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetMessageQueueEndpoint - gets the message queue endpoint
|
// GetMessageQueueEndpoint - gets the message queue endpoint
|
||||||
func GetMessageQueueEndpoint() string {
|
func GetMessageQueueEndpoint() string {
|
||||||
host, _ := GetPublicIP()
|
host, _ := GetPublicIP()
|
||||||
|
@@ -15,30 +15,11 @@ import (
|
|||||||
"github.com/gravitl/netmaker/servercfg"
|
"github.com/gravitl/netmaker/servercfg"
|
||||||
)
|
)
|
||||||
|
|
||||||
// COMMS_NETID - name of the comms network
|
|
||||||
var COMMS_NETID string
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// NETMAKER_BINARY_NAME - name of netmaker binary
|
// NETMAKER_BINARY_NAME - name of netmaker binary
|
||||||
NETMAKER_BINARY_NAME = "netmaker"
|
NETMAKER_BINARY_NAME = "netmaker"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetJWTSecret - sets the jwt secret on server startup
|
|
||||||
func setCommsID() {
|
|
||||||
currentid, idErr := logic.FetchCommsNetID()
|
|
||||||
if idErr != nil {
|
|
||||||
commsid := logic.RandomString(8)
|
|
||||||
if err := logic.StoreCommsNetID(commsid); err != nil {
|
|
||||||
logger.FatalLog("something went wrong when configuring comms id")
|
|
||||||
}
|
|
||||||
COMMS_NETID = commsid
|
|
||||||
servercfg.SetCommsID(COMMS_NETID)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
COMMS_NETID = currentid
|
|
||||||
servercfg.SetCommsID(COMMS_NETID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// InitServerNetclient - intializes the server netclient
|
// InitServerNetclient - intializes the server netclient
|
||||||
// 1. Check if config directory exists, if not attempt to make
|
// 1. Check if config directory exists, if not attempt to make
|
||||||
// 2. Check current networks and run pull to get interface up to date in case of restart
|
// 2. Check current networks and run pull to get interface up to date in case of restart
|
||||||
|
Reference in New Issue
Block a user