github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/subtool/cleanup.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/Cloud-Foundations/Dominator/lib/log" 7 "github.com/Cloud-Foundations/Dominator/lib/srpc" 8 "github.com/Cloud-Foundations/Dominator/proto/sub" 9 "github.com/Cloud-Foundations/Dominator/sub/client" 10 ) 11 12 func cleanupSubcommand(args []string, logger log.DebugLogger) error { 13 srpcClient := getSubClient(logger) 14 defer srpcClient.Close() 15 if err := cleanup(srpcClient); err != nil { 16 return fmt.Errorf("Error cleaning up: %s", err) 17 } 18 return nil 19 } 20 21 func cleanup(srpcClient *srpc.Client) error { 22 var request sub.PollRequest 23 var reply sub.PollResponse 24 if err := client.CallPoll(srpcClient, request, &reply); err != nil { 25 return err 26 } 27 if len(reply.ObjectCache) < 1 { 28 return nil 29 } 30 logger.Printf("Deleting: %d objects\n", len(reply.ObjectCache)) 31 return client.Cleanup(srpcClient, reply.ObjectCache) 32 }