in internal/output/gcppubsub/gcppubsub.go [104:140]
func (o *Output) clear() error {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// Clear all topics.
topics := o.client.Topics(ctx)
for {
topic, err := topics.Next()
if errors.Is(err, iterator.Done) {
break
}
if err != nil {
return err
}
if err = topic.Delete(ctx); err != nil {
return fmt.Errorf("failed to delete topic %v: %w", topic.ID(), err)
}
}
// Clear all subscriptions.
subs := o.client.Subscriptions(ctx)
for {
sub, err := subs.Next()
if errors.Is(err, iterator.Done) {
break
}
if err != nil {
return err
}
if err = sub.Delete(ctx); err != nil {
return fmt.Errorf("failed to delete subscription %v: %w", sub.ID(), err)
}
}
return nil
}