diff --git a/.gitignore b/.gitignore index d930387d..a6de7d5d 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ spec/reports test/tmp test/version_tmp tmp +.idea/ diff --git a/lib/makara/proxy.rb b/lib/makara/proxy.rb index e3e661fb..d4f582b0 100644 --- a/lib/makara/proxy.rb +++ b/lib/makara/proxy.rb @@ -76,6 +76,19 @@ def stick_to_master!(persist = true) Makara::Context.stick(@id, stickiness_duration) end + def with_master + stick_to_master! + yield if block_given? + ensure + release_master! + end + + def release_master! + if stuck_to_master? + Makara::Context.release(@id) + end + end + def strategy_for(role) strategy_class_for(strategy_name_for(role)).new(self) end