forked from toolshed/abra
		
	review cleanups
This commit is contained in:
		| @ -3,6 +3,7 @@ package app | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"time" | ||||
|  | ||||
| 	"coopcloud.tech/abra/cli/internal" | ||||
| 	"coopcloud.tech/abra/pkg/autocomplete" | ||||
| @ -18,7 +19,51 @@ var prune bool | ||||
| var pruneFlag = &cli.BoolFlag{ | ||||
| 	Name:        "prune, p", | ||||
| 	Destination: &prune, | ||||
| 	Usage:       "Prunes unused containers, networks, and dangling images for stack", | ||||
| 	Usage:       "Prunes unused containers, networks, and dangling images for an app", | ||||
| } | ||||
|  | ||||
| func cleanup(c *cli.Context) error { | ||||
| 	for { | ||||
| 		if !prune { | ||||
| 			return nil | ||||
| 		} | ||||
| 		app := internal.ValidateApp(c) | ||||
| 		stackName := app.StackName() | ||||
| 		cl, err := client.New(app.Server) | ||||
| 		if err != nil { | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
| 		ctx := context.Background() | ||||
|  | ||||
| 		pruneFilters := filters.NewArgs() | ||||
| 		stackSearch := fmt.Sprintf("%s*", stackName) | ||||
| 		pruneFilters.Add("label", stackSearch) | ||||
| 		cr, err := cl.ContainersPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			logrus.Errorf(err.Error()) | ||||
| 			time.Sleep(time.Second) | ||||
| 			continue | ||||
| 		} | ||||
| 		logrus.Infof("Containers deleted: %s; Space reclaimed: %v", cr.ContainersDeleted, cr.SpaceReclaimed) | ||||
|  | ||||
| 		nr, err := cl.NetworksPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			logrus.Errorf(err.Error()) | ||||
| 			time.Sleep(time.Second) | ||||
| 			continue | ||||
| 		} | ||||
| 		logrus.Infof("Networks deleted %s", nr.NetworksDeleted) | ||||
|  | ||||
| 		ir, err := cl.ImagesPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			logrus.Errorf(err.Error()) | ||||
| 			time.Sleep(time.Second) | ||||
| 			continue | ||||
| 		} | ||||
| 		logrus.Infof("Images deleted: %s; Space reclaimed: %v", ir.ImagesDeleted, ir.SpaceReclaimed) | ||||
| 		break | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| var appUndeployCommand = cli.Command{ | ||||
| @ -64,41 +109,7 @@ volumes as eligible for pruning once undeployed. | ||||
| 		if err := stack.RunRemove(context.Background(), cl, rmOpts); err != nil { | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
|  | ||||
| 		return nil | ||||
| 	}, | ||||
| 	After: func(c *cli.Context) error { | ||||
| 		if !prune { | ||||
| 			return nil | ||||
| 		} | ||||
| 		app := internal.ValidateApp(c) | ||||
| 		stackName := app.StackName() | ||||
| 		cl, err := client.New(app.Server) | ||||
| 		if err != nil { | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
| 		ctx := context.Background() | ||||
|  | ||||
| 		pruneFilters := filters.NewArgs() | ||||
| 		stackSearch := fmt.Sprintf("%s*", stackName) | ||||
| 		pruneFilters.Add("label", stackSearch) | ||||
| 		cr, err := cl.ContainersPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		logrus.Infof("Containers deleted: %s; Space reclaimed: %v", cr.ContainersDeleted, cr.SpaceReclaimed) | ||||
|  | ||||
| 		nr, err := cl.NetworksPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		logrus.Infof("Networks deleted %s", nr.NetworksDeleted) | ||||
|  | ||||
| 		ir, err := cl.ImagesPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		logrus.Infof("Images deleted: %s; Space reclaimed: %v", ir.ImagesDeleted, ir.SpaceReclaimed) | ||||
| 		cleanup(c) | ||||
| 		return nil | ||||
| 	}, | ||||
| 	BashComplete: autocomplete.AppNameComplete, | ||||
|  | ||||
| @ -27,13 +27,11 @@ var volumesFilterFlag = &cli.BoolFlag{ | ||||
| } | ||||
|  | ||||
| var serverPruneCommand = cli.Command{ | ||||
| 	Name:    "prune", | ||||
| 	Aliases: []string{"p"}, | ||||
| 	Usage:   "Prune a managed server; Runs a docker system prune", | ||||
| 	Description: ` | ||||
| 	Prunes unused containers, networks, and dangling images | ||||
| 	`, | ||||
| 	ArgsUsage: "[<server>]", | ||||
| 	Name:        "prune", | ||||
| 	Aliases:     []string{"p"}, | ||||
| 	Usage:       "Prune a managed server; Runs a docker system prune", | ||||
| 	Description: "Prunes unused containers, networks, and dangling images", | ||||
| 	ArgsUsage:   "[<server>]", | ||||
| 	Flags: []cli.Flag{ | ||||
| 		allFilterFlag, | ||||
| 		volumesFilterFlag, | ||||
| @ -47,18 +45,18 @@ var serverPruneCommand = cli.Command{ | ||||
|  | ||||
| 		cl, err := client.New(serverName) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
| 		ctx := context.Background() | ||||
| 		cr, err := cl.ContainersPrune(ctx, args) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
| 		logrus.Infof("Containers deleted: %s; Space reclaimed: %v", cr.ContainersDeleted, cr.SpaceReclaimed) | ||||
|  | ||||
| 		nr, err := cl.NetworksPrune(ctx, args) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
| 		logrus.Infof("Networks deleted %s", nr.NetworksDeleted) | ||||
|  | ||||
| @ -68,14 +66,14 @@ var serverPruneCommand = cli.Command{ | ||||
| 		} | ||||
| 		ir, err := cl.ImagesPrune(ctx, pruneFilters) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 			logrus.Fatal(err) | ||||
| 		} | ||||
| 		logrus.Infof("Images deleted: %s; Space reclaimed: %v", ir.ImagesDeleted, ir.SpaceReclaimed) | ||||
|  | ||||
| 		if volunesFilter { | ||||
| 			vr, err := cl.VolumesPrune(ctx, args) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 				logrus.Fatal(err) | ||||
| 			} | ||||
| 			logrus.Infof("Volumes deleted: %s; Space reclaimed: %v", vr.VolumesDeleted, vr.SpaceReclaimed) | ||||
| 		} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user