fixed client side for multinet and added group filter to query params server side.

This commit is contained in:
afeiszli
2021-04-05 11:06:30 -04:00
parent 0080e9a2ee
commit 1f377997cb
9 changed files with 229 additions and 127 deletions

View File

@@ -11,7 +11,16 @@ import (
"os/exec"
)
func ConfigureSystemD() error {
func fileExists(f string) bool {
info, err := os.Stat(f)
if os.IsNotExist(err) {
return false
}
return !info.IsDir()
}
func ConfigureSystemD(network string) error {
/*
path, err := os.Getwd()
if err != nil {
@@ -36,17 +45,20 @@ func ConfigureSystemD() error {
return err
}
if !fileExists("/usr/local/bin/netclient") {
_, err = copy(binarypath, "/usr/local/bin/netclient")
if err != nil {
log.Println(err)
return err
}
}
if !fileExists("/etc/netclient/netclient") {
_, err = copy(binarypath, "/etc/netclient/netclient")
if err != nil {
log.Println(err)
return err
}
}
systemservice := `[Unit]
@@ -54,8 +66,8 @@ Description=Regularly checks for updates in peers and local config
Wants=netclient.timer
[Service]
Type=oneshot
ExecStart=/etc/netclient/netclient -c checkin
Type=simple
ExecStart=/etc/netclient/netclient -c checkin -n %i
[Install]
WantedBy=multi-user.target
@@ -63,45 +75,62 @@ WantedBy=multi-user.target
systemtimer := `[Unit]
Description=Calls the Netmaker Mesh Client Service
Requires=netclient.service
`
systemtimer = systemtimer + "Requires=netclient@"+network+".service"
systemtimer = systemtimer +
`
[Timer]
Unit=netclient.service
`
systemtimer = systemtimer + "Unit=netclient@"+network+".service"
systemtimer = systemtimer +
`
OnCalendar=*:*:0/30
[Install]
WantedBy=timers.target
`
servicebytes := []byte(systemservice)
timerbytes := []byte(systemtimer)
err = ioutil.WriteFile("/etc/systemd/system/netclient.service", servicebytes, 0644)
if !fileExists("/etc/systemd/system/netclient@.service") {
err = ioutil.WriteFile("/etc/systemd/system/netclient@.service", servicebytes, 0644)
if err != nil {
log.Println(err)
return err
}
}
err = ioutil.WriteFile("/etc/systemd/system/netclient.timer", timerbytes, 0644)
if !fileExists("/etc/systemd/system/netclient-"+network+".timer") {
err = ioutil.WriteFile("/etc/systemd/system/netclient-"+network+".timer", timerbytes, 0644)
if err != nil {
log.Println(err)
return err
}
}
sysExec, err := exec.LookPath("systemctl")
cmdSysEnableService := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "enable", "netclient.service" },
Args: []string{ sysExec, "enable", "netclient@.service" },
Stdout: os.Stdout,
Stderr: os.Stdout,
}
/*
cmdSysStartService := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "start", "netclient.service"},
Args: []string{ sysExec, "start", "netclient@.service"},
Stdout: os.Stdout,
Stderr: os.Stdout,
}
*/
cmdSysDaemonReload := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "daemon-reload"},
@@ -110,25 +139,20 @@ WantedBy=timers.target
}
cmdSysEnableTimer := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "enable", "netclient.timer" },
Args: []string{ sysExec, "enable", "netclient-"+network+".timer" },
Stdout: os.Stdout,
Stderr: os.Stdout,
}
cmdSysStartTimer := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "start", "netclient.timer"},
Args: []string{ sysExec, "start", "netclient-"+network+".timer"},
Stdout: os.Stdout,
Stderr: os.Stdout,
}
err = cmdSysEnableService.Run()
if err != nil {
fmt.Println("Error enabling netclient.service. Please investigate.")
fmt.Println(err)
}
err = cmdSysStartService.Run()
if err != nil {
fmt.Println("Error starting netclient.service. Please investigate.")
fmt.Println("Error enabling netclient@.service. Please investigate.")
fmt.Println(err)
}
err = cmdSysDaemonReload.Run()
@@ -143,24 +167,18 @@ WantedBy=timers.target
}
err = cmdSysStartTimer.Run()
if err != nil {
fmt.Println("Error starting netclient.timer. Please investigate.")
fmt.Println("Error starting netclient-"+network+".timer. Please investigate.")
fmt.Println(err)
}
return nil
}
func RemoveSystemDServices() error {
func RemoveSystemDServices(network string) error {
sysExec, err := exec.LookPath("systemctl")
cmdSysStopService := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "stop", "netclient.service" },
Stdout: os.Stdout,
Stderr: os.Stdout,
}
cmdSysDisableService := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "disable", "netclient.service"},
Args: []string{ sysExec, "disable", "netclient@.service"},
Stdout: os.Stdout,
Stderr: os.Stdout,
}
@@ -178,40 +196,40 @@ func RemoveSystemDServices() error {
}
cmdSysStopTimer := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "stop", "netclient.timer" },
Args: []string{ sysExec, "stop", "netclient-"+network+".timer" },
Stdout: os.Stdout,
Stderr: os.Stdout,
}
cmdSysDisableTimer := &exec.Cmd {
Path: sysExec,
Args: []string{ sysExec, "disable", "netclient.timer"},
Args: []string{ sysExec, "disable", "netclient-"+network+".timer"},
Stdout: os.Stdout,
Stderr: os.Stdout,
}
err = cmdSysStopService.Run()
//err = cmdSysStopService.Run()
if err != nil {
fmt.Println("Error stopping netclient.service. Please investigate.")
fmt.Println("Error stopping netclient@.service. Please investigate.")
fmt.Println(err)
}
err = cmdSysDisableService.Run()
if err != nil {
fmt.Println("Error disabling netclient.service. Please investigate.")
fmt.Println("Error disabling netclient@.service. Please investigate.")
fmt.Println(err)
}
err = cmdSysStopTimer.Run()
if err != nil {
fmt.Println("Error stopping netclient.timer. Please investigate.")
fmt.Println("Error stopping netclient-"+network+".timer. Please investigate.")
fmt.Println(err)
}
err = cmdSysDisableTimer.Run()
if err != nil {
fmt.Println("Error disabling netclient.timer. Please investigate.")
fmt.Println("Error disabling netclient-"+network+".timer. Please investigate.")
fmt.Println(err)
}
err = os.Remove("/etc/systemd/system/netclient.service")
err = os.Remove("/etc/systemd/system/netclient.timer")
err = os.Remove("/etc/systemd/system/netclient@.service")
err = os.Remove("/etc/systemd/system/netclient-"+network+".timer")
if err != nil {
fmt.Println("Error removing file. Please investigate.")
fmt.Println(err)