rabbitmq_http_api_client 1.7.0 → 1.8.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/.travis.yml +1 -0
- data/ChangeLog.md +11 -0
- data/README.md +7 -5
- data/bin/before_build.sh +2 -2
- data/lib/rabbitmq/http/client/version.rb +1 -1
- data/lib/rabbitmq/http/client.rb +2 -4
- data/spec/integration/client_spec.rb +16 -28
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d8ada29fcfb2d9ace237b89e6172fef52fadffb
|
4
|
+
data.tar.gz: ff901540b1761cafcaf2004b8e9e9af74b52062e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc24be0290dc8a91da0d1f21bfb7bc06e4a0b1a57be2179474308b162d201e14f3f39f02ddb6928b2c7397daefd6fb3abce547d220b14bcb3817f3cd75b97269
|
7
|
+
data.tar.gz: 8b9391797082f6fccd289e89af915268dac757a7422b8432e98ce3106fd48f003bd3d3f4ae4c23ce290fd89578ad3e5d9baf2f90e9fd13bbcf8e5f5276177d0f
|
data/.travis.yml
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## Changes Between 1.7.0 and 1.8.0
|
2
|
+
|
3
|
+
### Correct URI Path Segment Encoding
|
4
|
+
|
5
|
+
URI path segment encoding (e.g. vhosts, queue names, etc)
|
6
|
+
in this client now correctly encodes spaces.
|
7
|
+
|
8
|
+
GitHub issue: [#28](https://github.com/ruby-amqp/rabbitmq_http_api_client/issues/28).
|
9
|
+
|
10
|
+
|
11
|
+
|
1
12
|
## Changes Between 1.6.0 and 1.7.0
|
2
13
|
|
3
14
|
### Blank Tags by Default
|
data/README.md
CHANGED
@@ -18,14 +18,12 @@ and will support more HTTP API features in the future
|
|
18
18
|
|
19
19
|
## Supported Ruby Versions
|
20
20
|
|
21
|
-
* CRuby
|
22
|
-
* JRuby
|
23
|
-
* Rubinius 2.0+
|
21
|
+
* CRuby 2.0 through 2.4.x
|
22
|
+
* JRuby 9K
|
24
23
|
|
25
24
|
## Supported RabbitMQ Versions
|
26
25
|
|
27
26
|
* RabbitMQ 3.x
|
28
|
-
* RabbitMQ 2.x
|
29
27
|
|
30
28
|
All versions require [RabbitMQ Management UI plugin](http://www.rabbitmq.com/management.html) to be installed and enabled.
|
31
29
|
|
@@ -33,7 +31,7 @@ All versions require [RabbitMQ Management UI plugin](http://www.rabbitmq.com/man
|
|
33
31
|
|
34
32
|
Add this line to your application's Gemfile:
|
35
33
|
|
36
|
-
gem 'rabbitmq_http_api_client', '>= 1.
|
34
|
+
gem 'rabbitmq_http_api_client', '>= 1.7.0'
|
37
35
|
|
38
36
|
And then execute:
|
39
37
|
|
@@ -353,6 +351,10 @@ ps = client.clear_permissions_of("/", "guest")
|
|
353
351
|
The test suite assumes that RabbitMQ is running locally with stock settings
|
354
352
|
and rabbitmq-management plugin enabled.
|
355
353
|
|
354
|
+
## Continuous Integration
|
355
|
+
|
356
|
+
[](https://travis-ci.org/ruby-amqp/rabbitmq_http_api_client)
|
357
|
+
|
356
358
|
|
357
359
|
## Contributing
|
358
360
|
|
data/bin/before_build.sh
CHANGED
@@ -9,5 +9,5 @@ $RUBY_RABBITMQ_HTTP_API_CLIENT_RABBITMQCTL add_user guest guest
|
|
9
9
|
$RUBY_RABBITMQ_HTTP_API_CLIENT_RABBITMQCTL set_permissions -p / guest ".*" ".*" ".*"
|
10
10
|
|
11
11
|
# Reduce retention policy for faster publishing of stats
|
12
|
-
$RUBY_RABBITMQ_HTTP_API_CLIENT_RABBITMQCTL eval 'supervisor2:terminate_child(rabbit_mgmt_sup_sup, rabbit_mgmt_sup), application:set_env(rabbitmq_management, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_sup_sup:start_child().'
|
13
|
-
$RUBY_RABBITMQ_HTTP_API_CLIENT_RABBITMQCTL eval 'supervisor2:terminate_child(rabbit_mgmt_agent_sup_sup, rabbit_mgmt_agent_sup), application:set_env(rabbitmq_management_agent, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_agent_sup_sup:start_child().'
|
12
|
+
$RUBY_RABBITMQ_HTTP_API_CLIENT_RABBITMQCTL eval 'supervisor2:terminate_child(rabbit_mgmt_sup_sup, rabbit_mgmt_sup), application:set_env(rabbitmq_management, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_sup_sup:start_child().' | true
|
13
|
+
$RUBY_RABBITMQ_HTTP_API_CLIENT_RABBITMQCTL eval 'supervisor2:terminate_child(rabbit_mgmt_agent_sup_sup, rabbit_mgmt_agent_sup), application:set_env(rabbitmq_management_agent, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_agent_sup_sup:start_child().' | true
|
data/lib/rabbitmq/http/client.rb
CHANGED
@@ -4,9 +4,6 @@ require "faraday_middleware"
|
|
4
4
|
require "multi_json"
|
5
5
|
require "uri"
|
6
6
|
|
7
|
-
# for URI encoding
|
8
|
-
require "cgi"
|
9
|
-
|
10
7
|
module RabbitMQ
|
11
8
|
module HTTP
|
12
9
|
class Client
|
@@ -419,7 +416,8 @@ module RabbitMQ
|
|
419
416
|
end
|
420
417
|
|
421
418
|
def uri_encode(s)
|
422
|
-
CGI.escape
|
419
|
+
# correctly escapes spaces, unlike CGI.escape, see ruby-amqp/rabbitmq_http_api_client#28
|
420
|
+
URI.escape(s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
423
421
|
end
|
424
422
|
|
425
423
|
def decode_resource(response)
|
@@ -100,24 +100,20 @@ describe RabbitMQ::HTTP::Client do
|
|
100
100
|
|
101
101
|
describe "GET /api/nodes" do
|
102
102
|
it "lists cluster nodes with detailed status information for each one of them" do
|
103
|
+
await_event_propagation
|
103
104
|
nodes = subject.list_nodes
|
104
105
|
n = nodes.first
|
105
106
|
|
106
|
-
rabbit = n.applications.detect { |app| app.name == "rabbit" }
|
107
|
-
expect(rabbit.description).to eq("RabbitMQ")
|
108
|
-
|
109
107
|
expect(n.name).to match(/^rabbit/)
|
110
108
|
end
|
111
109
|
end
|
112
110
|
|
113
111
|
describe "GET /api/node/:name" do
|
114
112
|
it "returns status information for a single cluster node" do
|
113
|
+
await_event_propagation
|
115
114
|
ns = subject.list_nodes
|
116
115
|
n = subject.node_info(ns.first.name)
|
117
116
|
|
118
|
-
rabbit = n.applications.detect { |app| app.name == "rabbit" }
|
119
|
-
expect(rabbit.description).to eq("RabbitMQ")
|
120
|
-
|
121
117
|
expect(n.name).to match(/^rabbit/)
|
122
118
|
end
|
123
119
|
end
|
@@ -128,6 +124,7 @@ describe RabbitMQ::HTTP::Client do
|
|
128
124
|
|
129
125
|
describe "GET /api/extensions" do
|
130
126
|
it "returns a list of enabled management plugin extensions" do
|
127
|
+
await_event_propagation
|
131
128
|
xs = subject.list_extensions
|
132
129
|
|
133
130
|
expect(xs).to be_kind_of(Array)
|
@@ -140,13 +137,14 @@ describe RabbitMQ::HTTP::Client do
|
|
140
137
|
|
141
138
|
describe "GET /api/definitions" do
|
142
139
|
it "returns a list of all resources/definitions (vhosts, users, permissions, queues, exchanges, bindings, etc)" do
|
140
|
+
await_event_propagation
|
143
141
|
xs = subject.list_definitions
|
144
142
|
|
145
|
-
expect(xs.bindings).
|
146
|
-
expect(xs.queues).
|
147
|
-
expect(xs.exchanges).
|
148
|
-
expect(xs.users).
|
149
|
-
expect(xs.vhosts).
|
143
|
+
expect(xs.bindings).not_to be_nil
|
144
|
+
expect(xs.queues).not_to be_nil
|
145
|
+
expect(xs.exchanges).not_to be_nil
|
146
|
+
expect(xs.users).not_to be_nil
|
147
|
+
expect(xs.vhosts).not_to be_nil
|
150
148
|
end
|
151
149
|
end
|
152
150
|
|
@@ -324,16 +322,6 @@ describe RabbitMQ::HTTP::Client do
|
|
324
322
|
x = @channel.fanout(exchange_name, durable: false)
|
325
323
|
subject.delete_exchange("/", exchange_name)
|
326
324
|
end
|
327
|
-
|
328
|
-
# HTTP client tries to uncompress an empty response :( MK
|
329
|
-
it "doesn't delete used exchange" do
|
330
|
-
q = @channel.queue("")
|
331
|
-
e = @channel.fanout(exchange_name, durable: false)
|
332
|
-
q.bind(e)
|
333
|
-
expect do
|
334
|
-
subject.delete_exchange("/", exchange_name, true)
|
335
|
-
end.to raise_error(Faraday::ClientError)
|
336
|
-
end
|
337
325
|
end
|
338
326
|
|
339
327
|
|
@@ -878,7 +866,7 @@ describe RabbitMQ::HTTP::Client do
|
|
878
866
|
end
|
879
867
|
end
|
880
868
|
|
881
|
-
|
869
|
+
200.times do
|
882
870
|
vhost = gen.string
|
883
871
|
|
884
872
|
context "when vhost name is #{vhost}" do
|
@@ -935,18 +923,18 @@ describe RabbitMQ::HTTP::Client do
|
|
935
923
|
describe "PUT /api/users/:name" do
|
936
924
|
context "with tags provided explicitly" do
|
937
925
|
it "updates information about a user" do
|
938
|
-
subject.update_user("alt", :
|
926
|
+
subject.update_user("alt-user", tags: "http, policymaker, management", password: "alt-user")
|
939
927
|
|
940
|
-
u = subject.user_info("alt")
|
928
|
+
u = subject.user_info("alt-user")
|
941
929
|
expect(u.tags).to eq("http,policymaker,management")
|
942
930
|
end
|
943
931
|
end
|
944
932
|
|
945
933
|
context "without tags provided" do
|
946
934
|
it "uses blank tag list" do
|
947
|
-
subject.update_user("alt", :
|
935
|
+
subject.update_user("alt-user", password: "alt-user")
|
948
936
|
|
949
|
-
u = subject.user_info("alt")
|
937
|
+
u = subject.user_info("alt-user")
|
950
938
|
expect(u.tags).to eq("")
|
951
939
|
end
|
952
940
|
end
|
@@ -954,8 +942,8 @@ describe RabbitMQ::HTTP::Client do
|
|
954
942
|
|
955
943
|
describe "DELETE /api/users/:name" do
|
956
944
|
it "deletes a user" do
|
957
|
-
subject.update_user("alt2", :
|
958
|
-
subject.delete_user("alt2")
|
945
|
+
subject.update_user("alt2-user", tags: "http", password: "alt2-user")
|
946
|
+
subject.delete_user("alt2-user")
|
959
947
|
end
|
960
948
|
end
|
961
949
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbitmq_http_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Klishin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|