From 06498add6bef52a790cf6294503f4171786a1c85 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Thu, 1 Aug 2019 16:52:17 -0700
Subject: [PATCH] AMQP: allow no message prefix
For Fedora messages we do not actually want a prefix, the topic
is *just* openqa.job.done or whatever. This allows setting
'topic_prefix = ' in the config file to make that work.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
lib/OpenQA/WebAPI/Plugin/AMQP.pm | 3 ++-
t/23-amqp.t | 7 +++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/lib/OpenQA/WebAPI/Plugin/AMQP.pm b/lib/OpenQA/WebAPI/Plugin/AMQP.pm
index f6402c7b..d13b2baa 100644
--- a/lib/OpenQA/WebAPI/Plugin/AMQP.pm
+++ b/lib/OpenQA/WebAPI/Plugin/AMQP.pm
@@ -59,7 +59,8 @@ sub log_event {
$event =~ s/_/\./;
$event =~ s/_/\./;
- my $topic = $self->{config}->{amqp}{topic_prefix} . '.' . $event;
+ my $prefix = $self->{config}->{amqp}{topic_prefix};
+ my $topic = $prefix ? $prefix . '.' . $event : $event;
# seperate function for tests
$self->publish_amqp($topic, $event_data);
diff --git a/t/23-amqp.t b/t/23-amqp.t
index fef54d7c..933b86e5 100644
--- a/t/23-amqp.t
+++ b/t/23-amqp.t
@@ -236,6 +236,13 @@ subtest 'create parent group comment' => sub {
is($json->{parent_group_id}, 2000, 'parent group id');
};
+$t->app->config->{amqp}{topic_prefix} = '';
+
+subtest 'publish without topic prefix' => sub {
+ $t->post_ok("/api/v1/jobs" => form => $settings)->status_is(200);
+ is($published{'openqa.job.create'}->{ARCH}, "x86_64", 'got message with correct topic');
+};
+
# Now let's unmock publish_amqp so we can test it...
$plugin_mock->unmock('publish_amqp');
%published = ();
--
2.22.0