Class: Nonnative::FaultInjectionProxy

Inherits:
Proxy
  • Object
show all
Defined in:
lib/nonnative/fault_injection_proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(service) ⇒ FaultInjectionProxy

Returns a new instance of FaultInjectionProxy.



5
6
7
8
9
10
11
12
# File 'lib/nonnative/fault_injection_proxy.rb', line 5

def initialize(service)
  @connections = Concurrent::Hash.new
  @logger = Logger.new(service.proxy.log)
  @mutex = Mutex.new
  @state = :none

  super
end

Instance Method Details

#close_allObject



24
25
26
# File 'lib/nonnative/fault_injection_proxy.rb', line 24

def close_all
  apply_state :close_all
end

#delayObject



28
29
30
# File 'lib/nonnative/fault_injection_proxy.rb', line 28

def delay
  apply_state :delay
end

#hostObject



40
41
42
# File 'lib/nonnative/fault_injection_proxy.rb', line 40

def host
  service.proxy.host
end

#invalid_dataObject



32
33
34
# File 'lib/nonnative/fault_injection_proxy.rb', line 32

def invalid_data
  apply_state :invalid_data
end

#portObject



44
45
46
# File 'lib/nonnative/fault_injection_proxy.rb', line 44

def port
  service.proxy.port
end

#resetObject



36
37
38
# File 'lib/nonnative/fault_injection_proxy.rb', line 36

def reset
  apply_state :none
end

#startObject



14
15
16
17
# File 'lib/nonnative/fault_injection_proxy.rb', line 14

def start
  @tcp_server = ::TCPServer.new(service.host, service.port)
  @thread = Thread.new { perform_start }
end

#stopObject



19
20
21
22
# File 'lib/nonnative/fault_injection_proxy.rb', line 19

def stop
  thread&.terminate
  tcp_server&.close
end