func main()

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()
	}
}