Skip to content

Commit 90cd1f9

Browse files
added queue and exchange existance verification to source controller to avoid not existing errors (#961)
Co-authored-by: gabriel <[email protected]>
1 parent ff33d54 commit 90cd1f9

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

pkg/rabbit/types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"net/url"
2222

2323
rabbitv1beta1 "knative.dev/eventing-rabbitmq/third_party/pkg/apis/rabbitmq.com/v1beta1"
24+
25+
rmqv1beta1 "knative.dev/eventing-rabbitmq/third_party/pkg/client/clientset/versioned/typed/rabbitmq.com/v1beta1"
2426
)
2527

2628
type Result struct {
@@ -29,6 +31,7 @@ type Result struct {
2931
}
3032

3133
type Service interface {
34+
RabbitmqV1beta1() rmqv1beta1.RabbitmqV1beta1Interface
3235
RabbitMQURL(context.Context, *rabbitv1beta1.RabbitmqClusterReference) (*url.URL, error)
3336
ReconcileExchange(context.Context, *ExchangeArgs) (Result, error)
3437
ReconcileQueue(context.Context, *QueueArgs) (Result, error)

pkg/reconciler/source/rabbitmqsource.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,18 @@ func (r *Reconciler) reconcileRabbitObjects(ctx context.Context, src *v1alpha1.R
154154
src.Status.MarkSecretReady()
155155

156156
if src.Spec.RabbitmqResourcesConfig.Predeclared {
157+
_, err := r.rabbit.RabbitmqV1beta1().Exchanges(src.Namespace).Get(ctx, src.Spec.RabbitmqResourcesConfig.ExchangeName, metav1.GetOptions{})
158+
if apierrors.IsNotFound(err) {
159+
logger.Error("exchange not found", "exchange", src.Spec.RabbitmqResourcesConfig.ExchangeName)
160+
return err
161+
}
162+
163+
_, err = r.rabbit.RabbitmqV1beta1().Queues(src.Namespace).Get(ctx, src.Spec.RabbitmqResourcesConfig.QueueName, metav1.GetOptions{})
164+
if apierrors.IsNotFound(err) {
165+
logger.Error("queue not found", "queue", src.Spec.RabbitmqResourcesConfig.QueueName)
166+
return err
167+
}
168+
157169
logger.Info("predeclared set to true; no RabbitMQ objects to reconcile",
158170
"source", src.Name,
159171
"predeclared queue", src.Spec.RabbitmqResourcesConfig.QueueName)

0 commit comments

Comments
 (0)