|
7 | 7 | "log" |
8 | 8 | "os" |
9 | 9 | "path/filepath" |
10 | | - "slices" |
11 | 10 | "strings" |
12 | 11 |
|
13 | 12 | "github.com/google/uuid" |
@@ -310,48 +309,44 @@ func ListSubsystemForStack(stackName string) ([]*SubSystem, error) { |
310 | 309 | return nil, err |
311 | 310 | } |
312 | 311 |
|
313 | | - rootlessContainers, err := dbox.ListContainers(false) |
314 | | - |
| 312 | + containers, err := dbox.ListContainers(false) |
315 | 313 | if err != nil { |
316 | 314 | return nil, err |
317 | 315 | } |
318 | 316 |
|
319 | | - // Listing rootful containers requires root privileges |
320 | | - // should not be used unless better solution is found |
321 | | - |
322 | | - // rootfullContainers, err := dbox.ListContainers(true) |
323 | | - |
324 | | - // if err != nil { |
325 | | - // return nil, err |
326 | | - // } |
327 | | - rootfullContainers := []dboxContainer{} |
| 317 | + subsystems := []*SubSystem{} |
| 318 | + for _, container := range containers { |
| 319 | + containerManager, ok := container.Labels["manager"] |
| 320 | + if !ok || containerManager != "apx" { |
| 321 | + continue |
| 322 | + } |
328 | 323 |
|
329 | | - stack, err := LoadStack(stackName) |
330 | | - if err != nil { |
331 | | - log.Printf("Error loading stack %s: %s", stackName, err) |
332 | | - return nil, err |
333 | | - } |
| 324 | + containerName, ok := container.Labels["name"] |
| 325 | + if !ok { |
| 326 | + continue |
| 327 | + } |
334 | 328 |
|
335 | | - containers := slices.Concat(rootlessContainers, rootfullContainers) |
| 329 | + containerStack, ok := container.Labels["stack"] |
| 330 | + if !ok || containerStack != stackName { |
| 331 | + continue |
| 332 | + } |
336 | 333 |
|
337 | | - subsystems := []*SubSystem{} |
338 | | - for _, container := range containers { |
339 | | - if _, ok := container.Labels["name"]; !ok { |
| 334 | + stack, err := LoadStack(containerStack) |
| 335 | + if err != nil { |
| 336 | + log.Printf("Error loading stack %s: %s", containerStack, err) |
340 | 337 | continue |
341 | 338 | } |
342 | 339 |
|
343 | | - internalName := genInternalName(container.Labels["name"]) |
| 340 | + internalName := genInternalName(containerName) |
344 | 341 | subsystem := &SubSystem{ |
345 | 342 | InternalName: internalName, |
346 | | - Name: container.Labels["name"], |
| 343 | + Name: containerName, |
347 | 344 | Stack: stack, |
348 | 345 | Status: container.Status, |
349 | | - ExportedPrograms: findExported(internalName, container.Labels["name"]), |
| 346 | + ExportedPrograms: findExported(internalName, containerName), |
350 | 347 | } |
351 | 348 |
|
352 | | - if subsystem.Stack.Name == stack.Name { |
353 | | - subsystems = append(subsystems, subsystem) |
354 | | - } |
| 349 | + subsystems = append(subsystems, subsystem) |
355 | 350 | } |
356 | 351 |
|
357 | 352 | return subsystems, nil |
|
0 commit comments