Fix swift-ring-builder ordering
Tie ring_*_device resource to ring_devices resource by setting autorequire, thus making ring_devices resource run after ring_*_device and ensure it is before rebalance anchor How to test: 1) install swift binaries 2) run: rm /var/lib/puppet/state/graphs/* && puppet apply --graph -vd --modulepath /home/vvk/git/fuel/deployment/puppet/ -e 'anchor{"rebalance_begin":} Ring_devices<||> -> Anchor['rebalance_begin'] ring_devices{'all': storages=> [{"storage_address"=>"10.10.10.10"}] }' 3) read /var/lib/puppet/state/graphs/relationships.dot The purpose is to set all ring_*_device before Anchor['rebalance_begin'] Change-Id: If9e724342eeeb8399093103a875719b82a429bc5 Closes-Bug: #1305826
This commit is contained in:
parent
c83a8d6291
commit
d3b4818b7b
|
@ -21,6 +21,32 @@ Puppet::Type.newtype(:ring_devices) do
|
|||
end
|
||||
end
|
||||
|
||||
autorequire(:ring_account_device) do
|
||||
autos = []
|
||||
catalog.resources.find_all { |r| r.is_a?(Puppet::Type.type("ring_account_device".to_sym)) }.each do |r|
|
||||
autos << r
|
||||
end
|
||||
autos
|
||||
end
|
||||
|
||||
autorequire(:ring_object_device) do
|
||||
autos = []
|
||||
catalog.resources.find_all { |r| r.is_a?(Puppet::Type.type("ring_object_device".to_sym)) }.each do |r|
|
||||
autos << r
|
||||
end
|
||||
autos
|
||||
end
|
||||
|
||||
autorequire(:ring_container_device) do
|
||||
autos = []
|
||||
catalog.resources.find_all { |r| r.is_a?(Puppet::Type.type("ring_container_device".to_sym)) }.each do |r|
|
||||
autos << r
|
||||
end
|
||||
autos
|
||||
end
|
||||
|
||||
|
||||
|
||||
# Default resources for swift ring builder
|
||||
def resources
|
||||
resources = []
|
||||
|
|
|
@ -48,12 +48,6 @@ class swift::ringbuilder(
|
|||
|
||||
Swift::Ringbuilder::Create<||> -> Ring_devices<||>
|
||||
|
||||
Ring_devices<||> -> Ring_object_device <| |> -> Anchor['rebalance_begin']
|
||||
|
||||
Ring_devices<||> -> Ring_account_device <| |> -> Anchor['rebalance_begin']
|
||||
|
||||
Ring_devices<||> -> Ring_container_device <| |> -> Anchor['rebalance_begin']
|
||||
|
||||
|
||||
Ring_devices<||> -> Anchor['rebalance_begin']
|
||||
|
||||
}
|
||||
|
|
|
@ -18,13 +18,14 @@ define swift::ringbuilder::rebalance() {
|
|||
anchor {'rebalance_end':}
|
||||
}
|
||||
|
||||
Anchor['rebalance_begin'] ->
|
||||
Anchor['rebalance_begin'] -> Exec["hours_passed_${name}"] -> Exec["rebalance_${name}"] -> Anchor["rebalance_end"]
|
||||
|
||||
exec { "hours_passed_${name}":
|
||||
command => "swift-ring-builder /etc/swift/${name}.builder pretend_min_part_hours_passed",
|
||||
path => ['/usr/bin','/bin'],
|
||||
user => 'swift',
|
||||
returns => [0,1],
|
||||
}->
|
||||
}
|
||||
|
||||
exec { "rebalance_${name}":
|
||||
command => "swift-ring-builder /etc/swift/${name}.builder rebalance",
|
||||
|
@ -32,8 +33,7 @@ define swift::ringbuilder::rebalance() {
|
|||
timeout => 900,
|
||||
user => 'swift',
|
||||
returns => [0,1],
|
||||
} ->
|
||||
Anchor['rebalance_end']
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue