Faster GetEdgeAppServices by skipping ones that should not be running

pull/21/merge
Paulo Truta 2024-04-17 20:40:00 +02:00
parent 3bb6200b1c
commit 4bb343769f
1 changed files with 16 additions and 4 deletions

View File

@ -416,12 +416,24 @@ func GetEdgeAppServices(ID string) []EdgeAppService {
var edgeAppServices []EdgeAppService var edgeAppServices []EdgeAppService
for _, serviceID := range serviceSlices { for _, serviceID := range serviceSlices {
cmdArgs = []string{"-f", wsPath + "/docker-compose.yml", "exec", "-T", serviceID, "echo", "'Service Check'"} shouldBeRunning := false
cmdResult := utils.Exec(wsPath, "docker-compose", cmdArgs)
isRunning := false isRunning := false
if cmdResult != "" {
isRunning = true // Check if the service is marked as "runnable" with the .run lockfile in the app folder
_, err := os.Stat(utils.GetPath(utils.EdgeAppsPath) + ID + "/" + serviceID + runnableFilename)
if !os.IsNotExist(err) {
shouldBeRunning = true
} }
// Check if the service is actually running
if shouldBeRunning {
cmdArgs = []string{"-f", wsPath + "/docker-compose.yml", "exec", "-T", serviceID, "echo", "'Service Check'"}
cmdResult := utils.Exec(wsPath, "docker-compose", cmdArgs)
if cmdResult != "" {
isRunning = true
}
}
edgeAppServices = append(edgeAppServices, EdgeAppService{ID: serviceID, IsRunning: isRunning}) edgeAppServices = append(edgeAppServices, EdgeAppService{ID: serviceID, IsRunning: isRunning})
} }