logstash-integration-logstash 0.0.5-java → 1.0.0-java

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -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 +251 -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 +29 -29
  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 +178 -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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
- 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
- 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
- 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
- 9Lnbd44/2ROwPsPe63vOUcM3A16bVOpVTCUQGQFO00pMl8jILCE+XOltqeol4wO9
28
- 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
- 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
- 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
- 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
- DA5YEBDgOjYZtyNVIy7se6WpZQ9TtBdzh2Fab5a3Xcl2ifD6h4iiaGnUER+vpHE3
33
- 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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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
51
- 9ZfI3LWNo63/Kz11Ssrd5OaDRbR4CyY=
2
+ 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
51
+ XwPEucLA/u3bsMK/R9LyYqJFk7ExFPM=
52
52
  -----END PRIVATE KEY-----
@@ -1,54 +1,54 @@
1
1
  -----BEGIN ENCRYPTED PRIVATE KEY-----
2
- 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
- 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
- UOTc9WJzUdnfrP8yepjYKq0f8hu50P0296W6mRxr6aVBwoa+VlK1zo0PDUAw05ta
5
- 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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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
- Ds971jhdlcboIap3j56fW5KwwXCNIB5Nlc5pcDlcPWbsyjyLXxivnFjwsl/o4yUx
18
- 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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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
- 2ZHgafVxhjzFqGaAORIPym4Bf2Atm/HdZgutkurP7nm3RrfxANbeq7apaXS7ktJi
32
- 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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
5
- NFowUzELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu
4
+ YXNoMQ0wCwYDVQQDDARyb290MB4XDTIzMTEwNjIwNDAyOVoXDTI2MTEwNjIwNDAy
5
+ OVowUzELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu
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
+ hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxQBfZCudTxMwzEBMk0515q0vmFibHP/Q
8
+ tFZ0Z/5ord8JnI64wsB6RwGmov74G8JnF/HJq/H/3Cz4ydWv1MsHzfUyyG7GHchN
9
+ HHbVjJX0JP3VJxjurxcZyrn8Yyg2c5aIPm/lSDeW0+3YLzIEMpxKtqILuFE/87DE
10
+ R0wIl2TI74ZGV+QxZc4FfSdwRkdkyOYcRPhw5YoMjKUzjLUIVfEMO21oFLjWRFje
11
+ KK3y55PutkdVq07U2TTtk7ubfKJ9u2Aix6eK18vnI9SLxuqCN49XyUT/TPtXm5tw
12
+ vj1BIC4+7uKZG/bCazJGAf0W7H057AEdSkLWASuBoRHS5VXxv6rwI1joMyGMpAxK
13
+ F6byK84kiApJ0l8Qou0JiHOUQQzOPblHkhAQprW+4Jp0H60Rfpw6cqGoWYyHU5XF
14
+ Xp7arW7LKbLrms889HeNuCDTvzpPss6kzjajl8+qnzgA7hroriZFLFf870aEyeXV
15
+ RRQh1EVPfstxloTagHOnasOKK4glHY5+x9QrvHxFwjP/kvcwUwnaebPlYyXc0wi9
16
+ MWyD57NfTGkt7wRlOjzgRv8orZJG750OKBAcD3kx0XC12sMKT1sOJ+sXTRoLs2DN
17
+ ftqZrvQYrYJx0804Nw2Q9Jrd5y1Rcz2jULhfrJKxO8Y1mgxZs1CF4Ptl1r8+wq6H
18
+ cdvgDKwP0KMCAwEAAaOCAUgwggFEMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQD
19
19
  AgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2Vy
20
- dGlmaWNhdGUwHQYDVR0OBBYEFGGA6/pOoY8g+Yc197W9Cz4hLaTnMIGOBgNVHSME
21
- gYYwgYOAFKNxcsX82KQ9IzqQRylKLFW4esxAoVWkUzBRMQswCQYDVQQGEwJMUzEL
20
+ dGlmaWNhdGUwHQYDVR0OBBYEFOvmaqA28FdH8OAQJN571iYFPZvBMIGOBgNVHSME
21
+ gYYwgYOAFBdxrtaEOv+0sfpQHlaYEhNF6EMeoVWkUzBRMQswCQYDVQQGEwJMUzEL
22
22
  MAkGA1UECAwCTkExEzARBgNVBAcMCkh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0
23
- YXNoMQ0wCwYDVQQDDARyb290ghRgfrr/V8NMVU9UvJrGnxJdW09gHjAOBgNVHQ8B
23
+ YXNoMQ0wCwYDVQQDDARyb290ghQcp86ejOIGw62JMt2+wCZh7JQvoTAOBgNVHQ8B
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/AAABMA0GCSqGSIb3DQEBCwUAA4ICAQAnjQG9RCBvlTr+PYupOjtFLxkR
26
+ ZET1ilrxt3IGYjeSB1G5Ga41mPwlVpAIyH6qrM5sXt5gGcjw3qUxsxnWsWM+qLzL
27
+ PU1ui+0hRlgdmTaGzE/uUsfEILjDqarNWKqsLIrYU1qBy/MB7COPQK16/S5C/fWp
28
+ ZJ6ms9C48pM3zBq25BCVKsot3ptREVLSPIt1bktNRnwlpz/EdjcrAMEbDJSXulJ8
29
+ VQy+zPmDKN00w3JfN1edf97kzfxj8o0gGANbuu/gm5+oIcGMLQslV7Itc93dN4AD
30
+ 99eJPVEJT8vbEIAZSTFsOvzA1Qs8S1plsGJVYlqeHD4+gE5w+hBxxB/o6wuVejT7
31
+ f1G/xcCxNK6nt2dXyD8psLUKYoWrjwB/txXAzFSmlR4SrUPsH/6Xlu6yOTTVSraC
32
+ D9wGC/m6cWVqh5LDbMQItOc/R/feNuOhATOD1LGsX3+BIPCOCrfuymxLRyVFm/Z1
33
+ R5E6LL8uOJh3anuZ3AXzg5PHGmLTct5hlNHNYuoiZp43dQBKh8VdkhrQb1Acb4Jb
34
+ 9ZbqqLAdvoFkFTIGm4D5xNjauH5HnbG1CNHXoJuNej5vZ724z046lnpjnnJ3pgNX
35
+ /SgPzZ3VclzzNnm3Umz//dNPRT93juqwICI+B6WOCEXq/LW8dfhVlLsaQcyj0eA9
36
+ SJBXV5v1wG37LTPtVQ==
37
37
  -----END CERTIFICATE-----
@@ -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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
- HNGP5thvrPhxRn9Wl7BPdCAtEJc/Uy6TvxHMlHWyoKdih0d7U3DcrqBxiKkAtpZV
7
- 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
- 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
- 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
- 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
- imxNjUEZKVwO7aUC7gJ7VXX4UqQ9EnhljhAVwPzQspeh3ASCvHP3n20CszHspG2m
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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
- dqKeQf9EdAJWHJpREe9j8zaW3iP+jdiGH6ZVGKRPfJnBsQKorChkCTzV1goT0hTe
20
- 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
- 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
- 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
- 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
- EeHOnfC2nmdfD+oh2agXAoIBAQDQGAlC6mzAdSFuZ5iukxEUdFUPirbKNaOxzZaz
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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
- 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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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
- Hx9/RBo4LLBGIXj/a4Jxd4/eI0iBEVxLSLpV9fdSE9Nadu+sfrGTJc9hDvmgw6gA
42
- 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
- BUnTliW5r972xdCc6hdVo/9WSnfCijrkI7RJzkYjaYcbZgcayddE+ZWvePVCr98o
44
- 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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
+ xIKn2U+7LZNOiJG0EgGsS2ItefwY1+A=
52
52
  -----END PRIVATE KEY-----
@@ -1,32 +1,32 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIFlTCCA32gAwIBAgIULdtAyw/w+y2KRLDCzw7SaWgrtt0wDQYJKoZIhvcNAQEL
2
+ MIIFlTCCA32gAwIBAgIULx8EZhbv3fxDxu0AujSHZ7XPPMEwDQYJKoZIhvcNAQEL
3
3
  BQAwUjELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu
4
- cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEOMAwGA1UEAwwFb3RoZXIwHhcNMjMxMDAz
5
- MTY0NzE5WhcNMjgxMDAyMTY0NzE5WjBSMQswCQYDVQQGEwJMUzELMAkGA1UECAwC
4
+ cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEOMAwGA1UEAwwFb3RoZXIwHhcNMjMxMTA2
5
+ MjA0MDM2WhcNMjgxMTA1MjA0MDM2WjBSMQswCQYDVQQGEwJMUzELMAkGA1UECAwC
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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
- 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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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
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