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