File tree Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -296,7 +296,19 @@ def require_keys!(required = [], **options)
296296 end
297297end
298298
299+ def hostname
300+ v = %w( KUBE_HOSTNAME KUBE_HOST_NAME KUBE_NODENAME KUBE_NODE_NAME NODENAME NODE_NAME HOSTNAME HOST_NAME )
301+ var = v . find { |x | ENV . include? ( x ) }
302+ ENV [ var ] if var
303+ end
304+
305+ def force_host_circuits?
306+ return false unless ENV . include? ( 'SEMIAN_CIRCUIT_BREAKER_FORCE_HOST' )
307+ ENV [ 'SEMIAN_CIRCUIT_BREAKER_FORCE_HOST' ] . split ( ',' ) . include? ( hostname )
308+ end
309+
299310if Semian . semaphores_enabled?
311+ ENV [ 'SEMIAN_CIRCUIT_BREAKER_IMPL' ] = 'host' if force_host_circuits?
300312 require 'semian/semian'
301313else
302314 Semian ::MAX_TICKETS = 0
Original file line number Diff line number Diff line change @@ -91,4 +91,15 @@ def test_disabled_via_semian_wide_env_var
9191 ensure
9292 ENV . delete ( 'SEMIAN_DISABLED' )
9393 end
94+
95+ def test_force_host_circuits
96+ refute force_host_circuits?
97+ ENV [ 'SEMIAN_CIRCUIT_BREAKER_FORCE_HOST' ] = 'machine-1,machine-2,machine-3'
98+ refute force_host_circuits?
99+ ENV [ 'KUBE_HOSTNAME' ] = 'machine-2'
100+ assert force_host_circuits?
101+ ensure
102+ ENV . delete ( 'SEMIAN_CIRCUIT_BREAKER_FORCE_HOST' )
103+ ENV . delete ( 'KUBE_HOSTNAME' )
104+ end
94105end
You can’t perform that action at this time.
0 commit comments