func main()

in hack/code/instancetype_testdata_gen/main.go [34:82]


func main() {
	fmt.Println("starting generation of sku data...")
	sub := os.Getenv("SUBSCRIPTION_ID")
	path, region, selectedSkus := os.Args[2], os.Args[3], os.Args[4]
	skus := strings.Split(selectedSkus, ",")
	targetSkus := map[string]struct{}{}
	for _, sku := range skus {
		targetSkus[sku] = struct{}{}
	}
	if sub == "" {
		fmt.Println("SUBSCRIPTION_ID env var is required")
		os.Exit(1)
	}
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		fmt.Printf("failed to create credential: %v", err)
		os.Exit(1)
	}

	ctx := context.Background()
	if err != nil {
		fmt.Printf("failed to create client factory: %v", err)
	}

	client, err := armcompute.NewResourceSKUsClient(sub, cred, nil)
	if err != nil {
		panic(err)
	}
	pager := client.NewListPager(&armcompute.ResourceSKUsClientListOptions{
		// filter by location
		Filter: lo.ToPtr(fmt.Sprintf("location eq '%s'", region)),
	})
	skuData := []*armcompute.ResourceSKU{}
	for pager.More() {
		page, err := pager.NextPage(ctx)
		if err != nil {
			fmt.Printf("failed to get next page: %v", err)
		}
		for _, sku := range page.Value {
			if _, ok := targetSkus[*sku.Name]; !ok {
				continue
			}
			skuData = append(skuData, sku)
		}
	}
	fmt.Println("Successfully Fetched all the SKUs", len(skuData))
	writeSkuData(skuData, region, path)
	fmt.Println("Successfully Generated all the SKUs")
}