Skip to content

Commit f70f22c

Browse files
committed
Add new parameter autoconvert for rabbitmq_parameter
1 parent 04e11ef commit f70f22c

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

lib/puppet/type/rabbitmq_parameter.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@
1919
'expires' => '360000',
2020
},
2121
}
22+
rabbitmq_parameter { 'documentumShovelNoMunging@/':
23+
component_name => '',
24+
value => {
25+
'src-uri' => 'amqp://',
26+
'src-exchange' => 'my-exchange',
27+
'src-exchange-key' => '6',
28+
'src-queue' => 'my-queue',
29+
'dest-uri' => 'amqp://remote-server',
30+
'dest-exchange' => 'another-exchange',
31+
},
32+
autoconvert => false,
33+
}
2234
DESC
2335

2436
ensurable do
@@ -50,6 +62,12 @@
5062
end
5163
end
5264

65+
newparam(:autoconvert) do
66+
desc 'whether numeric strings from `value` should be converted to int automatically'
67+
newvalues(:true, :false)
68+
defaultto(:true)
69+
end
70+
5371
newproperty(:value) do
5472
desc 'A hash of values to use with the component name you are setting'
5573
validate do |value|
@@ -78,6 +96,7 @@ def validate_value(value)
7896
end
7997

8098
def munge_value(value)
99+
return value if self[:autoconvert] == :false
81100
value.each do |k, v|
82101
value[k] = v.to_i if v =~ %r{\A[-+]?[0-9]+\z}
83102
end

spec/unit/puppet/type/rabbitmq_parameter_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,12 @@
8282
parameter[:value] = value
8383
expect(parameter[:value]['myparameter']).to eq(1_800_000)
8484
end
85+
86+
it 'does not convert numeric string to integer when autoconvert is set to false' do
87+
parameter[:autoconvert] = false
88+
value = { 'myparameter' => '1800000' }
89+
parameter[:value] = value
90+
expect(parameter[:value]['myparameter']).to eq('1800000')
91+
expect(parameter[:value]['myparameter']).to be_kind_of(String)
92+
end
8593
end

0 commit comments

Comments
 (0)