in container_images/cleanerupper/main.go [70:220]
func main() {
flag.Parse()
ctx := context.Background()
cutoff := now.Add(time.Duration(-1) * *duration)
policy := cleanerupper.AgePolicy(cutoff)
ps := strings.Split(*projects, ",")
if len(ps) == 0 {
log.Fatal("Need to provide at least 1 project")
}
if *dryRun {
fmt.Println("-dry_run flag used, no actual action will be taken")
}
var clients, stagingClients cleanerupper.Clients
var err error
clients.Daisy, err = daisyCompute.NewClient(ctx, option.WithCredentialsFile(*oauthPath))
if err != nil {
log.Fatal(err)
}
stagingClients.Daisy = clients.Daisy
clients.OSConfig, err = osconfig.NewClient(ctx, option.WithCredentialsFile(*oauthPath))
if err != nil {
log.Fatal(err)
}
stagingClients.OSConfig, err = osconfig.NewClient(ctx, option.WithCredentialsFile(*oauthPath), option.WithEndpoint("staging-osconfig.sandbox.googleapis.com:443"))
if err != nil {
log.Fatal(err)
}
clients.OSConfigZonal, err = osconfigV1alpha.NewOsConfigZonalClient(ctx, option.WithCredentialsFile(*oauthPath))
if err != nil {
log.Fatal(err)
}
stagingClients.OSConfigZonal, err = osconfigV1alpha.NewOsConfigZonalClient(ctx, option.WithCredentialsFile(*oauthPath), option.WithEndpoint("staging-osconfig.sandbox.googleapis.com:443"))
if err != nil {
log.Fatal(err)
}
for _, p := range ps {
fmt.Println("Cleaning project", p)
// We do all of this sequentially so as not to DOS the API.
if *instances {
fmt.Println("Cleaning instances")
insts, errs := cleanerupper.CleanInstances(clients, p, policy, *dryRun)
for _, i := range insts {
fmt.Printf(" - %s\n", i)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *disks {
fmt.Println("Cleaning disks")
cleaned, errs := cleanerupper.CleanDisks(clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *loadBalancers {
fmt.Println("Cleaning Load Balancer Resources")
cleaned, errs := cleanerupper.CleanLoadBalancerResources(clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *networks {
fmt.Println("Cleaning networks")
cleaned, errs := cleanerupper.CleanNetworks(clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *images {
fmt.Println("Cleaning images")
cleaned, errs := cleanerupper.CleanImages(clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *machineImages {
fmt.Println("Cleaning machine images")
cleaned, errs := cleanerupper.CleanMachineImages(clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *snapshots {
fmt.Println("Cleaning snapshots")
cleaned, errs := cleanerupper.CleanSnapshots(clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *guestPolicies {
fmt.Println("Cleaning guest policies")
cleaned, errs := cleanerupper.CleanGuestPolicies(ctx, clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
fmt.Println("Cleaning staging guest policies")
cleaned, errs = cleanerupper.CleanGuestPolicies(ctx, stagingClients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
if *osPolicyAssignments {
fmt.Println("Cleaning os policy assignments")
cleaned, errs := cleanerupper.CleanOSPolicyAssignments(ctx, clients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
fmt.Println("Cleaning staing os policy assignments")
cleaned, errs = cleanerupper.CleanOSPolicyAssignments(ctx, stagingClients, p, policy, *dryRun)
for _, c := range cleaned {
fmt.Printf(" - %s\n", c)
}
for _, e := range errs {
fmt.Println(e)
}
}
fmt.Println()
}
}