nonnative 1.23.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +7 -2
- data/lib/nonnative/chaos_proxy.rb +1 -1
- data/lib/nonnative/configuration.rb +2 -1
- data/lib/nonnative/configuration_proxy.rb +2 -1
- data/lib/nonnative/configuration_server.rb +1 -1
- data/lib/nonnative/delay_socket_pair.rb +2 -1
- data/lib/nonnative/socket_pair.rb +4 -4
- data/lib/nonnative/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 39dfda3ff344a41e06816d7f7cbc152a53d8b5bc98090113e1c79109ea2faf95
         | 
| 4 | 
            +
              data.tar.gz: b1fbf5078dfa16d8fb89fc0699af0bebdc2a47473b455d71f3b7cd7bab390b8c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a797cf86fe77a38f9ebb5fa78f0dd20f24ce9e91f5666ae0c264ce1a37c9e91bba4ff19389da82c5de6fa48099d0187b6789fa1abb296383a8a186280b3b8ab0
         | 
| 7 | 
            +
              data.tar.gz: 7a559c54037a22f2b01c995787cac36a076b5afbd8c68a3f1c72ed9f50f4543ff73d060514ea747c4db6964348d568d0a38c222476a33fa8886919e10b8ca093
         | 
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -311,7 +311,10 @@ Nonnative.configure do |config| | |
| 311 311 | 
             
              config.server do |d|
         | 
| 312 312 | 
             
                d.proxy = {
         | 
| 313 313 | 
             
                  type: 'chaos',
         | 
| 314 | 
            -
                  port: 20_000
         | 
| 314 | 
            +
                  port: 20_000,
         | 
| 315 | 
            +
                  options: {
         | 
| 316 | 
            +
                    delay: 5
         | 
| 317 | 
            +
                  }
         | 
| 315 318 | 
             
                }
         | 
| 316 319 | 
             
              end
         | 
| 317 320 | 
             
            end
         | 
| @@ -327,13 +330,15 @@ servers: | |
| 327 330 | 
             
                proxy:
         | 
| 328 331 | 
             
                  type: chaos
         | 
| 329 332 | 
             
                  port: 20000
         | 
| 333 | 
            +
                  options:
         | 
| 334 | 
            +
                    delay: 5
         | 
| 330 335 | 
             
            ```
         | 
| 331 336 |  | 
| 332 337 | 
             
            ##### Fault Injection
         | 
| 333 338 |  | 
| 334 339 | 
             
            The `chaos` proxy allows you to simulate failures by injecting them. We currently support the following:
         | 
| 335 340 | 
             
            - `close_all` - Closes the socket as soon as it connects.
         | 
| 336 | 
            -
            - `delay` - This delays the communication between the connection.
         | 
| 341 | 
            +
            - `delay` - This delays the communication between the connection. Default is 2 secs can be configured through options.
         | 
| 337 342 | 
             
            - `invalid_data` - This takes the input and rearranges it to produce invalid data.
         | 
| 338 343 |  | 
| 339 344 | 
             
            Setup it up programmatically:
         | 
| @@ -47,7 +47,7 @@ module Nonnative | |
| 47 47 | 
             
                def perform_start
         | 
| 48 48 | 
             
                  loop do
         | 
| 49 49 | 
             
                    thread = Thread.start(tcp_server.accept) do |local_socket|
         | 
| 50 | 
            -
                      SocketPairFactory.create(read_state,  | 
| 50 | 
            +
                      SocketPairFactory.create(read_state, service.proxy).connect(local_socket)
         | 
| 51 51 | 
             
                      connections.delete(Thread.current.object_id)
         | 
| 52 52 | 
             
                    end
         | 
| 53 53 | 
             
                    thread.report_on_exception = false
         | 
| @@ -3,7 +3,6 @@ | |
| 3 3 | 
             
            module Nonnative
         | 
| 4 4 | 
             
              class ConfigurationServer
         | 
| 5 5 | 
             
                attr_accessor :name, :klass, :timeout, :port
         | 
| 6 | 
            -
             | 
| 7 6 | 
             
                attr_reader :proxy
         | 
| 8 7 |  | 
| 9 8 | 
             
                def initialize
         | 
| @@ -13,6 +12,7 @@ module Nonnative | |
| 13 12 | 
             
                def proxy=(value)
         | 
| 14 13 | 
             
                  proxy.type = value[:type]
         | 
| 15 14 | 
             
                  proxy.port = value[:port]
         | 
| 15 | 
            +
                  proxy.options = value[:options]
         | 
| 16 16 | 
             
                end
         | 
| 17 17 | 
             
              end
         | 
| 18 18 | 
             
            end
         | 
| @@ -2,8 +2,8 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            module Nonnative
         | 
| 4 4 | 
             
              class SocketPair
         | 
| 5 | 
            -
                def initialize( | 
| 6 | 
            -
                  @ | 
| 5 | 
            +
                def initialize(proxy)
         | 
| 6 | 
            +
                  @proxy = proxy
         | 
| 7 7 | 
             
                end
         | 
| 8 8 |  | 
| 9 9 | 
             
                def connect(local_socket)
         | 
| @@ -22,10 +22,10 @@ module Nonnative | |
| 22 22 |  | 
| 23 23 | 
             
                protected
         | 
| 24 24 |  | 
| 25 | 
            -
                attr_reader : | 
| 25 | 
            +
                attr_reader :proxy
         | 
| 26 26 |  | 
| 27 27 | 
             
                def create_remote_socket
         | 
| 28 | 
            -
                  ::TCPSocket.new('0.0.0.0', port)
         | 
| 28 | 
            +
                  ::TCPSocket.new('0.0.0.0', proxy.port)
         | 
| 29 29 | 
             
                end
         | 
| 30 30 |  | 
| 31 31 | 
             
                def pipe(ready, socket1, socket2)
         | 
    
        data/lib/nonnative/version.rb
    CHANGED