func()

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
}