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)
296
296
end
297
297
end
298
298
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
+
299
310
if Semian . semaphores_enabled?
311
+ ENV [ 'SEMIAN_CIRCUIT_BREAKER_IMPL' ] = 'host' if force_host_circuits?
300
312
require 'semian/semian'
301
313
else
302
314
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
91
91
ensure
92
92
ENV . delete ( 'SEMIAN_DISABLED' )
93
93
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
94
105
end
You can’t perform that action at this time.
0 commit comments