mirror of
https://github.com/gravitl/netmaker.git
synced 2025-02-27 17:42:57 +08:00
Merge pull request #1 from mattkasun/develop-pr
logs, unused funcs, cleanup
This commit is contained in:
commit
f180a85b2b
9 changed files with 50 additions and 79 deletions
|
@ -21,11 +21,11 @@ func GetCommands(cliFlags []cli.Flag) []*cli.Command {
|
|||
return err
|
||||
}
|
||||
if cfg.Network == "all" {
|
||||
err = errors.New("No network provided.")
|
||||
err = errors.New("no network provided")
|
||||
return err
|
||||
}
|
||||
if cfg.Server.GRPCAddress == "" {
|
||||
err = errors.New("No server address provided.")
|
||||
err = errors.New("no server address provided")
|
||||
return err
|
||||
}
|
||||
err = command.Join(cfg, pvtKey)
|
||||
|
|
|
@ -7,22 +7,13 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
nodepb "github.com/gravitl/netmaker/grpc"
|
||||
"github.com/gravitl/netmaker/netclient/config"
|
||||
"github.com/gravitl/netmaker/netclient/daemon"
|
||||
"github.com/gravitl/netmaker/netclient/functions"
|
||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||
"golang.zx2c4.com/wireguard/wgctrl"
|
||||
)
|
||||
|
||||
var (
|
||||
wgclient *wgctrl.Client
|
||||
)
|
||||
|
||||
var (
|
||||
wcclient nodepb.NodeServiceClient
|
||||
)
|
||||
|
||||
// Join - join command to run from cli
|
||||
func Join(cfg config.ClientConfig, privateKey string) error {
|
||||
|
||||
var err error
|
||||
|
@ -83,6 +74,7 @@ func getWindowsInterval() int {
|
|||
return interval
|
||||
}
|
||||
|
||||
// RunUserspaceDaemon - runs continual checkins
|
||||
func RunUserspaceDaemon() {
|
||||
|
||||
cfg := config.ClientConfig{
|
||||
|
@ -91,13 +83,12 @@ func RunUserspaceDaemon() {
|
|||
interval := getWindowsInterval()
|
||||
dur := time.Duration(interval) * time.Second
|
||||
for {
|
||||
if err := CheckIn(cfg); err != nil {
|
||||
// pass
|
||||
}
|
||||
CheckIn(cfg)
|
||||
time.Sleep(dur)
|
||||
}
|
||||
}
|
||||
|
||||
// CheckIn - runs checkin command from cli
|
||||
func CheckIn(cfg config.ClientConfig) error {
|
||||
//log.Println("checkin --- diabled for now")
|
||||
//return nil
|
||||
|
@ -141,6 +132,7 @@ func CheckIn(cfg config.ClientConfig) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// Leave - runs the leave command from cli
|
||||
func Leave(cfg config.ClientConfig) error {
|
||||
err := functions.LeaveNetwork(cfg.Network)
|
||||
if err != nil {
|
||||
|
@ -151,6 +143,7 @@ func Leave(cfg config.ClientConfig) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// Push - runs push command
|
||||
func Push(cfg config.ClientConfig) error {
|
||||
var err error
|
||||
if cfg.Network == "all" || ncutils.IsWindows() {
|
||||
|
@ -177,6 +170,7 @@ func Push(cfg config.ClientConfig) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// Pull - runs pull command from cli
|
||||
func Pull(cfg config.ClientConfig) error {
|
||||
var err error
|
||||
if cfg.Network == "all" {
|
||||
|
@ -203,11 +197,13 @@ func Pull(cfg config.ClientConfig) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// List - runs list command from cli
|
||||
func List(cfg config.ClientConfig) error {
|
||||
err := functions.List(cfg.Network)
|
||||
return err
|
||||
}
|
||||
|
||||
// Uninstall - runs uninstall command from cli
|
||||
func Uninstall() error {
|
||||
ncutils.PrintLog("uninstalling netclient", 0)
|
||||
err := functions.Uninstall()
|
||||
|
|
|
@ -82,14 +82,15 @@ func checkIP(node *models.Node, servercfg config.ServerConfig, cliconf config.Cl
|
|||
return ipchange && err == nil
|
||||
}
|
||||
|
||||
func setDNS(node *models.Node, servercfg config.ServerConfig, nodecfg *models.Node) {
|
||||
if nodecfg.DNSOn == "yes" {
|
||||
ifacename := node.Interface
|
||||
nameserver := servercfg.CoreDNSAddr
|
||||
network := node.Network
|
||||
local.UpdateDNS(ifacename, network, nameserver)
|
||||
}
|
||||
}
|
||||
// DEPRECATED
|
||||
// func setDNS(node *models.Node, servercfg config.ServerConfig, nodecfg *models.Node) {
|
||||
// if nodecfg.DNSOn == "yes" {
|
||||
// ifacename := node.Interface
|
||||
// nameserver := servercfg.CoreDNSAddr
|
||||
// network := node.Network
|
||||
// local.UpdateDNS(ifacename, network, nameserver)
|
||||
// }
|
||||
// }
|
||||
|
||||
func checkNodeActions(node *models.Node, networkName string, servercfg config.ServerConfig, localNode *models.Node, cfg *config.ClientConfig) string {
|
||||
if (node.Action == models.NODE_UPDATE_KEY || localNode.Action == models.NODE_UPDATE_KEY) &&
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package functions
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
|
@ -21,10 +19,6 @@ import (
|
|||
"google.golang.org/grpc/metadata"
|
||||
)
|
||||
|
||||
var (
|
||||
wcclient nodepb.NodeServiceClient
|
||||
)
|
||||
|
||||
// ListPorts - lists ports of WireGuard devices
|
||||
func ListPorts() error {
|
||||
wgclient, err := wgctrl.New()
|
||||
|
@ -101,30 +95,31 @@ func getPrivateAddrBackup() (string, error) {
|
|||
}
|
||||
}
|
||||
if !found {
|
||||
err := errors.New("Local Address Not Found.")
|
||||
err := errors.New("local ip address not found")
|
||||
return "", err
|
||||
}
|
||||
return local, err
|
||||
}
|
||||
|
||||
func needInterfaceUpdate(ctx context.Context, mac string, network string, iface string) (bool, string, error) {
|
||||
var header metadata.MD
|
||||
req := &nodepb.Object{
|
||||
Data: mac + "###" + network,
|
||||
Type: nodepb.STRING_TYPE,
|
||||
}
|
||||
readres, err := wcclient.ReadNode(ctx, req, grpc.Header(&header))
|
||||
if err != nil {
|
||||
return false, "", err
|
||||
}
|
||||
var resNode models.Node
|
||||
if err := json.Unmarshal([]byte(readres.Data), &resNode); err != nil {
|
||||
return false, iface, err
|
||||
}
|
||||
oldiface := resNode.Interface
|
||||
// DEPRECATED
|
||||
// func needInterfaceUpdate(ctx context.Context, mac string, network string, iface string) (bool, string, error) {
|
||||
// var header metadata.MD
|
||||
// req := &nodepb.Object{
|
||||
// Data: mac + "###" + network,
|
||||
// Type: nodepb.STRING_TYPE,
|
||||
// }
|
||||
// readres, err := wcclient.ReadNode(ctx, req, grpc.Header(&header))
|
||||
// if err != nil {
|
||||
// return false, "", err
|
||||
// }
|
||||
// var resNode models.Node
|
||||
// if err := json.Unmarshal([]byte(readres.Data), &resNode); err != nil {
|
||||
// return false, iface, err
|
||||
// }
|
||||
// oldiface := resNode.Interface
|
||||
|
||||
return iface != oldiface, oldiface, err
|
||||
}
|
||||
// return iface != oldiface, oldiface, err
|
||||
// }
|
||||
|
||||
// GetNode - gets node locally
|
||||
func GetNode(network string) models.Node {
|
||||
|
|
|
@ -25,7 +25,7 @@ func SetIPForwarding() error {
|
|||
case "darwin":
|
||||
err = SetIPForwardingMac()
|
||||
default:
|
||||
err = errors.New("This OS is not supported")
|
||||
err = errors.New("this OS is not currently supported")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package ncutils
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@ -17,8 +16,8 @@ func RunCmd(command string, printerr bool) (string, error) {
|
|||
cmd.Wait()
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil && printerr {
|
||||
log.Println("error running command:", command)
|
||||
log.Println(strings.TrimSuffix(string(out), "\n"))
|
||||
Log(fmt.Sprintf("error running command: %s", command))
|
||||
Log(strings.TrimSuffix(string(out), "\n"))
|
||||
}
|
||||
return string(out), err
|
||||
}
|
||||
|
@ -33,9 +32,8 @@ func GetEmbedded() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// CreateUserSpaceConf - creates a user space WireGuard conf
|
||||
func CreateUserSpaceConf(address string, privatekey string, listenPort string, mtu int32, dns string, perskeepalive int32, peers []wgtypes.PeerConfig) (string, error) {
|
||||
log.Println("---------- dns passed to create conf ", dns)
|
||||
// CreateWireGuardConf - creates a user space WireGuard conf
|
||||
func CreateWireGuardConf(address string, privatekey string, listenPort string, mtu int32, dns string, perskeepalive int32, peers []wgtypes.PeerConfig) (string, error) {
|
||||
peersString, err := parsePeers(perskeepalive, peers)
|
||||
var listenPortString string
|
||||
if mtu <= 0 {
|
||||
|
|
|
@ -50,6 +50,9 @@ func CheckIn(network string) (*models.Node, error) {
|
|||
// == run client action ==
|
||||
var header metadata.MD
|
||||
ctx, err := auth.SetJWT(wcclient, network)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
nodeData, err := json.Marshal(&node)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -123,7 +126,7 @@ func GetPeers(macaddress string, network string, server string, dualstack bool,
|
|||
}
|
||||
|
||||
keepalive := nodecfg.PersistentKeepalive
|
||||
keepalivedur, err := time.ParseDuration(strconv.FormatInt(int64(keepalive), 10) + "s")
|
||||
keepalivedur, _ := time.ParseDuration(strconv.FormatInt(int64(keepalive), 10) + "s")
|
||||
keepaliveserver, err := time.ParseDuration(strconv.FormatInt(int64(5), 10) + "s")
|
||||
if err != nil {
|
||||
log.Fatalf("Issue with format of keepalive value. Please update netconfig: %v", err)
|
||||
|
|
|
@ -149,9 +149,9 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|||
}
|
||||
var newConf string
|
||||
if node.UDPHolePunch != "yes" {
|
||||
newConf, _ = ncutils.CreateUserSpaceConf(node.Address, key.String(), strconv.FormatInt(int64(node.ListenPort), 10), node.MTU, nameserver, node.PersistentKeepalive, peers)
|
||||
newConf, _ = ncutils.CreateWireGuardConf(node.Address, key.String(), strconv.FormatInt(int64(node.ListenPort), 10), node.MTU, nameserver, node.PersistentKeepalive, peers)
|
||||
} else {
|
||||
newConf, _ = ncutils.CreateUserSpaceConf(node.Address, key.String(), "", node.MTU, nameserver, node.PersistentKeepalive, peers)
|
||||
newConf, _ = ncutils.CreateWireGuardConf(node.Address, key.String(), "", node.MTU, nameserver, node.PersistentKeepalive, peers)
|
||||
}
|
||||
confPath := ncutils.GetNetclientPathSpecific() + ifacename + ".conf"
|
||||
ncutils.PrintLog("writing wg conf file to: "+confPath, 1)
|
||||
|
@ -178,7 +178,6 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|||
}
|
||||
}
|
||||
if syncconf {
|
||||
log.Println("syncing conf")
|
||||
err = SyncWGQuickConf(ifacename, confPath)
|
||||
} else {
|
||||
d, _ := wgclient.Device(deviceiface)
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
package wireguard
|
||||
|
||||
import (
|
||||
"os/exec"
|
||||
|
||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||
//homedir "github.com/mitchellh/go-homedir"
|
||||
)
|
||||
|
||||
func setKernelDevice(ifacename string, address string) error {
|
||||
ipExec, err := exec.LookPath("ip")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, _ = ncutils.RunCmd("ip link delete dev "+ifacename, false)
|
||||
_, _ = ncutils.RunCmd(ipExec+" link add dev "+ifacename+" type wireguard", true)
|
||||
_, _ = ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+address+"/24", true)
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in a new issue