From ad63a4b9404a1e5b6ebf6d77bb2f22ea4532cfb9 Mon Sep 17 00:00:00 2001
From: Dan Prince <dprince@redhat.com>
Date: Sun, 8 May 2016 19:03:41 -0400
Subject: [PATCH] Add params to configure zaqar storage pipelines

This patch adds parameters to configure the storage/*_pipeline
parameters for zaqar. These parameters are quite useful is you
wish to recieve notifications for Zaqar. In particular the
message_pipeline would often get set to 'zaqar.notification.notifier'
so that messages that have been subscribed to could be recieved.

Zaqar upstream has these set to nothing upstream so for now
setting the default to $os_service_default seems reasonable.

Change-Id: I14eade5ef0ac64f8856bfa455c4f9aaf51dd6c8d
---
 manifests/init.pp               | 50 +++++++++++++++++++++++++++------
 spec/classes/zaqar_init_spec.rb | 10 ++++++-
 2 files changed, 50 insertions(+), 10 deletions(-)

diff --git a/manifests/init.pp b/manifests/init.pp
index 79dd319..4062d3a 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -35,6 +35,30 @@
 #   the catalogue/control plane data is kept. (boolean value)
 #   Default false
 #
+# [*queue_pipeline*]
+#   Pipeline to use for processing queue operations.
+#   This pipeline will be consumed before calling the storage driver's
+#   controller methods.
+#   Defaults to $::os_service_default.
+#
+# [*message_pipeline*]
+#   Pipeline to use for processing message operations.
+#   This pipeline will be consumed before calling the storage driver's
+#   controller methods.
+#   Defaults to $::os_service_default.
+#
+# [*claim_pipeline*]
+#   Pipeline to use for processing claim operations. This
+#   pipeline will be consumed before calling the storage driver's controller
+#   methods.
+#   Defaults to $::os_service_default.
+#
+# [*subscription_pipeline*]
+#   Pipeline to use for processing subscription
+#   operations. This pipeline will be consumed before calling the storage
+#   driver's controller methods.
+#   Defaults to $::os_service_default.
+#
 # [*unreliable*]
 #   Disable all reliability constraints. (boolean value)
 #   Default false
@@ -49,15 +73,19 @@
 #
 class zaqar(
   $admin_password,
-  $auth_uri          = 'http://localhost:5000/',
-  $identity_uri      = 'http://localhost:35357/',
-  $admin_user        = 'zaqar',
-  $admin_tenant_name = 'services',
-  $auth_strategy     = 'keystone',
-  $admin_mode        = $::os_service_default,
-  $unreliable        = $::os_service_default,
-  $pooling           = $::os_service_default,
-  $package_name      = $::zaqar::params::package_name,
+  $auth_uri                 = 'http://localhost:5000/',
+  $identity_uri             = 'http://localhost:35357/',
+  $admin_user               = 'zaqar',
+  $admin_tenant_name        = 'services',
+  $auth_strategy            = 'keystone',
+  $admin_mode               = $::os_service_default,
+  $unreliable               = $::os_service_default,
+  $pooling                  = $::os_service_default,
+  $queue_pipeline           = $::os_service_default,
+  $message_pipeline         = $::os_service_default,
+  $claim_pipeline           = $::os_service_default,
+  $subscription_pipeline    = $::os_service_default,
+  $package_name             = $::zaqar::params::package_name,
   $package_ensure    = 'present',
 ) inherits zaqar::params {
 
@@ -77,6 +105,10 @@ class zaqar(
     'DEFAULT/admin_mode'                   : value  => $admin_mode;
     'DEFAULT/unreliable'                   : value  => $unreliable;
     'DEFAULT/pooling'                      : value  => $pooling;
+    'storage/queue_pipeline'               : value  => $queue_pipeline;
+    'storage/message_pipeline'             : value  => $message_pipeline;
+    'storage/claim_pipeline'               : value  => $claim_pipeline;
+    'storage/subscription_pipeline'        : value  => $subscription_pipeline;
   }
 
 }
diff --git a/spec/classes/zaqar_init_spec.rb b/spec/classes/zaqar_init_spec.rb
index b1c88fa..107b4dd 100644
--- a/spec/classes/zaqar_init_spec.rb
+++ b/spec/classes/zaqar_init_spec.rb
@@ -48,7 +48,11 @@ describe 'zaqar' do
         req_params.merge!({
           :admin_mode  => true,
           :unreliable  => true,
-          :pooling  => true
+          :pooling  => true,
+          :queue_pipeline => 'zaqar_pipeline1',
+          :message_pipeline => 'zaqar_pipeline2',
+          :claim_pipeline => 'zaqar_pipeline3',
+          :subscription_pipeline => 'zaqar_pipeline4',
         })
       end
 
@@ -56,6 +60,10 @@ describe 'zaqar' do
         is_expected.to contain_zaqar_config('DEFAULT/admin_mode').with_value(true)
         is_expected.to contain_zaqar_config('DEFAULT/unreliable').with_value(true)
         is_expected.to contain_zaqar_config('DEFAULT/pooling').with_value(true)
+        is_expected.to contain_zaqar_config('storage/queue_pipeline').with_value('zaqar_pipeline1')
+        is_expected.to contain_zaqar_config('storage/message_pipeline').with_value('zaqar_pipeline2')
+        is_expected.to contain_zaqar_config('storage/claim_pipeline').with_value('zaqar_pipeline3')
+        is_expected.to contain_zaqar_config('storage/subscription_pipeline').with_value('zaqar_pipeline4')
       end
     end
   end