Finalizing online support for dashboard, cloud version support
parent
4614a0f070
commit
3b3010c8f0
|
@ -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"}
|
||||||
|
|
|
@ -47,6 +47,10 @@ func GetIP() string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ip
|
return ip
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetHostname() string {
|
||||||
|
return utils.Exec("/", "hostname", []string{})
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
}
|
||||||
|
|
|
@ -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"] != "" {
|
||||||
|
|
Loading…
Reference in New Issue