From 0a9e188d303eae7c0afc6ec986cc9f42c6830891 Mon Sep 17 00:00:00 2001
From: Takashi Kajinami <tkajinam@redhat.com>
Date: Thu, 13 Jul 2023 21:59:21 +0900
Subject: [PATCH] decision_engine: Accept string/array values for weights

Change-Id: I14c325d116a7a062fe049064946ce61f16b703b4
---
 manifests/decision_engine.pp                 | 5 ++---
 spec/classes/watcher_decision_engine_spec.rb | 8 +++++---
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/manifests/decision_engine.pp b/manifests/decision_engine.pp
index 4a2cb99..050371f 100644
--- a/manifests/decision_engine.pp
+++ b/manifests/decision_engine.pp
@@ -67,11 +67,10 @@ class watcher::decision_engine (
   include watcher::params
   include watcher::deps
 
-  if !is_service_default($weights) {
-    validate_legacy(Hash, 'validate_hash', $weights)
+  if $weights =~ Hash {
     $weights_real = join(sort(join_keys_to_values($weights, ':')), ',')
   } else {
-    $weights_real = $weights
+    $weights_real = join(any2array($weights), ',')
   }
 
   if !is_service_default($decision_engine_notification_topics) or
diff --git a/spec/classes/watcher_decision_engine_spec.rb b/spec/classes/watcher_decision_engine_spec.rb
index 7e6903a..2430115 100644
--- a/spec/classes/watcher_decision_engine_spec.rb
+++ b/spec/classes/watcher_decision_engine_spec.rb
@@ -69,8 +69,10 @@ describe 'watcher::decision_engine' do
           :decision_engine_publisher_id        => '123456',
           :decision_engine_workers             => '10',
           :planner                             => 'NoPlanner',
-          :weights                             => {'foo'  => 'fooValue',
-                                               'foo2' => 'fooValue2'},
+          :weights                             => {
+            'foo1' => 'fooValue1',
+            'foo2' => 'fooValue2'
+          },
         }
       end
       it 'configures watcher decision engine' do
@@ -80,7 +82,7 @@ describe 'watcher::decision_engine' do
         is_expected.to contain_watcher_config('watcher_decision_engine/publisher_id').with_value('123456')
         is_expected.to contain_watcher_config('watcher_decision_engine/max_workers').with_value('10')
         is_expected.to contain_watcher_config('watcher_planner/planner').with_value('NoPlanner')
-        is_expected.to contain_watcher_config('watcher_planners.default/weights').with_value('foo2:fooValue2,foo:fooValue')
+        is_expected.to contain_watcher_config('watcher_planners.default/weights').with_value('foo1:fooValue1,foo2:fooValue2')
       end
     end
   end