func Cleanup()

in pubsublite/internal/psltest/util.go [31:91]


func Cleanup(t *testing.T, client *pubsublite.AdminClient, proj, region, namePrefix string, zones []string) {
	ctx := context.Background()

	topicSubstring := "/topics/" + namePrefix
	subscriptionSubstring := "/subscriptions/" + namePrefix
	reservationSubstring := "/reservations/" + namePrefix

	for _, zone := range zones {
		parent := fmt.Sprintf("projects/%s/locations/%s", proj, zone)
		topicIter := client.Topics(ctx, parent)
		for {
			topic, err := topicIter.Next()
			if err == iterator.Done {
				break
			}
			if err != nil {
				t.Fatalf("topicIter.Next got err: %v", err)
			}
			if !strings.Contains(topic.Name, topicSubstring) {
				continue
			}
			if err := client.DeleteTopic(ctx, topic.Name); err != nil {
				t.Fatalf("AdminClient.DeleteTopic got err: %v", err)
			}
		}

		subIter := client.Subscriptions(ctx, parent)
		for {
			sub, err := subIter.Next()
			if err == iterator.Done {
				break
			}
			if err != nil {
				t.Fatalf("subIter.Next() got err: %v", err)
			}
			if !strings.Contains(sub.Name, subscriptionSubstring) {
				continue
			}
			if err := client.DeleteSubscription(ctx, sub.Name); err != nil {
				t.Fatalf("AdminClient.DeleteSubscription got err: %v", err)
			}
		}
	}

	resIter := client.Reservations(ctx, fmt.Sprintf("projects/%s/locations/%s", proj, region))
	for {
		res, err := resIter.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			t.Fatalf("resIter.Next() got err: %v", err)
		}
		if !strings.Contains(res.Name, reservationSubstring) {
			continue
		}
		if err := client.DeleteReservation(ctx, res.Name); err != nil {
			t.Fatalf("AdminClient.DeleteReservation got err: %v", err)
		}
	}
}