From b163c199eabc4d3b1a6bb0a5738fb16bd624e73a Mon Sep 17 00:00:00 2001
From: Matthew Treinish <mtreinish@kortar.org>
Date: Fri, 24 Mar 2017 09:50:02 -0400
Subject: [PATCH] Enable firehose reporting on subunit workers

This commit enables the mqtt support in the subunit gearman worker so
the workers will report over mqtt when they process a subunit file.

Change-Id: Ifff2f57740f160e328c0548254e16b04e6ab6c4e
Depends-On: Ibd13b737eccf52863a69d20843cb7d50242f7bb9
---
 manifests/site.pp                              |  1 +
 .../files/logstash/jenkins-subunit-worker.yaml |  3 ---
 .../manifests/subunit_worker.pp                | 18 +++++++++++++++---
 .../logstash/jenkins-subunit-worker.yaml.erb   |  9 +++++++++
 4 files changed, 25 insertions(+), 6 deletions(-)
 delete mode 100644 modules/openstack_project/files/logstash/jenkins-subunit-worker.yaml
 create mode 100644 modules/openstack_project/templates/logstash/jenkins-subunit-worker.yaml.erb

diff --git a/manifests/site.pp b/manifests/site.pp
index c148a7d6d0..f7d8263fd0 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -505,6 +505,7 @@ node /^subunit-worker\d+\.openstack\.org$/ {
   class { 'openstack_project::subunit_worker':
     subunit2sql_db_host => hiera('subunit2sql_db_host', ''),
     subunit2sql_db_pass => hiera('subunit2sql_db_password', ''),
+    mqtt_pass       => hiera('mqtt_service_user_password'),
   }
 }
 
diff --git a/modules/openstack_project/files/logstash/jenkins-subunit-worker.yaml b/modules/openstack_project/files/logstash/jenkins-subunit-worker.yaml
deleted file mode 100644
index 76bdf4ab86..0000000000
--- a/modules/openstack_project/files/logstash/jenkins-subunit-worker.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-gearman-host: logstash.openstack.org
-gearman-port: 4730
-config: /etc/subunit2sql/subunit2sql.conf
diff --git a/modules/openstack_project/manifests/subunit_worker.pp b/modules/openstack_project/manifests/subunit_worker.pp
index fd71d587c9..a8ea763b3d 100644
--- a/modules/openstack_project/manifests/subunit_worker.pp
+++ b/modules/openstack_project/manifests/subunit_worker.pp
@@ -17,11 +17,23 @@
 class openstack_project::subunit_worker (
   $subunit2sql_db_host,
   $subunit2sql_db_pass,
+  $mqtt_user = 'infra',
+  $mqtt_pass = undef,
 ) {
+
+  file { '/etc/subunit2sql/subunit-woker.yaml':
+    ensure  => file,
+    owner   => 'root',
+    group   => 'root',
+    mode    => '0555',
+    content => template('openstack_project/logstash/jenkins-subunit-worker.yaml.erb'),
+  }
+
   include subunit2sql
   subunit2sql::worker { 'A':
-    config_file        => 'puppet:///modules/openstack_project/logstash/jenkins-subunit-worker.yaml',
-    db_host            => $subunit2sql_db_host,
-    db_pass            => $subunit2sql_db_pass,
+    config_file => '/etc/subunit2sql/subunit-woker.yaml',
+    db_host     => $subunit2sql_db_host,
+    db_pass     => $subunit2sql_db_pass,
   }
+
 }
diff --git a/modules/openstack_project/templates/logstash/jenkins-subunit-worker.yaml.erb b/modules/openstack_project/templates/logstash/jenkins-subunit-worker.yaml.erb
new file mode 100644
index 0000000000..5a19c03534
--- /dev/null
+++ b/modules/openstack_project/templates/logstash/jenkins-subunit-worker.yaml.erb
@@ -0,0 +1,9 @@
+gearman-host: logstash.openstack.org
+gearman-port: 4730
+config: /etc/subunit2sql/subunit2sql.conf
+mqtt-host: firehose.openstack.org
+mqtt-port: 8883
+mqtt-topic: gearman-subunit/<%= @hostname %>
+mqtt-user: <%= @mqtt_user %>
+mqtt-pass: <%= @mqtt_pass %>
+mqtt-ca_certs: "/etc/ca-certificates/extracted/tls-ca-bundle.pem"