MCPcopy Create free account
hub / github.com/Scalingo/cli / List

Function List

logdrains/list.go:26–75  ·  view source on GitHub ↗
(ctx context.Context, resourceName string, opts ListAddonOpts)

Source from the content-addressed store, hash-verified

24}
25
26func List(ctx context.Context, resourceName string, opts ListAddonOpts) error {
27 c, err := config.ScalingoClient(ctx)
28 if err != nil {
29 return errors.Wrapf(ctx, err, "fail to get Scalingo client")
30 }
31
32 appToPrint := []printableDrains{}
33
34 if opts.AddonID == "" {
35 logDrains, err := c.LogDrainsList(ctx, resourceName)
36 if err != nil {
37 return errors.Wrapf(ctx, err, "fail to list the log drains")
38 }
39 if len(logDrains) > 0 {
40 appToPrint = append(appToPrint, printableDrains{
41 AppName: resourceName,
42 DrainURLs: logDrains,
43 })
44 }
45 }
46
47 if opts.AddonID != "" || opts.WithAddons {
48 addons, err := c.AddonsList(ctx, resourceName)
49 if err != nil {
50 return errors.Wrapf(ctx, err, "fail to list addons")
51 }
52
53 for _, addon := range addons {
54 if opts.AddonID == addon.ID || opts.WithAddons {
55 drains, err := c.LogDrainsAddonList(ctx, resourceName, addon.ID)
56 if err != nil {
57 io.Status(err)
58 }
59 if len(drains) > 0 {
60 appToPrint = append(appToPrint, printableDrains{
61 AppName: addon.AddonProvider.Name,
62 DrainURLs: drains,
63 })
64 }
65
66 if !opts.WithAddons {
67 break
68 }
69 }
70 }
71 }
72
73 drawDrainsTable(appToPrint)
74 return nil
75}
76
77func drawDrainsTable(drains []printableDrains) {
78 t := tablewriter.NewWriter(os.Stdout)

Callers 1

log_drains.goFile · 0.92

Calls 3

ScalingoClientFunction · 0.92
StatusFunction · 0.92
drawDrainsTableFunction · 0.85

Tested by

no test coverage detected