bunny 2.14.2 → 2.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +56 -39
  3. data/lib/bunny/channel.rb +89 -13
  4. data/lib/bunny/consumer.rb +2 -2
  5. data/lib/bunny/consumer_work_pool.rb +1 -1
  6. data/lib/bunny/cruby/socket.rb +3 -0
  7. data/lib/bunny/delivery_info.rb +1 -1
  8. data/lib/bunny/queue.rb +36 -5
  9. data/lib/bunny/reader_loop.rb +21 -13
  10. data/lib/bunny/session.rb +83 -25
  11. data/lib/bunny/transport.rb +49 -12
  12. data/lib/bunny/version.rb +1 -1
  13. data/lib/bunny.rb +45 -4
  14. metadata +37 -235
  15. data/.github/ISSUE_TEMPLATE.md +0 -18
  16. data/.gitignore +0 -28
  17. data/.rspec +0 -1
  18. data/.travis.yml +0 -31
  19. data/.yardopts +0 -8
  20. data/CONTRIBUTING.md +0 -132
  21. data/ChangeLog.md +0 -2072
  22. data/Gemfile +0 -55
  23. data/LICENSE +0 -21
  24. data/Rakefile +0 -54
  25. data/benchmarks/basic_publish/with_128K_messages.rb +0 -35
  26. data/benchmarks/basic_publish/with_1k_messages.rb +0 -35
  27. data/benchmarks/basic_publish/with_4K_messages.rb +0 -35
  28. data/benchmarks/basic_publish/with_64K_messages.rb +0 -35
  29. data/benchmarks/channel_open.rb +0 -28
  30. data/benchmarks/mutex_and_monitor.rb +0 -42
  31. data/benchmarks/queue_declare.rb +0 -29
  32. data/benchmarks/queue_declare_and_bind.rb +0 -29
  33. data/benchmarks/queue_declare_bind_and_delete.rb +0 -29
  34. data/benchmarks/synchronized_sorted_set.rb +0 -53
  35. data/benchmarks/write_vs_write_nonblock.rb +0 -49
  36. data/bunny.gemspec +0 -34
  37. data/docker/Dockerfile +0 -20
  38. data/docker/apt/preferences.d/erlang +0 -3
  39. data/docker/apt/sources.list.d/bintray.rabbitmq.list +0 -2
  40. data/docker/docker-entrypoint.sh +0 -26
  41. data/docker/rabbitmq.conf +0 -29
  42. data/docker-compose.yml +0 -28
  43. data/examples/connection/authentication_failure.rb +0 -16
  44. data/examples/connection/automatic_recovery_with_basic_get.rb +0 -40
  45. data/examples/connection/automatic_recovery_with_client_named_queues.rb +0 -36
  46. data/examples/connection/automatic_recovery_with_multiple_consumers.rb +0 -46
  47. data/examples/connection/automatic_recovery_with_republishing.rb +0 -109
  48. data/examples/connection/automatic_recovery_with_server_named_queues.rb +0 -35
  49. data/examples/connection/channel_level_exception.rb +0 -27
  50. data/examples/connection/disabled_automatic_recovery.rb +0 -34
  51. data/examples/connection/heartbeat.rb +0 -17
  52. data/examples/connection/manually_reconnecting_consumer.rb +0 -23
  53. data/examples/connection/manually_reconnecting_publisher.rb +0 -28
  54. data/examples/connection/unknown_host.rb +0 -16
  55. data/examples/consumers/high_and_low_priority.rb +0 -50
  56. data/examples/guides/exchanges/direct_exchange_routing.rb +0 -36
  57. data/examples/guides/exchanges/fanout_exchange_routing.rb +0 -28
  58. data/examples/guides/exchanges/headers_exchange_routing.rb +0 -31
  59. data/examples/guides/exchanges/mandatory_messages.rb +0 -30
  60. data/examples/guides/extensions/alternate_exchange.rb +0 -30
  61. data/examples/guides/extensions/basic_nack.rb +0 -33
  62. data/examples/guides/extensions/connection_blocked.rb +0 -35
  63. data/examples/guides/extensions/consumer_cancellation_notification.rb +0 -39
  64. data/examples/guides/extensions/dead_letter_exchange.rb +0 -32
  65. data/examples/guides/extensions/exchange_to_exchange_bindings.rb +0 -29
  66. data/examples/guides/extensions/per_message_ttl.rb +0 -36
  67. data/examples/guides/extensions/per_queue_message_ttl.rb +0 -36
  68. data/examples/guides/extensions/publisher_confirms.rb +0 -28
  69. data/examples/guides/extensions/queue_lease.rb +0 -26
  70. data/examples/guides/extensions/sender_selected_distribution.rb +0 -32
  71. data/examples/guides/getting_started/blabbr.rb +0 -27
  72. data/examples/guides/getting_started/hello_world.rb +0 -22
  73. data/examples/guides/getting_started/weathr.rb +0 -49
  74. data/examples/guides/queues/one_off_consumer.rb +0 -25
  75. data/examples/guides/queues/redeliveries.rb +0 -81
  76. data/profiling/basic_publish/with_4K_messages.rb +0 -33
  77. data/repl +0 -3
  78. data/spec/config/enabled_plugins +0 -1
  79. data/spec/config/rabbitmq.conf +0 -13
  80. data/spec/higher_level_api/integration/basic_ack_spec.rb +0 -230
  81. data/spec/higher_level_api/integration/basic_cancel_spec.rb +0 -142
  82. data/spec/higher_level_api/integration/basic_consume_spec.rb +0 -349
  83. data/spec/higher_level_api/integration/basic_consume_with_objects_spec.rb +0 -54
  84. data/spec/higher_level_api/integration/basic_get_spec.rb +0 -80
  85. data/spec/higher_level_api/integration/basic_nack_spec.rb +0 -82
  86. data/spec/higher_level_api/integration/basic_publish_spec.rb +0 -74
  87. data/spec/higher_level_api/integration/basic_qos_spec.rb +0 -57
  88. data/spec/higher_level_api/integration/basic_reject_spec.rb +0 -152
  89. data/spec/higher_level_api/integration/basic_return_spec.rb +0 -33
  90. data/spec/higher_level_api/integration/channel_close_spec.rb +0 -66
  91. data/spec/higher_level_api/integration/channel_open_spec.rb +0 -57
  92. data/spec/higher_level_api/integration/connection_recovery_spec.rb +0 -483
  93. data/spec/higher_level_api/integration/connection_spec.rb +0 -563
  94. data/spec/higher_level_api/integration/connection_stop_spec.rb +0 -83
  95. data/spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb +0 -128
  96. data/spec/higher_level_api/integration/dead_lettering_spec.rb +0 -75
  97. data/spec/higher_level_api/integration/exchange_bind_spec.rb +0 -31
  98. data/spec/higher_level_api/integration/exchange_declare_spec.rb +0 -237
  99. data/spec/higher_level_api/integration/exchange_delete_spec.rb +0 -105
  100. data/spec/higher_level_api/integration/exchange_unbind_spec.rb +0 -40
  101. data/spec/higher_level_api/integration/exclusive_queue_spec.rb +0 -28
  102. data/spec/higher_level_api/integration/heartbeat_spec.rb +0 -49
  103. data/spec/higher_level_api/integration/message_properties_access_spec.rb +0 -95
  104. data/spec/higher_level_api/integration/predeclared_exchanges_spec.rb +0 -24
  105. data/spec/higher_level_api/integration/publisher_confirms_spec.rb +0 -191
  106. data/spec/higher_level_api/integration/publishing_edge_cases_spec.rb +0 -87
  107. data/spec/higher_level_api/integration/queue_bind_spec.rb +0 -109
  108. data/spec/higher_level_api/integration/queue_declare_spec.rb +0 -285
  109. data/spec/higher_level_api/integration/queue_delete_spec.rb +0 -41
  110. data/spec/higher_level_api/integration/queue_purge_spec.rb +0 -30
  111. data/spec/higher_level_api/integration/queue_unbind_spec.rb +0 -54
  112. data/spec/higher_level_api/integration/read_only_consumer_spec.rb +0 -60
  113. data/spec/higher_level_api/integration/sender_selected_distribution_spec.rb +0 -36
  114. data/spec/higher_level_api/integration/tls_connection_spec.rb +0 -250
  115. data/spec/higher_level_api/integration/toxiproxy_spec.rb +0 -76
  116. data/spec/higher_level_api/integration/tx_commit_spec.rb +0 -21
  117. data/spec/higher_level_api/integration/tx_rollback_spec.rb +0 -21
  118. data/spec/higher_level_api/integration/with_channel_spec.rb +0 -25
  119. data/spec/issues/issue100_spec.rb +0 -42
  120. data/spec/issues/issue141_spec.rb +0 -43
  121. data/spec/issues/issue202_spec.rb +0 -15
  122. data/spec/issues/issue224_spec.rb +0 -40
  123. data/spec/issues/issue465_spec.rb +0 -32
  124. data/spec/issues/issue549_spec.rb +0 -30
  125. data/spec/issues/issue78_spec.rb +0 -72
  126. data/spec/issues/issue83_spec.rb +0 -30
  127. data/spec/issues/issue97_attachment.json +0 -1
  128. data/spec/issues/issue97_spec.rb +0 -175
  129. data/spec/lower_level_api/integration/basic_cancel_spec.rb +0 -83
  130. data/spec/lower_level_api/integration/basic_consume_spec.rb +0 -99
  131. data/spec/spec_helper.rb +0 -47
  132. data/spec/stress/channel_close_stress_spec.rb +0 -64
  133. data/spec/stress/channel_open_stress_spec.rb +0 -84
  134. data/spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb +0 -28
  135. data/spec/stress/concurrent_consumers_stress_spec.rb +0 -71
  136. data/spec/stress/concurrent_publishers_stress_spec.rb +0 -54
  137. data/spec/stress/connection_open_close_spec.rb +0 -52
  138. data/spec/stress/merry_go_round_spec.rb +0 -105
  139. data/spec/tls/ca_certificate.pem +0 -29
  140. data/spec/tls/ca_key.pem +0 -52
  141. data/spec/tls/client_certificate.pem +0 -29
  142. data/spec/tls/client_key.pem +0 -51
  143. data/spec/tls/generate-server-cert.sh +0 -8
  144. data/spec/tls/server-openssl.cnf +0 -10
  145. data/spec/tls/server.csr +0 -16
  146. data/spec/tls/server_certificate.pem +0 -29
  147. data/spec/tls/server_key.pem +0 -51
  148. data/spec/toxiproxy_helper.rb +0 -28
  149. data/spec/unit/bunny_spec.rb +0 -15
  150. data/spec/unit/concurrent/atomic_fixnum_spec.rb +0 -35
  151. data/spec/unit/concurrent/condition_spec.rb +0 -82
  152. data/spec/unit/concurrent/linked_continuation_queue_spec.rb +0 -35
  153. data/spec/unit/concurrent/synchronized_sorted_set_spec.rb +0 -73
  154. data/spec/unit/exchange_recovery_spec.rb +0 -39
  155. data/spec/unit/version_delivery_tag_spec.rb +0 -28
@@ -1,52 +0,0 @@
1
- require "spec_helper"
2
-
3
- unless defined?(JRUBY_VERSION) && !ENV["FORCE_JRUBY_RUN"]
4
- describe Bunny::Session do
5
- # creating thousands of connections means creating
6
- # twice as many threads and this won't fly with the JVM
7
- # in CI containers. MK.
8
- n = if defined?(JRUBY_VERSION)
9
- 250
10
- else
11
- 2500
12
- end
13
-
14
- n.times do |i|
15
- it "can be closed (automatic recovery disabled, take #{i})" do
16
- c = Bunny.new(automatically_recover: false)
17
- c.start
18
- ch = c.create_channel
19
-
20
- expect(c).to be_connected
21
- c.stop
22
- expect(c).to be_closed
23
- end
24
- end
25
-
26
- n.times do |i|
27
- it "can be closed (automatic recovery enabled, take #{i})" do
28
- c = Bunny.new(automatically_recover: true)
29
- c.start
30
- ch = c.create_channel
31
-
32
- expect(c).to be_connected
33
- c.stop
34
- expect(c).to be_closed
35
- end
36
- end
37
-
38
- context "in the single threaded mode" do
39
- n.times do |i|
40
- it "can be closed (single threaded mode, take #{i})" do
41
- c = Bunny.new(automatically_recover: false, threaded: false)
42
- c.start
43
- ch = c.create_channel
44
-
45
- expect(c).to be_connected
46
- c.stop
47
- expect(c).to be_closed
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,105 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "A batch of messages proxied by multiple intermediate consumers" do
4
- let(:c1) do
5
- c = Bunny.new(username: "bunny_gem",
6
- password: "bunny_password",
7
- vhost: "bunny_testbed",
8
- heartbeat_timeout: 6)
9
- c.start
10
- c
11
- end
12
-
13
- let(:c2) do
14
- c = Bunny.new(username: "bunny_gem",
15
- password: "bunny_password",
16
- vhost: "bunny_testbed",
17
- heartbeat_timeout: 6)
18
- c.start
19
- c
20
- end
21
-
22
- let(:c3) do
23
- c = Bunny.new(username: "bunny_gem",
24
- password: "bunny_password",
25
- vhost: "bunny_testbed",
26
- heartbeat_timeout: 6)
27
- c.start
28
- c
29
- end
30
-
31
- let(:c4) do
32
- c = Bunny.new(username: "bunny_gem",
33
- password: "bunny_password",
34
- vhost: "bunny_testbed",
35
- heartbeat_timeout: 6)
36
- c.start
37
- c
38
- end
39
-
40
- let(:c5) do
41
- c = Bunny.new(username: "bunny_gem",
42
- password: "bunny_password",
43
- vhost: "bunny_testbed",
44
- heartbeat_timeout: 6)
45
- c.start
46
- c
47
- end
48
-
49
- after :each do
50
- [c1, c2, c3, c4, c5].each do |c|
51
- c.close if c.open?
52
- end
53
- end
54
-
55
- [1000, 5_000, 10_000, 20_000, 30_000, 50_000].each do |n|
56
- # message flow is as follows:
57
- #
58
- # x => q4 => q3 => q2 => q1 => xs (results)
59
- it "successfully reaches its final destination (batch size: #{n})" do
60
- xs = []
61
-
62
- ch1 = c1.create_channel
63
- q1 = ch1.queue("", exclusive: true)
64
- q1.subscribe(manual_ack: true) do |delivery_info, _, payload|
65
- xs << payload
66
- ch1.ack(delivery_info.delivery_tag)
67
- end
68
-
69
- ch2 = c2.create_channel
70
- q2 = ch2.queue("", exclusive: true)
71
- q2.subscribe do |_, _, payload|
72
- q1.publish(payload)
73
- end
74
-
75
- ch3 = c3.create_channel(nil, 2)
76
- q3 = ch3.queue("", exclusive: true)
77
- q3.subscribe(manual_ack: true) do |delivery_info, _, payload|
78
- q2.publish(payload)
79
- ch3.ack(delivery_info.delivery_tag)
80
- end
81
-
82
- ch4 = c4.create_channel(nil, 4)
83
- q4 = ch4.queue("", exclusive: true)
84
- q4.subscribe do |_, _, payload|
85
- q3.publish(payload)
86
- end
87
-
88
- ch5 = c5.create_channel(nil, 8)
89
- x = ch5.default_exchange
90
-
91
- n.times do |i|
92
- x.publish("msg #{i}", routing_key: q4.name)
93
- end
94
-
95
- Bunny::TestKit.poll_until(90) do
96
- xs.size >= n
97
- end
98
-
99
- expect(xs.size).to eq n
100
- expect(xs.last).to eq "msg #{n - 1}"
101
-
102
- [q1, q2, q3, q4].each { |q| q.delete }
103
- end
104
- end
105
- end
@@ -1,29 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIFAjCCAuqgAwIBAgIJAOh5ofB2iC1IMA0GCSqGSIb3DQEBCwUAMDExIDAeBgNV
3
- BAMMF1RMU0dlblNlbGZTaWduZWR0Um9vdENBMQ0wCwYDVQQHDAQkJCQkMB4XDTE3
4
- MDcxMjE3MDUyNFoXDTI3MDcxMDE3MDUyNFowMTEgMB4GA1UEAwwXVExTR2VuU2Vs
5
- ZlNpZ25lZHRSb290Q0ExDTALBgNVBAcMBCQkJCQwggIiMA0GCSqGSIb3DQEBAQUA
6
- A4ICDwAwggIKAoICAQDLlcfVD3JI34j3akZEcw9A6Q3ra7wCXiBuK6i+QcB0Gpp/
7
- AdQVyEwuC8DVwqnnCLoR0KKU7Iuhjwqk1aXzIcZAy42TiEtwCTJ1Rajlp6hjonWi
8
- EYp+HFm6UZdeM94bV5khV0+vwE/MDcKpXzKYJlbYOv+RSPdizWb7m+tRnyQf79M8
9
- wL8nx1CJbokV/fgmauRnbOkpAWSmq8MbuthdQHLNVAnHV4i4SEBB8KBiB1Rrxu+O
10
- serH1KB+8ABLGUpLM/0rtUFlgo5waysNHUUvqYIcXff7yXNsNblZM8YYnhAK0rzX
11
- y6MdqSgUHycQYCCJ7nuIVagpxLKSkJTJtH9anDzo0Y5c/w6huCxsnhbrBwg3FHga
12
- sRPzuouIROH09yKbrOmbG7wmU3mWyB3bhVe+YmivQMq55QtHo3C/gBVsvsrjH/ql
13
- ecxYa8aPRpeJU4eUjuvywY9200C3SdOyP+iM/yE9r3RG/B2qPhB6PqG/3SXkURGi
14
- 3B2bX1nD7VdDPbfO14j0m0rHBTnu3Ieao+KaAMpd6gWrPkOHRF87CYF4NOtqjFr8
15
- rNe6cxR3Cy/h5YH7DYpS8VgIjMTkIEEo4sTDnQsFTE1fiPjzsfUl0cwSAPbIR4Hb
16
- Sp/kt5zWSlV89u9CbIpGvvnKZ0fUiaVW9e3rjowPtBjcCSARn4tIIOftjVEmmwID
17
- AQABox0wGzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsF
18
- AAOCAgEAUrza43ghwOUIuqbQLAfosr/9ucXnTA84Fcyp27bKbLme2Vfc9iRLwjib
19
- hd9D1MygCSjxW5szWs/pwC486cGjWlUY5y4g5fS74S4hLvKW8jVBKuF3i0J8kNkO
20
- 7L2XZJb+0rQcFWCOh8dAJpBJqv8dH0xqRga9mVecHB+PtQY0G0qRkdCTCiIKr8gF
21
- yhzoq8Rmo+H4yD8OfbMJHSS4vcEFgS6KhVLqvrGQ1cnfjWjaDeSMalHcnUxeYydV
22
- dPAdi+/4k8jtjXTEAxTlVhsRwUJi4+jF43X3jNZ1dbrZV5SATnxJD2ygDjHH+Xw3
23
- R97bARIgvXWmDHvIlxdIpmDJws3AvSThofI2uhTLSg5JLmRNZCjhcZc9EsnAxxAV
24
- LKLG85Fp1sGfqvPeT+n6wfqNXyZ6X3pPXoR412uOdD3brKWfNM1rjqqdm6PWqxg0
25
- wA3Axv/ZbtFWYcBVbePmA8SQATPnuAWYAueQ6R3vQwMFhf+KMt+GBQGt2gsIN4Gb
26
- FbtSGLH5dOz9ap2zjSL5QS7ZRt2O1d4s5zEdRBadA19fr2hTA8KX4tvmoXhc2Iav
27
- lmnAW1MDAGkhzIQmSfxM0N7rr4fNrqTHVv6NjUjeHxi483RxVXL6ZWu2Kb7LCVzs
28
- pHlumeVpCafYGiBHt75SRFkPsn8HA+g8PYfSXCgLrA6tW3zMj7U=
29
- -----END CERTIFICATE-----
data/spec/tls/ca_key.pem DELETED
@@ -1,52 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDLlcfVD3JI34j3
3
- akZEcw9A6Q3ra7wCXiBuK6i+QcB0Gpp/AdQVyEwuC8DVwqnnCLoR0KKU7Iuhjwqk
4
- 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
- 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
- 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
- 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
- tH9anDzo0Y5c/w6huCxsnhbrBwg3FHgasRPzuouIROH09yKbrOmbG7wmU3mWyB3b
9
- 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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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
- 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
- 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
- MpGYNW7iRH24Z9YAzEpEU9yhKB1ON+NDnfkW0dE6RFl2kjEWP1v2kD54w5C2DPol
38
- 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
- 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
- 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
- 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
- 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
- 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
- kB+QU7nP0del1vbdhyMLXTAuONOX86Wf/dpHmKLhtxrEC0G5AvT5ZYcMyge+lT9h
45
- Ch4SD428LE6qm25mKumfAbMjsDx2CbCcW47B4g8xlDt1YHxKz6I/FWL+3ITub0Yk
46
- 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
- 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
- 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
- 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
- J5SCvYN+YonZVhIgAQ3kiPbzMwPTKGRuZUGxH5dLEFxMpud6lvyTFo0heWaWSO8J
51
- uM2skhC6ROJPn3CCWPupNuPV2m7kCo4=
52
- -----END PRIVATE KEY-----
@@ -1,29 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIE/zCCAuegAwIBAgIBAjANBgkqhkiG9w0BAQsFADAxMSAwHgYDVQQDDBdUTFNH
3
- ZW5TZWxmU2lnbmVkdFJvb3RDQTENMAsGA1UEBwwEJCQkJDAeFw0xNzA3MTIxNzA1
4
- MjVaFw0yNzA3MTAxNzA1MjVaMCQxETAPBgNVBAMMCG1lcmN1cmlvMQ8wDQYDVQQK
5
- DAZjbGllbnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDsrXq/Dop
6
- gZjWDsyVQSyV+GxD/2ckrG4mbXARECfb9vvhA1z8ErN1h6hp9zDKTqdn21iCd3m1
7
- 4AlTsM1ARk6kMuqtVAYzo25qtm8seQE3TnI41gOvrpy1ncqr9etRmds7lyfo7AVA
8
- DC+rHAc1R3Gh+wc5xPexY7kbZv0mfURETGksGYKJ/VHE0dk/JAgyR6HooPEKRLce
9
- gCCc7SjUtggj0mJLgLHtnns1Db2REe/tZTtzJ6DaxevdmeewGvQvQRo8l+OAysfL
10
- Pc7VCevExnB0jRvjlSF+zbeqEZsUQiAiCa8zXZEH0ZXf3JE9ztIbNN9ouTL4Q7aX
11
- N3GnddMXv5bunJzrnF6xUB3DzUDZjQasGIf9q3kr4qxP8BXOCHjaCLFgfRxwy7NG
12
- 64BOzTZ+OWJThF4kqvkWR5D0WeRyj6OCYU7pr8mjVayHhA3WdqMZ2eyZDPoqHGsx
13
- FuBCW0/Ja2nrwHislQUkPHaH8gSjivAZeF40q5hD+3a0O5j4lEbNbFyE2GE3vjMD
14
- 9nxomfFeKI8IxdePjAc80Xoq0JDDiFMJ2Iu1oFSsRCucR+L9xloS3MRjzzrHZlnZ
15
- xwLV+3x9QA97KjfsDwp8J8tWXs9fw71ZJgmcSJ5fzPjkxrlZ5xEQAsf50Tx8c6j4
16
- lZhMEsLcARiGNJt21QfgKiLEBWvKgoSuxQIDAQABoy8wLTAJBgNVHRMEAjAAMAsG
17
- A1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOC
18
- AgEAFWAL4vDyshpfLtj+woBov4gwUrW7fFtrIKSpZ78FE3wTb5oDoK7DQb1qLiGy
19
- XKv8O0La5z/pGKm7jeqDDSIwu7s/9nzui3m3le93Wed4PnEawprvND0IKJDtEN5N
20
- J2Zet/CCm1keHLhZLPS4mXzKXI0BqubBhYuFJ+pO0F/l9kPxOfCe3l3fLj+Gsmpm
21
- hqr1lasWlWc9IKoSgcAGw0Wr6M0EeP3mxJcrSDGtT+37KerefKXQrAC75IbO0hGo
22
- CTMYltg0TxWZ90lUcuLIgSlopS8C88NFaxxNDf62Qy6DAjEb0S9nGEKfxcPRJcyz
23
- DuE0YiOf8yp/8qgnN6mTo7tCr/FQRZvWt6Mt2UGh1lHMuA4Ab6O5T4hQ3oD9tj9H
24
- D86noCp6I3caDJmUSxAc6H6pr0AebQ6TFE48tzFaKNcKQKzk3JUDOmoGP6ub1Hab
25
- /SUcZ7pLx9rKSlF/EfjO/1NQ9jDFoHYT8FDw3Xj82K3xoWXKw7/bggLYfdEJzKxN
26
- ThN4dcAefsdXY9mo6iABspMf9uCGPuq89gs6wYSM71R2hk+1CHiQRc4xSGJjJ037
27
- Wk/0yCQkUmMcqCF4HQa2caOV3Paa9bvSXm8aRWn+atY/JdrgzM87nK49wjmWFGf9
28
- bsyM5uI0G9rCclSKc9SNw6sAhDTuwTdA1ivRHJsPtOFtmCE=
29
- -----END CERTIFICATE-----
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA 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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
- 37vUuMJH7jiTHVUd081iV8OSIfz0ViXY2Oew1+UaUeJuOe1HKOzSpvlzcb5DxZNK
20
- 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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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
- VBKWgWgNBsZ0ks6oZVqWgiXZEdhmXih/+exRjbgRAkOxepoG8fA+I6DoV+YitzSp
29
- oKEIip0C42wN5QKCAQEA0MNbqoNC/FdPPHxi1Bc+NxsAq3y6jKftyN5J7TmbKJA0
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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
- YQVxPh3r03ZE8Hm3DdgdgpH3tqbPW4j8Gi9YHdBpYm/dSDcQw4XdyyncEJKCl1dF
38
- 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
- 6wz0+HXXebmouO0+em0K/03/mr56vlNK5ZXvXQc2xrQJQcVYAHCH3xvYbIuFb1cq
40
- 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
- 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
- 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
- pZvR91TGsC7vyxfjk2S9pH6OxhncgIZz0jdtru3zAdwhSIsaTU7DOLx0a4XkAx+e
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
- -----END RSA PRIVATE KEY-----
@@ -1,8 +0,0 @@
1
- #!/bin/sh
2
-
3
- DIRNAME=$(dirname "$0")
4
-
5
- openssl req -sha256 -new -key $DIRNAME/server_key.pem -out $DIRNAME/server.csr -subj "/CN=mercurio" -config $DIRNAME/server-openssl.cnf
6
- openssl x509 -sha256 -req -in $DIRNAME/server.csr -CA $DIRNAME/ca_certificate.pem -CAkey $DIRNAME/ca_key.pem -CAcreateserial -CAserial $DIRNAME/ca.srl -out $DIRNAME/server_certificate.pem -days 3650 -extensions v3_req -extfile $DIRNAME/server-openssl.cnf
7
-
8
- echo "Written new server CSR and certificate"
@@ -1,10 +0,0 @@
1
- [req]
2
- req_extensions = v3_req
3
- distinguished_name = req_distinguished_name
4
- [req_distinguished_name]
5
- [ v3_req ]
6
- basicConstraints = CA:FALSE
7
- keyUsage = nonRepudiation, digitalSignature, keyEncipherment
8
- subjectAltName = @alt_names
9
- [alt_names]
10
- IP.1 = 127.0.0.1
data/spec/tls/server.csr DELETED
@@ -1,16 +0,0 @@
1
- -----BEGIN CERTIFICATE REQUEST-----
2
- MIICkjCCAXoCAQAwEzERMA8GA1UEAwwIbWVyY3VyaW8wggEiMA0GCSqGSIb3DQEB
3
- AQUAA4IBDwAwggEKAoIBAQCkvvzm5nB3CDqTFEYQnfOy8DwJLm34MvdrKQAThzDy
4
- qa37sb4IC0YclBFbZfsw8+paK+Rpo2Vlhzclb66z0cGs9SvxuKkJ45w0fk0ctxMg
5
- tvWISRGZR7LMw5u0q2m61dK0FTGSl+qzJohb5Dklb6BApoGoIPH+eYraVxHR29x2
6
- x8hqzBt5TpiUW8bu7LPQJbX0mYGhKQDf86kao+sptRQ2045D7vB3jrkPhq0XZVJi
7
- QymzOSSejYSN1oZ464DtT+dpLBYHEVJoJPu4r4kY/8A7v+93PWQaDERKBfvwWHfV
8
- U44xn7R/aojSvNT7kQILsf2BnfJlMwoedWQLxPddmB3PAgMBAAGgOjA4BgkqhkiG
9
- 9w0BCQ4xKzApMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMA8GA1UdEQQIMAaHBH8A
10
- AAEwDQYJKoZIhvcNAQELBQADggEBAFyfaotajM/h2dyodKJqO6stAIpxiQXTds8V
11
- 5ZHDozBxzLZkeBIY+hsqh/owmqomk56swui+336WAKIBwIJyJrtIl8C/lupGaTbR
12
- BouWWbyZOQAE2ExHcUgdGEOVoCN2ieBR4RVQ8Id4GAlHvlFGPqakaLMV6Zc7VqDh
13
- vxdOLgATEE+MhebTo9yOHj14qdvzhi5w3ZEg1kdfOuGN9I4gJcv4PWwudBhn4wE7
14
- oHAIP2nixROI7cZcZ9fBrimcdGQsXNZLTXiGzNra4utOXuQ7w5qoiEhHoxXalowE
15
- KvEA9otLadjtULg6DRd3zYuIyrUiBIRUHZ1p2xSnd/lLekbMfCQ=
16
- -----END CERTIFICATE REQUEST-----
@@ -1,29 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIE/zCCAuegAwIBAgIBATANBgkqhkiG9w0BAQsFADAxMSAwHgYDVQQDDBdUTFNH
3
- ZW5TZWxmU2lnbmVkdFJvb3RDQTENMAsGA1UEBwwEJCQkJDAeFw0xNzA3MTIxNzA1
4
- MjRaFw0yNzA3MTAxNzA1MjRaMCQxETAPBgNVBAMMCG1lcmN1cmlvMQ8wDQYDVQQK
5
- DAZzZXJ2ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuwVeq0DrK
6
- nKQg5zE4Ph9eY1v4ktJiHhTosgS0hE7DHWaulpXqt9SaqrVc8Kp7z+C1GCQRg8Vo
7
- 73DDQOl63sFwYvNO1uqyeS6mqMPamjgOIQ2/GGPwmTksJi/QlBH7u2lR4BoWA7uB
8
- 4zr8mxXlIfDzvLWL1Dz7yZZcfrcp28rDId+LoNjajaVrropqrlJ+GoQKN1fB2dkU
9
- JTJocUFCw5+Pcslrymm3+9pDexB6u8vWyBy/jk27dp8VhDLfHTCkO6UTnvIBLfA3
10
- 5b7PWX7Q7QiOGhiGtoz7J3bqEoOkaM1cOEjSEO4AkLvcgKpqnQzP0xKmR57COFgA
11
- UQBNSClOkmoNDI9pGl4ONNx7OnsFGvwqc1DrIUQPRXMZzgcqdjK7DgxAh68Mke3l
12
- Mu7xkLsy7VWxiwTDFyukKuFNhXOxUrHJ/jI/s5LEZLiAWNvGNhDyJrWxFpTAjpk9
13
- osNPdJw/rLSzliwYJDmYWdmKOif+mQw0QIhnKxtLnsdiNTbQVtixDlhUBUt+xWv2
14
- IyFAcSDxZPEA7oLIflJdNG3GaQwIki/ZGDXmxSg2PhPdU42slGRaupPuUpFYFKUg
15
- PZypjphNuUQkHasPD43Jacj96LyuDSuV/b8FQWQbegOv7sY/kCK3v6y6YQcqovkN
16
- RWhOZE2zIFXRxT2iPY2LV/clgVkohrxzUwIDAQABoy8wLTAJBgNVHRMEAjAAMAsG
17
- A1UdDwQEAwIFIDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOC
18
- AgEAQBCmOD6yXPkGWIBcP35Qaghpyv9oxgv6AnJaU1KylTxR+C7ljT9EnygWBeTf
19
- 5giFYI2HnTSKOZQRhIk4/LsP9xnWJ6OjfOopC1YjHKcSV7VTVMTvd2OkgFIYPFgT
20
- EXzfCX+NFkS9fD8D2hn/6ENir+N4opuobcLOq+jveAtwLrO/SrDprCiKa0Ka4n/L
21
- 10huMlBslqJ4aCQjAud0FZVikEzeZIIfPn/G7vC5Ya+IaV5SxzEv12krZpiktuHh
22
- w5jkFZcIxQROLww5heC0xsHLRVX5pjqFwN54b8JeP5t+yr0y3aaQ0s525wkUP82/
23
- QmNTLNLzOgMn+k5JkIygnVHji6avdO7suxt0BOMrdSzMd1pfH58umF4xoCspUSCq
24
- Ko0ml5f3Kf1KTBQAV/a4iUIixID67tAd3tOaQgNFPEdbHXp09L2nxRvZMrh4Yimq
25
- jmiX7rTOFnTUES4gfrfpLFSJXxaJlMOM6K08MljkMT0JtExBtiIqMXTnA0GNdkgY
26
- W5Oa2W+Hvt8l0KDcdFIR64Uiqrgxmw8AirUI3R20kldDHB1XE+5y34CgMVYiHDZ9
27
- UGf2wIrg+rsWUqvSgUgFO0IVsP4Z+fFJP/qpca5ObbSLCF0rM5tCh6i7P2893+S9
28
- /eJyRAiTABMrVpFAhvMQGdBtKtXZ8gryJ2M29Kup7JW0OEM=
29
- -----END CERTIFICATE-----
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIJKAIBAAKCAgEArsFXqtA6ypykIOcxOD4fXmNb+JLSYh4U6LIEtIROwx1mrpaV
3
- 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
- 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
- 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
- u3afFYQy3x0wpDulE57yAS3wN+W+z1l+0O0IjhoYhraM+yd26hKDpGjNXDhI0hDu
7
- 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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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
- 1+NM0B8SCvPxibBCEqc7IItZva7aB7wmJ7EPsbOgq65DXL0Wf8CVdIUl1yTLt9S5
20
- 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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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
- Vj4n3bPFYRIbllFG39Mjq4UOVAbllj9TYNL7xf32V0zrKZHG3UcHH1A2C5nW++yQ
34
- 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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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
- g+Bo5p6Sv0q5ZdJzY6XPuih0ngtiOoAjFQBjy0wN7rxm5J+yc8kLZ5ZldobYYNQM
45
- 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
- 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
- fvsUuL2VzNMnGofRXK+nU+AeixUJLTDd1TKwODr+WAx1UVg+pfwmkDgU6oiHQZSF
48
- 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
- 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
- 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
51
- -----END RSA PRIVATE KEY-----
@@ -1,28 +0,0 @@
1
- module RabbitMQ
2
- module Toxiproxy
3
- RABBITMQ_UPSTREAM_HOST = if !ENV["LOCAL_RABBITMQ"].nil?
4
- # a local Toxiproxy/RabbitMQ combination
5
- "localhost"
6
- else
7
- # docker-compose
8
- "rabbitmq"
9
- end
10
-
11
- def setup_toxiproxy
12
- ::Toxiproxy.populate([{
13
- name: "rabbitmq",
14
- listen: "0.0.0.0:11111",
15
- upstream: "#{RABBITMQ_UPSTREAM_HOST}:5672"
16
- }])
17
- rabbitmq_toxiproxy.enable
18
- end
19
-
20
- def cleanup_toxiproxy
21
- ::Toxiproxy.populate()
22
- end
23
-
24
- def rabbitmq_toxiproxy
25
- ::Toxiproxy[/rabbitmq/]
26
- end
27
- end
28
- end
@@ -1,15 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Bunny do
4
- it "has library version" do
5
- expect(Bunny::VERSION).not_to be_nil
6
- expect(Bunny.version).not_to be_nil
7
- end
8
-
9
-
10
- it "has AMQP protocol version" do
11
- expect(Bunny::PROTOCOL_VERSION).to eq "0.9.1"
12
- expect(AMQ::Protocol::PROTOCOL_VERSION).to eq "0.9.1"
13
- expect(Bunny.protocol_version).to eq "0.9.1"
14
- end
15
- end
@@ -1,35 +0,0 @@
1
- require "spec_helper"
2
- require "bunny/concurrent/atomic_fixnum"
3
-
4
- describe Bunny::Concurrent::AtomicFixnum do
5
- it "allows retrieving the current value" do
6
- af = described_class.new(0)
7
-
8
- expect(af.get).to eq 0
9
- expect(af).to eq 0
10
- end
11
-
12
- it "can be updated" do
13
- af = described_class.new(0)
14
-
15
- expect(af.get).to eq 0
16
- Thread.new do
17
- af.set(10)
18
- end
19
- sleep 0.6
20
- expect(af.get).to eq 10
21
- end
22
-
23
- it "can be incremented" do
24
- af = described_class.new(0)
25
-
26
- expect(af.get).to eq 0
27
- 10.times do
28
- Thread.new do
29
- af.increment
30
- end
31
- end
32
- sleep 0.6
33
- expect(af.get).to eq 10
34
- end
35
- end
@@ -1,82 +0,0 @@
1
- require "spec_helper"
2
- require "bunny/concurrent/condition"
3
-
4
- describe Bunny::Concurrent::Condition do
5
-
6
- describe "#wait" do
7
- 50.times do |i|
8
- it "blocks current thread until notified (take #{i})" do
9
- condition = described_class.new
10
- xs = []
11
-
12
- t = Thread.new do
13
- xs << :notified
14
-
15
- sleep 0.2
16
- condition.notify
17
- end
18
- t.abort_on_exception = true
19
-
20
- condition.wait
21
- expect(xs).to eq [:notified]
22
- end
23
- end
24
- end
25
-
26
- describe "#notify" do
27
- 50.times do |i|
28
- it "notifies a single thread waiting on the latch (take #{i})" do
29
- mutex = Mutex.new
30
- condition = described_class.new
31
- xs = []
32
-
33
- t1 = Thread.new do
34
- condition.wait
35
- mutex.synchronize { xs << :notified1 }
36
- end
37
- t1.abort_on_exception = true
38
-
39
- t2 = Thread.new do
40
- condition.wait
41
- mutex.synchronize { xs << :notified2 }
42
- end
43
- t2.abort_on_exception = true
44
-
45
- sleep 0.2
46
- condition.notify
47
- sleep 0.5
48
- expect(xs).to satisfy { |ys| ys.size == 1 && (ys.include?(:notified1) || ys.include?(:notified2)) }
49
- end
50
- end
51
- end
52
-
53
- describe "#notify_all" do
54
- let(:n) { 30 }
55
-
56
- 50.times do |i|
57
- it "notifies all the threads waiting on the latch (take #{i})" do
58
- mutex = Mutex.new
59
- condition = described_class.new
60
- @xs = []
61
-
62
- n.times do |i|
63
- t = Thread.new do
64
- condition.wait
65
- mutex.synchronize { @xs << "notified#{i + 1}".to_sym }
66
- end
67
- t.abort_on_exception = true
68
- end
69
-
70
- sleep 0.5
71
- condition.notify_all
72
- sleep 0.5
73
-
74
- n.times do |i|
75
- item = "notified#{i + 1}".to_sym
76
-
77
- expect(@xs).to include item
78
- end
79
- end
80
- end
81
- end
82
- end
@@ -1,35 +0,0 @@
1
- require "spec_helper"
2
-
3
- if defined?(JRUBY_VERSION)
4
- require "bunny/concurrent/linked_continuation_queue"
5
-
6
- describe Bunny::Concurrent::LinkedContinuationQueue do
7
- describe "#poll with a timeout that is never reached" do
8
- it "blocks until the value is available, then returns it" do
9
- # force subject evaluation
10
- cq = subject
11
- t = Thread.new do
12
- cq.push(10)
13
- end
14
- t.abort_on_exception = true
15
-
16
- v = subject.poll(500)
17
- expect(v).to eq 10
18
- end
19
- end
20
-
21
- describe "#poll with a timeout that is reached" do
22
- it "raises an exception" do
23
- # force subject evaluation
24
- cq = subject
25
- t = Thread.new do
26
- sleep 1.5
27
- cq.push(10)
28
- end
29
- t.abort_on_exception = true
30
-
31
- expect { subject.poll(500) }.to raise_error(::Timeout::Error)
32
- end
33
- end
34
- end
35
- end