Finalizing online support for dashboard, cloud version support

pull/17/head
Paulo Truta 2021-06-21 01:39:15 +00:00
parent 4614a0f070
commit 3b3010c8f0
4 changed files with 39 additions and 46 deletions

View File

@ -363,6 +363,12 @@ func DisablePublicDashboard() bool {
} }
func IsPublicDashboard() bool {
envFilePath := utils.GetPath("apiPath") + myEdgeAppServiceEnvFilename
_, err := godotenv.Read(envFilePath)
return err != nil
}
func buildFrameworkContainers() { func buildFrameworkContainers() {
cmdArgs := []string{utils.GetPath("wsPath") + "ws", "--build"} cmdArgs := []string{utils.GetPath("wsPath") + "ws", "--build"}

View File

@ -50,3 +50,7 @@ func GetIP() string {
return ip return ip
} }
func GetHostname() string {
return utils.Exec("/", "hostname", []string{})
}

View File

@ -61,7 +61,7 @@ type taskDisableOnlineArgs struct {
} }
type taskEnablePublicDashboardArgs struct { type taskEnablePublicDashboardArgs struct {
InternetURL string `json:"internet_url` InternetURL string `json:"internet_url"`
} }
// GetNextTask : Performs a MySQL query over the device's Edgebox API // GetNextTask : Performs a MySQL query over the device's Edgebox API
@ -125,6 +125,7 @@ func ExecuteTask(task Task) Task {
log.Printf("Dev environemnt. Not executing tasks.") log.Printf("Dev environemnt. Not executing tasks.")
} else { } else {
log.Println("Task: " + task.Task) log.Println("Task: " + task.Task)
log.Println("Args: " + task.Args.String)
switch task.Task { switch task.Task {
case "setup_tunnel": case "setup_tunnel":
@ -277,6 +278,15 @@ func ExecuteSchedules(tick int) {
release := taskSetReleaseVersion() release := taskSetReleaseVersion()
log.Println("Setting api option flag for Edgeboxctl (" + release + " version)") log.Println("Setting api option flag for Edgeboxctl (" + release + " version)")
hostname := taskGetHostname()
log.Println("Hostname is " + hostname)
if diagnostics.Version == "cloud" && !edgeapps.IsPublicDashboard() {
taskEnablePublicDashboard(taskEnablePublicDashboardArgs{
InternetURL: hostname + ".myedge.app",
})
}
// Executing on startup (first tick). Schedules run before tasks in the SystemIterator // Executing on startup (first tick). Schedules run before tasks in the SystemIterator
uptime := taskGetSystemUptime() uptime := taskGetSystemUptime()
log.Println("Uptime is " + uptime + " seconds (" + system.GetUptimeFormatted() + ")") log.Println("Uptime is " + uptime + " seconds (" + system.GetUptimeFormatted() + ")")
@ -307,7 +317,6 @@ func ExecuteSchedules(tick int) {
} }
func taskSetupTunnel(args taskSetupTunnelArgs) string { func taskSetupTunnel(args taskSetupTunnelArgs) string {
fmt.Println("Executing taskSetupTunnel") fmt.Println("Executing taskSetupTunnel")
cmdargs := []string{"gen", "--name", args.NodeName, "--token", args.BootnodeToken, args.BootnodeAddress + ":8655", "--prefix", args.AssignedAddress} cmdargs := []string{"gen", "--name", args.NodeName, "--token", args.BootnodeToken, args.BootnodeAddress + ":8655", "--prefix", args.AssignedAddress}
@ -321,121 +330,91 @@ func taskSetupTunnel(args taskSetupTunnelArgs) string {
output := "OK" // Better check / logging of command execution result. output := "OK" // Better check / logging of command execution result.
return output return output
} }
func taskInstallEdgeApp(args taskInstallEdgeAppArgs) string { func taskInstallEdgeApp(args taskInstallEdgeAppArgs) string {
fmt.Println("Executing taskInstallEdgeApp for " + args.ID) fmt.Println("Executing taskInstallEdgeApp for " + args.ID)
result := edgeapps.SetEdgeAppInstalled(args.ID) result := edgeapps.SetEdgeAppInstalled(args.ID)
resultJSON, _ := json.Marshal(result) resultJSON, _ := json.Marshal(result)
taskGetEdgeApps() taskGetEdgeApps()
return string(resultJSON) return string(resultJSON)
} }
func taskRemoveEdgeApp(args taskRemoveEdgeAppArgs) string { func taskRemoveEdgeApp(args taskRemoveEdgeAppArgs) string {
fmt.Println("Executing taskRemoveEdgeApp for " + args.ID) fmt.Println("Executing taskRemoveEdgeApp for " + args.ID)
// Making sure the application is stopped before setting it as removed. // Making sure the application is stopped before setting it as removed.
edgeapps.StopEdgeApp(args.ID) edgeapps.StopEdgeApp(args.ID)
result := edgeapps.SetEdgeAppNotInstalled(args.ID) result := edgeapps.SetEdgeAppNotInstalled(args.ID)
resultJSON, _ := json.Marshal(result) resultJSON, _ := json.Marshal(result)
taskGetEdgeApps() taskGetEdgeApps()
return string(resultJSON) return string(resultJSON)
} }
func taskStartEdgeApp(args taskStartEdgeAppArgs) string { func taskStartEdgeApp(args taskStartEdgeAppArgs) string {
fmt.Println("Executing taskStartEdgeApp for " + args.ID) fmt.Println("Executing taskStartEdgeApp for " + args.ID)
result := edgeapps.RunEdgeApp(args.ID) result := edgeapps.RunEdgeApp(args.ID)
resultJSON, _ := json.Marshal(result) resultJSON, _ := json.Marshal(result)
taskGetEdgeApps() // This task will imediatelly update the entry in the api database. taskGetEdgeApps() // This task will imediatelly update the entry in the api database.
return string(resultJSON) return string(resultJSON)
} }
func taskStopEdgeApp(args taskStopEdgeAppArgs) string { func taskStopEdgeApp(args taskStopEdgeAppArgs) string {
fmt.Println("Executing taskStopEdgeApp for " + args.ID) fmt.Println("Executing taskStopEdgeApp for " + args.ID)
result := edgeapps.StopEdgeApp(args.ID) result := edgeapps.StopEdgeApp(args.ID)
resultJSON, _ := json.Marshal(result) resultJSON, _ := json.Marshal(result)
taskGetEdgeApps() // This task will imediatelly update the entry in the api database. taskGetEdgeApps() // This task will imediatelly update the entry in the api database.
return string(resultJSON) return string(resultJSON)
} }
func taskEnableOnline(args taskEnableOnlineArgs) string { func taskEnableOnline(args taskEnableOnlineArgs) string {
fmt.Println("Executing taskEnableOnline for " + args.ID) fmt.Println("Executing taskEnableOnline for " + args.ID)
result := edgeapps.EnableOnline(args.ID, args.InternetURL) result := edgeapps.EnableOnline(args.ID, args.InternetURL)
resultJSON, _ := json.Marshal(result) resultJSON, _ := json.Marshal(result)
taskGetEdgeApps() taskGetEdgeApps()
return string(resultJSON) return string(resultJSON)
} }
func taskDisableOnline(args taskDisableOnlineArgs) string { func taskDisableOnline(args taskDisableOnlineArgs) string {
fmt.Println("Executing taskDisableOnline for " + args.ID) fmt.Println("Executing taskDisableOnline for " + args.ID)
result := edgeapps.DisableOnline(args.ID) result := edgeapps.DisableOnline(args.ID)
resultJSON, _ := json.Marshal(result) resultJSON, _ := json.Marshal(result)
taskGetEdgeApps() taskGetEdgeApps()
return string(resultJSON) return string(resultJSON)
} }
func taskEnablePublicDashboard(args taskEnablePublicDashboardArgs) string { func taskEnablePublicDashboard(args taskEnablePublicDashboardArgs) string {
fmt.Println("Enabling taskEnablePublicDashboard") fmt.Println("Enabling taskEnablePublicDashboard")
result := edgeapps.EnablePublicDashboard(args.InternetURL) result := edgeapps.EnablePublicDashboard(args.InternetURL)
if result { if result {
utils.WriteOption("PUBLIC_DASHBOARD", "true") utils.WriteOption("PUBLIC_DASHBOARD", args.InternetURL)
return "{result: true}" return "{result: true}"
} }
return "{result: false}" return "{result: false}"
} }
func taskDisablePublicDashboard() string { func taskDisablePublicDashboard() string {
fmt.Println("Executing taskDisablePublicDashboard") fmt.Println("Executing taskDisablePublicDashboard")
result := edgeapps.DisablePublicDashboard() result := edgeapps.DisablePublicDashboard()
utils.WriteOption("PUBLIC_DASHBOARD", "")
if result { if result {
utils.WriteOption("PUBLIC_DASBOARD", "false")
return "{result: true}" return "{result: true}"
} }
return "{result: false}" return "{result: false}"
} }
func taskSetReleaseVersion() string { func taskSetReleaseVersion() string {
@ -448,27 +427,20 @@ func taskSetReleaseVersion() string {
} }
func taskGetEdgeApps() string { func taskGetEdgeApps() string {
fmt.Println("Executing taskGetEdgeApps") fmt.Println("Executing taskGetEdgeApps")
edgeApps := edgeapps.GetEdgeApps() edgeApps := edgeapps.GetEdgeApps()
edgeAppsJSON, _ := json.Marshal(edgeApps) edgeAppsJSON, _ := json.Marshal(edgeApps)
utils.WriteOption("EDGEAPPS_LIST", string(edgeAppsJSON)) utils.WriteOption("EDGEAPPS_LIST", string(edgeAppsJSON))
return string(edgeAppsJSON) return string(edgeAppsJSON)
} }
func taskGetSystemUptime() string { func taskGetSystemUptime() string {
fmt.Println("Executing taskGetSystemUptime") fmt.Println("Executing taskGetSystemUptime")
uptime := system.GetUptimeInSeconds() uptime := system.GetUptimeInSeconds()
utils.WriteOption("SYSTEM_UPTIME", uptime) utils.WriteOption("SYSTEM_UPTIME", uptime)
return uptime return uptime
} }
func taskGetStorageDevices() string { func taskGetStorageDevices() string {
@ -480,15 +452,18 @@ func taskGetStorageDevices() string {
utils.WriteOption("STORAGE_DEVICES_LIST", string(devicesJSON)) utils.WriteOption("STORAGE_DEVICES_LIST", string(devicesJSON))
return string(devicesJSON) return string(devicesJSON)
} }
func taskGetSystemIP() string { func taskGetSystemIP() string {
fmt.Println("Executing taskGetStorageDevices") fmt.Println("Executing taskGetStorageDevices")
ip := system.GetIP() ip := system.GetIP()
utils.WriteOption("IP_ADDRESS", ip) utils.WriteOption("IP_ADDRESS", ip)
return ip return ip
} }
func taskGetHostname() string {
fmt.Println("Executing taskGetHostname")
hostname := system.GetHostname()
utils.WriteOption("HOSTNAME", hostname)
return hostname
}

View File

@ -121,6 +121,14 @@ func GetPath(pathKey string) string {
targetPath = "/home/system/components/api/edgebox.env" targetPath = "/home/system/components/api/edgebox.env"
} }
case "apiPath":
if env["API_PATH"] != "" {
targetPath = env["APT_PATH"]
} else {
targetPath = "/home/system/components/api/"
}
case "edgeAppsPath": case "edgeAppsPath":
if env["EDGEAPPS_PATH"] != "" { if env["EDGEAPPS_PATH"] != "" {