| 43 | } |
| 44 | |
| 45 | func containersToStacks(containers []container.Summary) ([]api.Stack, error) { |
| 46 | containersByLabel, keys, err := groupContainerByLabel(containers, api.ProjectLabel) |
| 47 | if err != nil { |
| 48 | return nil, err |
| 49 | } |
| 50 | var projects []api.Stack |
| 51 | for _, project := range keys { |
| 52 | configFiles, err := combinedConfigFiles(containersByLabel[project]) |
| 53 | if err != nil { |
| 54 | logrus.Warn(err.Error()) |
| 55 | configFiles = "N/A" |
| 56 | } |
| 57 | |
| 58 | projects = append(projects, api.Stack{ |
| 59 | ID: project, |
| 60 | Name: project, |
| 61 | Status: combinedStatus(containerToState(containersByLabel[project])), |
| 62 | ConfigFiles: configFiles, |
| 63 | }) |
| 64 | } |
| 65 | return projects, nil |
| 66 | } |
| 67 | |
| 68 | func combinedConfigFiles(containers []container.Summary) (string, error) { |
| 69 | configFiles := []string{} |