Skip to content

Commit 6957511

Browse files
authored
Merge pull request #847 from magicmemories/feature/delivery-limit-policy
Allow delivery-limit policy to be set
2 parents 2bb0583 + d23b83c commit 6957511

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

lib/puppet/type/rabbitmq_policy.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,18 @@ def validate_definition(definition)
128128
raise ArgumentError, "Invalid shards-per-node value '#{shards_per_node_val}'"
129129
end
130130
end
131-
if definition.key? 'ha-sync-batch-size' # rubocop:disable Style/GuardClause
131+
if definition.key? 'ha-sync-batch-size'
132132
ha_sync_batch_size_val = definition['ha-sync-batch-size']
133133
unless ha_sync_batch_size_val.to_i.to_s == ha_sync_batch_size_val
134134
raise ArgumentError, "Invalid ha-sync-batch-size value '#{ha_sync_batch_size_val}'"
135135
end
136136
end
137+
if definition.key? 'delivery-limit' # rubocop:disable Style/GuardClause
138+
delivery_limit_val = definition['delivery-limit']
139+
unless delivery_limit_val.to_i.to_s == delivery_limit_val
140+
raise ArgumentError, "Invalid delivery-limit value '#{delivery_limit_val}'"
141+
end
142+
end
137143
end
138144

139145
def munge_definition(definition)
@@ -158,6 +164,9 @@ def munge_definition(definition)
158164
if definition.key? 'ha-sync-batch-size'
159165
definition['ha-sync-batch-size'] = definition['ha-sync-batch-size'].to_i
160166
end
167+
if definition.key? 'delivery-limit'
168+
definition['delivery-limit'] = definition['delivery-limit'].to_i
169+
end
161170
definition
162171
end
163172
end

spec/unit/puppet/type/rabbitmq_policy_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,19 @@
180180
end.to raise_error(Puppet::Error, %r{Invalid ha-sync-batch-size value.*future})
181181
end
182182

183+
it 'accepts and converts the delivery-limit value' do
184+
definition = { 'delivery-limit' => '3' }
185+
policy[:definition] = definition
186+
expect(policy[:definition]['delivery-limit']).to eq(3)
187+
end
188+
189+
it 'does not accept non-numeric delivery-limit value' do
190+
definition = { 'delivery-limit' => 'future' }
191+
expect do
192+
policy[:definition] = definition
193+
end.to raise_error(Puppet::Error, %r{Invalid delivery-limit value.*future})
194+
end
195+
183196
context 'accepts list value in ha-params when ha-mode = nodes' do
184197
before do
185198
policy[:definition] = definition

0 commit comments

Comments
 (0)