CID-472: fix ordering issues in name builder
This commit is contained in:
parent
b1d99d2e0a
commit
8f23862ef4
@ -63,9 +63,14 @@ class Devops::Executor::StackExecutor
|
||||
end
|
||||
|
||||
def increment_variable_value(variable_name)
|
||||
used_values = @already_used_incrementers_values[variable_name] || []
|
||||
prev_value = used_values.sort.detect {|t| !used_values.include?(t+1)}
|
||||
@incrementers_values[variable_name] = prev_value.to_i + 1
|
||||
used_values = (@already_used_incrementers_values[variable_name] || []).map(&:to_i)
|
||||
if !used_values || used_values.empty?
|
||||
next_value = 1
|
||||
else
|
||||
next_value = (1..used_values.size).detect {|i| !used_values.include?(i) }
|
||||
next_value ||= used_values.size + 1
|
||||
end
|
||||
@incrementers_values[variable_name] = next_value
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -63,8 +63,7 @@ class Devops::Executor::StackExecutor
|
||||
it "continues with next values if hash isn't empty" do
|
||||
set_mask('node-:increment-slave:')
|
||||
expect( builder_with_incrementers('slave' => []).build_node_name ).to eq 'node-01'
|
||||
expect( builder_with_incrementers('slave' => [1]).build_node_name ).to eq 'node-02'
|
||||
expect( builder_with_incrementers('slave' => [50]).build_node_name ).to eq 'node-51'
|
||||
expect( builder_with_incrementers('slave' => [1,2]).build_node_name ).to eq 'node-03'
|
||||
end
|
||||
|
||||
it 'uses missed value' do
|
||||
@ -72,6 +71,11 @@ class Devops::Executor::StackExecutor
|
||||
expect( builder_with_incrementers('slave' => [1,2,4]).build_node_name ).to eq 'node-03'
|
||||
end
|
||||
|
||||
it 'uses missed value at the beginning of sequence' do
|
||||
set_mask('node-:increment-slave:')
|
||||
expect( builder_with_incrementers('slave' => [3]).build_node_name ).to eq 'node-01'
|
||||
end
|
||||
|
||||
it 'properly recognize floats that may come from mongo' do
|
||||
set_mask('node-:increment-slave:')
|
||||
expect( builder_with_incrementers('slave' => [1.0]).build_node_name ).to eq 'node-02'
|
||||
@ -79,7 +83,7 @@ class Devops::Executor::StackExecutor
|
||||
|
||||
it 'could substitute different incrementers at once' do
|
||||
set_mask('node-:increment-slave:-:increment-master:')
|
||||
expect( builder_with_incrementers('slave' => [1], 'master' => [3]).build_node_name ).to eq 'node-02-04'
|
||||
expect( builder_with_incrementers('slave' => [1], 'master' => [1,2,3]).build_node_name ).to eq 'node-02-04'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user