logstash-integration-logstash 0.0.5-java → 1.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/VERSION +1 -1
  4. data/docs/index.asciidoc +8 -5
  5. data/docs/output-logstash.asciidoc +6 -6
  6. data/lib/logstash/outputs/logstash.rb +254 -127
  7. data/lib/logstash/utils/load_balancer.rb +81 -0
  8. data/logstash-integration-logstash.gemspec +2 -1
  9. data/spec/fixtures/certs/generated/client_from_root.jks +0 -0
  10. data/spec/fixtures/certs/generated/client_from_root.key.pem +50 -50
  11. data/spec/fixtures/certs/generated/client_from_root.key.pkcs8.pem +52 -52
  12. data/spec/fixtures/certs/generated/client_from_root.p12 +0 -0
  13. data/spec/fixtures/certs/generated/client_from_root.pem +28 -28
  14. data/spec/fixtures/certs/generated/client_from_untrusted.jks +0 -0
  15. data/spec/fixtures/certs/generated/client_from_untrusted.key.pem +50 -50
  16. data/spec/fixtures/certs/generated/client_from_untrusted.key.pkcs8.pem +52 -52
  17. data/spec/fixtures/certs/generated/client_from_untrusted.p12 +0 -0
  18. data/spec/fixtures/certs/generated/client_from_untrusted.pem +28 -28
  19. data/spec/fixtures/certs/generated/client_self_signed.jks +0 -0
  20. data/spec/fixtures/certs/generated/client_self_signed.key.pem +50 -50
  21. data/spec/fixtures/certs/generated/client_self_signed.key.pkcs8.pem +52 -52
  22. data/spec/fixtures/certs/generated/client_self_signed.p12 +0 -0
  23. data/spec/fixtures/certs/generated/client_self_signed.pem +28 -28
  24. data/spec/fixtures/certs/generated/root.key.pem +50 -50
  25. data/spec/fixtures/certs/generated/root.pem +28 -28
  26. data/spec/fixtures/certs/generated/server_from_root-key-pkcs8.pem +50 -50
  27. data/spec/fixtures/certs/generated/server_from_root.jks +0 -0
  28. data/spec/fixtures/certs/generated/server_from_root.key.pem +50 -50
  29. data/spec/fixtures/certs/generated/server_from_root.key.pkcs8.pem +52 -52
  30. data/spec/fixtures/certs/generated/server_from_root.p12 +0 -0
  31. data/spec/fixtures/certs/generated/server_from_root.pem +28 -28
  32. data/spec/fixtures/certs/generated/untrusted.key.pem +50 -50
  33. data/spec/fixtures/certs/generated/untrusted.pem +28 -28
  34. data/spec/unit/full_transmission_spec.rb +10 -2
  35. data/spec/unit/load_balancer_spec.rb +67 -0
  36. data/spec/unit/logstash_output_spec.rb +179 -17
  37. metadata +22 -5
@@ -1,52 +1,52 @@
1
1
  -----BEGIN PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- xn5unulRBsKBH2XfG8O5AoIBAQDm9z/J13+UW4Iz9ILqHIDLae2HcyVeuhYUoVTJ
25
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ao2rb6mZiXJl1z22zYPoFzHa+m5Kxd3XvE8o/eB21YErqYtNvuDZm51K6lZIuPwR
35
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- eHUCggEBAI6tzWcVpD/MjznO2rsS+GQhECuq9+T5A1dVFXFi4r2+7q+b8Axv5pf5
47
- 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
- 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
- 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
- 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
51
- 9ZfI3LWNo63/Kz11Ssrd5OaDRbR4CyY=
2
+ MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCiSZ/pFd63TQgk
3
+ t4uC3ibpA2BKFEyuCPfKn69rrGJrXw4K6eXxSItD5MjO9aEdETRFwA1hNKyDf6nF
4
+ HZjPlORa79APACNWQIkW2EJjCX9Dg2chYrMmYx3puBrkDB6YWW583kEFjxXkwIPX
5
+ t2UG2AudwAAEOzScGBdKrQnGFHiI/L7YZBsoNwgXrZPz5V1v401x5CU62t8NlQhd
6
+ E+jvyZLdDwNrSvGeJCoi8hjwE2YzX1tvH+g9g/JdovSd5QEW6LA4LyN5FxKjHqCo
7
+ YEdXfJq/d5ximqPIGSERiRb7rmM55t6prdYzeqgP5TtGmPjdE2hCTfjqhZssgXk3
8
+ fxLNlSGKBj9bLa9dlBWxyax2RJ13UB5a4iz/upsP8kIZX9mx+aoTzc+D5uveLjXh
9
+ qTVBjCs/HHXKQpVxFHvWjeAXiBvlT5O9pOB+pHFyLsYW11ZICUQCAwy8E++ePN2A
10
+ EPzokdeuDJQv8GcqoKeK6AQrP51FXvBf9UYAIEphxTpWDadDbLutnq7Zj3PnlI6M
11
+ SNfpZyr8FafEdTSM0IbkRIVoB3bpbVB7wxMq21ScE70+ax8lR0mliqLfy1uTIijX
12
+ VxO9kE6X3Z/IIVRTFR0ziAylAhOOZMmbL9JI5FZa+tuk7wo6dx6ltkFY1B8FzXLa
13
+ CdCdp+xQjLH6YI0zsAjP4zfBmPPm2wIDAQABAoICAAH/i4zvlocTQxurk4U8JpkG
14
+ oPwL5FyM2j6JS8LP2dSyTXSy1xtxqW9tNOQwvJf1IrGHfA56xT1v/7YWQYW9pUWH
15
+ sH+CJ3P4NwjAWBX4F8GxDftlJgk9s9IPoaHDhUfd5I9uucY7U72vNjO+L9DlIBwf
16
+ PsXcCdEpysZdCPi4dNvoauLWXcNyeS2PxjYsDkquZPcyPuWiaVSuvsXvCrhCYusS
17
+ 8RegDoC2t5kM3yB4/lxQoA2xYnY/cXS823JrT6T3GBRfweW+HHWwPgMD5AwlaDQQ
18
+ YWMX8+5qLJXaDrH3sP1LNZj4aYNpLVMarLp8iqZv5UN65T8yNYchf02lu/VTOWNR
19
+ fAoLGXpClOj17tEwn+/HzwCZFt7zCbDlErcI6kzwo2CG1a/J8/EygYEc7FBAijQK
20
+ zSKLSsRV6qvo9kCJA07l46i+0/1nmKyBvouYOtF/Oc5PsyfJJy6rIOTbaKGWqmCQ
21
+ tUxCMagMaWhVxPF9u6jdlZSRz5Bwrzzmf/atGM9IiJcxTWwvYViLnwu4cs1MM5YF
22
+ c4u//NKRYAOJ40UykeAd7j4CjOQrvkIL8f7maM60C9bor21DisMI5QWr2KtFK8Bd
23
+ QmE0RImZ5MEL5Ol6ZFpZ/ncbV2e9vUCtorfE7TswcKBR65dY0+omCaD9v/+0tDHw
24
+ rUZb4fjCeBLJD0Q75glBAoIBAQC5kButIvqQEsceCQANu2h0GU7LcmHPuFWDWG4+
25
+ snDWfA9HiMnoo3SyAWSj5S3062MpVmS/EUWXEcSmsnY2iTdhJyyw9y33xEDZgm0h
26
+ oObZYS5fIMNJHcMGrKIbp37ejbzu1xN+Mhde4Om/nHVe3QLGYV1n+Nbf6fSg0flk
27
+ 2SH9Hbs1OGPwUKLYZjUdPaqEpJXteJvhcJKytp3Nu/XFEW8EqifVJvyqdKyIoJWM
28
+ x9WQIdzRkTVU96nAvKtK+9LXnpX9kvRYw8HGVwZxRRqVveUbq+4KENbBcHt93HsY
29
+ Ahng6eLjQ+EKgtDzvYBeD12i0LjCnn47p9KgIpKPFCStkifzAoIBAQDf48KMDez7
30
+ UzU9TskCOvVcPSdxZVDW2Kog08tfPmAyX6wySffjDT1t/YJC+TZzaBTeYPToFZ6d
31
+ 2sN55PT4dcnNje0Q/4xypViBYNNOjm2yJO1X/Ew/KJqyFrDHtmhA9TskBt9t3BHM
32
+ onXfd6PuWD9lbJk4K6dnFR7ZZbfStghuhYW/bLQ2/xe/KL/r4znKiOZUKwmI9u1l
33
+ uiVEmx5BwWUZF0kxMXHp18EHDszORWSd1l3UHKswuMihL/uvHb2XAKsQROH4kT5i
34
+ /53SkXlpndLzooDT8cH8ckv4rhqofyyc4G7ud+PI+ebBqxsWPEetlGA2QVctRfOo
35
+ C9geZDANUyd5AoIBAQCc9bujYOIGugt5aW2FMA+znLCcwFziAm860bM3D2MI2hlm
36
+ jdsUECcmZq1FQRb1g6H2FmDTiX2OwnXP90as7LZOVH+mFP7qBDRCh+NdvadnGp/J
37
+ 0YG+OBF+dMoOkEhtYgD9Giof5akFFURDUsmo+1NckIEc8Ex5TIEjA1lsJ4prexme
38
+ c9t9LAgC+blVyZKR7lHvc8SPFdTQnE2w95t1HUEF9hQJZZf1awmB7Ctz0Jjh+PK6
39
+ xZQSEgehwzU1EPuQbVE8E3DiIHupFHWbnDNXlC/Wj0CjfQjayRV8KeJpNWXEbLIB
40
+ QKp7ZJnwgkuxxFeU3+5YmQ330gYEdBn6MrSvqOBnAoIBAEK6sohluiUqJqsQKU71
41
+ 3Z1RSMk+ZjqytvozxeCsSaWZ6EvQygYtMwruTP3DI1yAQAALq9LkZrMrualB+VV4
42
+ Xd5bF7ZCRE0DRP7Cqhg20TEQWoEn3F3Sr1C2/Jd5oVcDAE57keo/djqkjTc+hGiM
43
+ etCy7nPUZv+NRvWKoKA3ywmN2FA2iPv/Scea0KDwx4+6/9NERIJC/nycX3E0Pm9g
44
+ wc4Zp6H217nXqVt+KMKt4hA9DRgkN029NWb9UyldVt2DwHiH30XjnFGLWDGjVCmL
45
+ dY1R+M2yt5uTQVtsINvpk5VqOwXuS8Dh4soEQn19F+v/VjG1hdMjjzyd0xszxzKh
46
+ fxkCggEAatYJHvNbxFR7HWTfKxFLBSsdoik7wpYSEKfzpp/DF9cevBzKp1Cw0qTT
47
+ eePWfUchwcYowczFyxaCCL3GjM908UOGff2xrpksgRal34mUsZ5+hIhftiG8Elw3
48
+ 0CEzZhMpXdacOnrbuvqHTSL1gl4rbIZ9viFh4IJ28z9QNwR0uefKm+6IPX+OBnlB
49
+ P59uMLu97J+4jiiCgpHMiZgjcOujnKQvUsPdqBvNNaEyCfIoryM2zlK/DX6JW1Fy
50
+ VeQyqBlQ4uLPZPMueLpGv5E0qMBkgkRNO55yNpOE0GJKysL5IOekNNI3Fb0LUwxU
51
+ bE2Gq2KKglvm8jQbnUPn8YC7swA0lg==
52
52
  -----END PRIVATE KEY-----
@@ -1,54 +1,54 @@
1
1
  -----BEGIN ENCRYPTED PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- N/Iy651bSZrjcLoMMlsBBj3jhHJmCkOoX/ZSB0GldHRzCBU4QIca3Skl2+HppHWS
12
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- qDLJkxEFohl1IxRly953zIOrwRY8hbvgWf571EeuFm3qoSmBC32Z5DPmPkn4fifd
22
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 0d5ykcE0RKtCK2yyTLF4w9EYOkbxixtZanijg4vUSvuYmC3lhu7F27AIEiVdSyFr
30
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
54
54
  -----END ENCRYPTED PRIVATE KEY-----
@@ -1,37 +1,37 @@
1
1
  -----BEGIN CERTIFICATE-----
2
2
  MIIGaTCCBFGgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJMUzEL
3
3
  MAkGA1UECAwCTkExEzARBgNVBAcMCkh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0
4
- YXNoMQ0wCwYDVQQDDARyb290MB4XDTIzMTAwMzE2NDcxNFoXDTI2MTAwMzE2NDcx
4
+ YXNoMQ0wCwYDVQQDDARyb290MB4XDTIzMTExNjAxMTExNFoXDTI2MTExNjAxMTEx
5
5
  NFowUzELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu
6
6
  cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEPMA0GA1UEAwwGc2VydmVyMIICIjANBgkq
7
- hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1u+2yUHfQihcQD744xKiPbNjEve3iXIC
8
- vq6sSvmaZ50Emha/ydjDKC4F1zBL7sA+b8/sHz5PNVWk6Fb7UNqmsMu+aadTmTFD
9
- N+qJQ6VtYuLQmeJXlhoxtHJLrqpY4tTsSGKpBf3DfFEzpQ7l2YJlCE88T7V8eJHr
10
- nadivG89k9OCtuzkgn1k+hH50uQWZNjgjIEZOI4mGuJREg8GiUpeBJXJvtxAIaQM
11
- 3Txd3kFIcI5XP7qdw+VQ8LaGew+Hu2iYJ03wOx4SvMbwoBvh3D3e0vmHEPJH2j2P
12
- oYYA9ru+GJZdA6uS47SUKQy/aTtcLmIRhMwQyHzn8XfbIIWDwEB5hSuYm1gmiUc7
13
- HbQWkWPIQ8GxrcMbEuDXOBhXAGwU0gEIaK6LkrlJGpTdqGtTFfCHa1sYLcPVpcwn
14
- MWUYZbThayWzgHrw2fV9y8/idVT9VY2MWnt4GOHb5NctTazWosXdubFP+aNM+/oQ
15
- 4r72fgCqEFST7tIunVJTgVAoN7CdqyX3gMbViEe8gh5SDMxPufQ2vTiWw5knNjW9
16
- NJuy/fB702IGqq9l/yn9Y8QUjIxIyGkqxFDMYXIjcwbEk6yR86HSMJgjOjSB4RLk
17
- JWl+dpjH1xL0a6pJWFTJmlvTF1f0efn4gQyT8CIIWiP8A08DvIo2H5rxumVs/g/h
18
- 4iE5aahRwqUCAwEAAaOCAUgwggFEMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQD
7
+ hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAokmf6RXet00IJLeLgt4m6QNgShRMrgj3
8
+ yp+va6xia18OCunl8UiLQ+TIzvWhHRE0RcANYTSsg3+pxR2Yz5TkWu/QDwAjVkCJ
9
+ FthCYwl/Q4NnIWKzJmMd6bga5AwemFlufN5BBY8V5MCD17dlBtgLncAABDs0nBgX
10
+ Sq0JxhR4iPy+2GQbKDcIF62T8+Vdb+NNceQlOtrfDZUIXRPo78mS3Q8Da0rxniQq
11
+ IvIY8BNmM19bbx/oPYPyXaL0neUBFuiwOC8jeRcSox6gqGBHV3yav3ecYpqjyBkh
12
+ EYkW+65jOebeqa3WM3qoD+U7Rpj43RNoQk346oWbLIF5N38SzZUhigY/Wy2vXZQV
13
+ scmsdkSdd1AeWuIs/7qbD/JCGV/ZsfmqE83Pg+br3i414ak1QYwrPxx1ykKVcRR7
14
+ 1o3gF4gb5U+TvaTgfqRxci7GFtdWSAlEAgMMvBPvnjzdgBD86JHXrgyUL/BnKqCn
15
+ iugEKz+dRV7wX/VGACBKYcU6Vg2nQ2y7rZ6u2Y9z55SOjEjX6Wcq/BWnxHU0jNCG
16
+ 5ESFaAd26W1Qe8MTKttUnBO9PmsfJUdJpYqi38tbkyIo11cTvZBOl92fyCFUUxUd
17
+ M4gMpQITjmTJmy/SSORWWvrbpO8KOncepbZBWNQfBc1y2gnQnafsUIyx+mCNM7AI
18
+ z+M3wZjz5tsCAwEAAaOCAUgwggFEMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQD
19
19
  AgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2Vy
20
- dGlmaWNhdGUwHQYDVR0OBBYEFGGA6/pOoY8g+Yc197W9Cz4hLaTnMIGOBgNVHSME
21
- gYYwgYOAFKNxcsX82KQ9IzqQRylKLFW4esxAoVWkUzBRMQswCQYDVQQGEwJMUzEL
20
+ dGlmaWNhdGUwHQYDVR0OBBYEFEIATGTlQwV6CgYgQmEfeiNfp0e7MIGOBgNVHSME
21
+ gYYwgYOAFJo1Pm5HSapVZszX8+Vl0ue2XXd7oVWkUzBRMQswCQYDVQQGEwJMUzEL
22
22
  MAkGA1UECAwCTkExEzARBgNVBAcMCkh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0
23
- YXNoMQ0wCwYDVQQDDARyb290ghRgfrr/V8NMVU9UvJrGnxJdW09gHjAOBgNVHQ8B
23
+ YXNoMQ0wCwYDVQQDDARyb290ghQ6ac6ApW3Z7MYlBWwWlMHdej4vjzAOBgNVHQ8B
24
24
  Af8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIJbG9jYWxo
25
- b3N0hwR/AAABMA0GCSqGSIb3DQEBCwUAA4ICAQAsUfvrmRDNWTt+RRCQqqgJvC9C
26
- N+FUYzUpyA9YiJK0y6+CqM4bDCSVr90UOK4m3Xg9nVxB7R9SvGgUbJ//nXXzG7ox
27
- bLc82n6pu5w6XysP6qv5AxoSKKdGTq7uI+4dclsEHTJPBuxc57Hhm2hPjjKYqLof
28
- RVAli3cpe/Tg9zjRkUC/jee5GXJZhctA9P3qeN1Jzj27JKe1NakRc9b9Rayr/OAY
29
- PS4GdK97t3YXINnQWYdI3BFpUxEGWx8xgAs2IwPVzJYNgPN0516ZNGYKBuGANSz9
30
- 6kLgBCCNGZoM8MtFgk+KzFiluMxQDYEN4NxBu5AURwoI/G9VjAa+0U9ZxF464J+c
31
- vNfgCybN6oR+1NNWs1YnQQBVrFfueAAjm3L4BJtDyQcp+QAFIRD8ZeMZe+WDQSRY
32
- S9BlvE0W+RCgj+mPZcTmgQUhg/zjNJX8OlLWrgYTVAu+YHaayGcD5Xg3DLU6MRal
33
- ZR2H3CoUGJ6ODg/1jC3IXkgafEUnd9RyfJ0efVnP+9xnMrTcbi1E7jdwrRVXenOS
34
- g1g8MopwFQtwGRRWrvbiJ0KegciggOCZ9m9V7FmaAzy3nukuJusVHjFgZb46VHI5
35
- k5/FuCYE/lmOoMmjEz7EJDaIr9b6uWFbiTJdb6TpGbirpvknD6S/lY8fQJ0Px+Kq
36
- V/1s3vuOtccxBzsBqg==
25
+ b3N0hwR/AAABMA0GCSqGSIb3DQEBCwUAA4ICAQAFHaYGFFEQ3BAKPkA/TLbHxvf8
26
+ XHO3LzU8+z8BS7tDeystSMibgvM+0ESbdgiYcH3fVua+/da9NjGoApxsDlHIwFAB
27
+ T98BADC/PcS0xrgRuRvfq8V+xNiER79EtG21wszpMxX4qA8EVCkslXCQoIAQr4lR
28
+ MOyWjGY9mDRGQou0FJuJ+YiN5+SNYmDVcO8YBKkcc6BtSEyS1YbFp4P6si8ojIHz
29
+ 7BAZCcABVEYmx3FGpbhAqjinWHGq/lF696i+2Srkni/49BC7fCVV7KDPLSsTTZaw
30
+ c/02ghVOaXCDPu8mfc+bLC18yPNWneStZDfwyGYv/6Ip09YvsVZ4YXIR0ax4UUws
31
+ 9x8tbnkHyzoDA2R81YhEgzV4cmN+PvBwnjPNIPa6245xMIlLIgUwAIIpK/m3h1wu
32
+ EGLqdz733Oa+CQlyU+LJY/96GPujaB2fnVKNKH+hUlLqpIEVKBFTDbqJJPreY8LE
33
+ MWsImgMNCLWf3uG8OtSFaNLrmitUdFAVvSqzsPoYqgltX+SRXlVK7SfNaDh/iQe6
34
+ BWuq7JkUbDeNw9zsr6+CPHGrThlxC3o3IOv1LcpjKRlJcVYHtzl7hfMf+nc475wg
35
+ Det8fn12zZGtybG09K/AZGYOazqu9Wkpj66GUptdzz4Ar3RZPHm4haIEyFn3IilU
36
+ fw54dHQCQEFdoxq+jw==
37
37
  -----END CERTIFICATE-----
@@ -1,52 +1,52 @@
1
1
  -----BEGIN PRIVATE KEY-----
2
- MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDINbkGpLySBg7U
3
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 9OwKdNPsGyxBTXJFsou44bZvTJ0myyvY7KLSXpZWdbPc0399fnZwkHcB6BzQdI6q
26
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- RAiNGpRiNFWjW+RU2RBp+442Hs5WKP2dZPnOxvbd7XxCIpfxHgwjf2s+HbRE25zV
39
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
51
- MGJ4AQKL5oQPPERZoPezO8y+92Wl
2
+ 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
51
+ mk82pTicC3Nc9qBDkBjTzj2eHKs3Glc=
52
52
  -----END PRIVATE KEY-----
@@ -1,32 +1,32 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIFlTCCA32gAwIBAgIULdtAyw/w+y2KRLDCzw7SaWgrtt0wDQYJKoZIhvcNAQEL
2
+ MIIFlTCCA32gAwIBAgIUDJJnsCdhXlt16YBwAdSmPaKhXH8wDQYJKoZIhvcNAQEL
3
3
  BQAwUjELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu
4
- cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEOMAwGA1UEAwwFb3RoZXIwHhcNMjMxMDAz
5
- MTY0NzE5WhcNMjgxMDAyMTY0NzE5WjBSMQswCQYDVQQGEwJMUzELMAkGA1UECAwC
4
+ cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEOMAwGA1UEAwwFb3RoZXIwHhcNMjMxMTE2
5
+ MDExMTIyWhcNMjgxMTE1MDExMTIyWjBSMQswCQYDVQQGEwJMUzELMAkGA1UECAwC
6
6
  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
- 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
- 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
- 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
- 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
- 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
- qQC2llVHovsGqBVhP62uoovNcidyy8LaUZDOTYQvU5pIQwGW62eYPULgKq2Ogz43
13
- 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
- 8x69W/omHW0LTweElhKouKzkrzk19brgn7Nf/eAsGiL8ymKEx38KGE/sLL7T6mIA
15
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- xnyvwLErBVfxy7Q9hpC09sT5MxdPso9y+XuKtp7mS3xoen2ubPnfODo5GHigZ0H/
25
- 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
- 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
- 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
- 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
- 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
- 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
- 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
32
32
  -----END CERTIFICATE-----
@@ -6,6 +6,7 @@ require "logstash/inputs/logstash"
6
6
  require "logstash/outputs/logstash"
7
7
  require "rspec/collection_matchers"
8
8
  require "random-port"
9
+ require "timeout"
9
10
 
10
11
  describe 'Logstash Output -> Input complete transmission' do
11
12
 
@@ -26,7 +27,7 @@ describe 'Logstash Output -> Input complete transmission' do
26
27
  # provides: output_events (an array of Events)
27
28
  shared_context 'transmission' do
28
29
  let(:concurrency) { defined?(super) ? super() : 8 }
29
- let(:batch_size) { defined?(super) ? super() : 125 }
30
+ let(:batch_size) { defined?(super) ? super() : 17 }
30
31
 
31
32
  let(:output_events) { [] }
32
33
  let(:errors) { [] }
@@ -48,9 +49,16 @@ describe 'Logstash Output -> Input complete transmission' do
48
49
  loop do
49
50
  batch = transmit_queue.pop(true) rescue break
50
51
  begin
51
- Timeout.timeout(5) do
52
+ # TODO:
53
+ # timeout thread _simulates_ `Timeout::Error: execution expired` exception which will be saved in the queue
54
+ # we need to catch an original plugin exception
55
+ timeout_thread = Thread.new do
52
56
  output_plugin.multi_receive(batch)
53
57
  end
58
+ unless timeout_thread.join(2)
59
+ timeout_thread.kill
60
+ raise Timeout::Error.new("Execution expired")
61
+ end
54
62
  rescue => e
55
63
  error_queue << e
56
64
  end
@@ -0,0 +1,67 @@
1
+ # encoding: utf-8
2
+
3
+ require_relative "../spec_helper"
4
+ require "logstash/devutils/rspec/shared_examples"
5
+ require "logstash/utils/load_balancer"
6
+
7
+ #
8
+ # The following is a high-level validation of CURRENT implementation
9
+ # that is tightly-coupled with initial state and is NOT a specification
10
+ # of the behaviour once its initial state has been invalidated by use.
11
+ #
12
+ # A formal validation of the load balancer's behaviour is forthcoming.
13
+ #
14
+ describe LoadBalancer do
15
+ let(:downstream_infos) { %w[1.1.1.1:9801 2.2.2.2:9802 3.3.3.3:9803] }
16
+
17
+ subject(:load_balancer) { described_class.new(downstream_infos) }
18
+
19
+ describe "#initialize" do
20
+ it "checks initialized params" do
21
+ expect(load_balancer.instance_variable_get(:@cool_off)).to eq(60)
22
+ expect(load_balancer.instance_variable_get(:@host_states)).to be_an(Array)
23
+ expect(load_balancer.instance_variable_get(:@host_states).size).eql? 3
24
+ end
25
+ end
26
+
27
+ describe "#route" do
28
+
29
+ describe "with successful data transfer" do
30
+
31
+ it "picks up the candidate host based on last request time" do
32
+ # for the 1st call returns the 1.1.1.1, for the 2nd call returns 2.2.2.2 and so on
33
+ downstream_infos.each do |host_uri |
34
+ load_balancer.select do | selected_host_uri |
35
+ expect(selected_host_uri).to eq(host_uri)
36
+ end
37
+ end
38
+ end
39
+
40
+ end
41
+
42
+ describe "when data transfer fails" do
43
+
44
+ it "applies the cool_off period for the next routes, marks host as error" do
45
+ # sending events to "1.1.1.1:9801" fails, fair load balancer marks the host errored
46
+ begin
47
+ load_balancer.select do | selected_host_uri |
48
+ expect(selected_host_uri).to eq("1.1.1.1:9801")
49
+ raise "Cannot reach the host"
50
+ end
51
+ rescue
52
+ # Ignore
53
+ end
54
+
55
+ # retry sends to "2.2.2.2:9802"
56
+ %w[2.2.2.2:9802 3.3.3.3:9803].each do |host|
57
+ load_balancer.select do | selected_host_uri |
58
+ expect(selected_host_uri).to eq(host)
59
+ end
60
+ end
61
+
62
+ # make sure errored host doesn't get requests in 60s
63
+
64
+ end
65
+ end
66
+ end
67
+ end