refactor continues

This commit is contained in:
redanthrax 2022-06-21 16:12:14 -07:00
parent c038774f2c
commit 51f1eab127
30 changed files with 1373 additions and 474 deletions

View file

@ -0,0 +1,19 @@
package shared
import (
"github.com/amidaware/rmmagent/agent/software"
"github.com/amidaware/rmmagent/agent/tactical/api"
"github.com/amidaware/rmmagent/agent/tactical/config"
)
func SendSoftware() error {
config := config.NewAgentConfig()
sw, _ := software.GetInstalledSoftware()
payload := map[string]interface{}{"agent_id": config.AgentID, "software": sw}
err := api.PostPayload(payload, "/api/v3/software/")
if err != nil {
return err
}
return nil
}

View file

@ -0,0 +1,70 @@
package shared
import (
"fmt"
"os"
"path/filepath"
"runtime"
"time"
"github.com/amidaware/rmmagent/agent/system"
"github.com/amidaware/rmmagent/agent/tactical/config"
"github.com/amidaware/rmmagent/agent/utils"
"github.com/go-resty/resty/v2"
)
func GetPython(force bool) {
if utils.FileExists(system.GetPythonBin()) && !force {
return
}
var archZip string
var folder string
switch runtime.GOARCH {
case "amd64":
archZip = "py38-x64.zip"
folder = "py38-x64"
case "386":
archZip = "py38-x32.zip"
folder = "py38-x32"
}
pyFolder := filepath.Join(system.GetProgramDirectory(), folder)
pyZip := filepath.Join(system.GetProgramDirectory(), archZip)
defer os.Remove(pyZip)
if force {
os.RemoveAll(pyFolder)
}
config := config.NewAgentConfig()
rClient := resty.New()
rClient.SetTimeout(20 * time.Minute)
rClient.SetRetryCount(10)
rClient.SetRetryWaitTime(1 * time.Minute)
rClient.SetRetryMaxWaitTime(15 * time.Minute)
if len(config.Proxy) > 0 {
rClient.SetProxy(config.Proxy)
}
url := fmt.Sprintf("https://github.com/amidaware/rmmagent/releases/download/v2.0.0/%s", archZip)
r, err := rClient.R().SetOutput(pyZip).Get(url)
if err != nil {
return
}
if r.IsError() {
return
}
err = utils.Unzip(pyZip, system.GetProgramDirectory())
if err != nil {
}
}
func RunMigrations() {
for _, i := range []string{"nssm.exe", "nssm-x86.exe"} {
nssm := filepath.Join(system.GetProgramDirectory(), i)
if utils.FileExists(nssm) {
os.Remove(nssm)
}
}
}