rabbitmq-definition 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9558cc90dbc35ad6da73cf4ee370d9c4e482806b
4
- data.tar.gz: 8e4385f1ce830292e5862e2caeac4100029581f6
3
+ metadata.gz: 2346e336b95759186f990ce466977d975559d2d0
4
+ data.tar.gz: da0e4f48f31ba586e9b8b7a234d8fb11c4228c77
5
5
  SHA512:
6
- metadata.gz: 5adaf811cb71f0be656b08e666f7ff69e0e2f7af59c4d3b84609326c0bfc00df835b8cdf50b8fd4871439b53b6fa06a7585d63de03477da925cdcc7d0294b839
7
- data.tar.gz: 5a0476d06491279a45f5c2f1abc86457b11bc142b4c93c011f341bb97bca3accdf03b48316b13f291a1e1648f7575ec5be718840ec04bcb11dfd4454a5d740df
6
+ metadata.gz: 464144aa22549140f8af197b00b3683c26244414581996cb6bccc18fa96e903ec6157e2524b2dab83b9b5441b84f43705b9355058c746d7671a9ffbb68d2fee7
7
+ data.tar.gz: 282a2f61ebf894b167162a86cacade76317db3a4184c78b81f0e709f8c0c3c2beea879c4831664d0aff5686e2cf05b8f67409522030c84b162a4f49d903f7b97
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rabbitmq-definition (0.1.0)
4
+ rabbitmq-definition (0.1.2)
5
5
  colorize (~> 0.7)
6
6
  highline (~> 1.7)
7
7
  json (~> 1.8)
8
- rabbitmq_http_api_client (>= 1.6)
8
+ rabbitmq_http_api_client (~> 1.6)
9
9
  rails (~> 4.0)
10
- rake (~> 10.4)
10
+ rake (~> 10.0)
11
11
 
12
12
  GEM
13
13
  remote: http://rubygems.org/
@@ -6,7 +6,7 @@ module RabbitMQ::Definition
6
6
  end
7
7
 
8
8
  def execute
9
- FileDefinition.new(filtered_list_definition).tap do |definition|
9
+ FileDefinition.new(filter_and_order_list_definition).tap do |definition|
10
10
  Logger.info definition.to_json if verbose
11
11
  Logger.progress "Saving definition..."
12
12
  definition.save
@@ -16,23 +16,30 @@ module RabbitMQ::Definition
16
16
 
17
17
  private
18
18
 
19
- def filtered_list_definition
19
+ def filter_and_order_list_definition
20
20
  client.list_definitions.reduce({}) do |result, (key, value)|
21
- if key.to_s == "vhosts"
22
- value = @vhosts.map {|name| {'name' => name} }
23
- elsif value.is_a?(Array)
24
- value = filter_vhost_items(value)
21
+ value = case key
22
+ when "vhosts"
23
+ @vhosts.sort.map {|name| {'name' => name} }
24
+ when "queues", "exchanges"
25
+ filter_vhosts(value).sort do |a, b|
26
+ [a["vhost"], a["name"]] <=> [b["vhost"], b["name"]]
27
+ end
28
+ when "bindings"
29
+ filter_vhosts(value).sort do |a, b|
30
+ [a["vhost"], a["source"], a["destination"], a["routing_key"]] <=> [b["vhost"], b["source"], b["destination"], b["routing_key"]]
31
+ end
32
+ else
33
+ value
25
34
  end
26
35
  result[key] = value
27
36
  result
28
37
  end
29
38
  end
30
39
 
31
- def filter_vhost_items(items)
40
+ def filter_vhosts(items)
32
41
  items.reduce([]) do |array, item|
33
- if !item.has_key?("vhost") || @vhosts.include?(item["vhost"])
34
- array.push(item)
35
- end
42
+ array.push(item) if @vhosts.include?(item["vhost"])
36
43
  array
37
44
  end
38
45
  end
@@ -1,5 +1,5 @@
1
1
  module RabbitMQ
2
2
  module Definition
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -5,7 +5,16 @@ describe RabbitMQ::Definition::Dump do
5
5
  'vhosts' => [{'name' => '/'}, 'name' => '/other-vhost'],
6
6
  'queues' => [
7
7
  {
8
- "name" => "my-queue",
8
+ "name" => "my-b-queue",
9
+ "vhost" => "/",
10
+ "durable" => true,
11
+ "auto_delete" => false,
12
+ "arguments" => {
13
+ "x-dead-letter-exchange" => "dead"
14
+ }
15
+ },
16
+ {
17
+ "name" => "my-a-queue",
9
18
  "vhost" => "/",
10
19
  "durable" => true,
11
20
  "auto_delete" => false,
@@ -20,7 +29,17 @@ describe RabbitMQ::Definition::Dump do
20
29
  ],
21
30
  'exchanges' => [
22
31
  {
23
- "name" => "my-exchange",
32
+ "name" => "my-b-exchange",
33
+ "vhost" => "/",
34
+ "type" => "topic",
35
+ "durable" => true,
36
+ "auto_delete" => false,
37
+ "internal" => false,
38
+ "arguments" => {
39
+ }
40
+ },
41
+ {
42
+ "name" => "my-a-exchange",
24
43
  "vhost" => "/",
25
44
  "type" => "topic",
26
45
  "durable" => true,
@@ -42,9 +61,9 @@ describe RabbitMQ::Definition::Dump do
42
61
  ],
43
62
  'bindings' => [
44
63
  {
45
- "source" => "my-exchange",
64
+ "source" => "my-a-exchange",
46
65
  "vhost" => "/",
47
- "destination" => "my-queue",
66
+ "destination" => "my-a-queue",
48
67
  "destination_type" => "queue",
49
68
  "routing_key" => "my-routing-key.#",
50
69
  "arguments" => {
@@ -70,7 +89,16 @@ describe RabbitMQ::Definition::Dump do
70
89
  ],
71
90
  'queues' => [
72
91
  {
73
- "name" => "my-queue",
92
+ "name" => "my-a-queue",
93
+ "vhost" => "/",
94
+ "durable" => true,
95
+ "auto_delete" => false,
96
+ "arguments" => {
97
+ "x-dead-letter-exchange" => "dead"
98
+ }
99
+ },
100
+ {
101
+ "name" => "my-b-queue",
74
102
  "vhost" => "/",
75
103
  "durable" => true,
76
104
  "auto_delete" => false,
@@ -81,7 +109,17 @@ describe RabbitMQ::Definition::Dump do
81
109
  ],
82
110
  'exchanges' => [
83
111
  {
84
- "name" => "my-exchange",
112
+ "name" => "my-a-exchange",
113
+ "vhost" => "/",
114
+ "type" => "topic",
115
+ "durable" => true,
116
+ "auto_delete" => false,
117
+ "internal" => false,
118
+ "arguments" => {
119
+ }
120
+ },
121
+ {
122
+ "name" => "my-b-exchange",
85
123
  "vhost" => "/",
86
124
  "type" => "topic",
87
125
  "durable" => true,
@@ -93,9 +131,9 @@ describe RabbitMQ::Definition::Dump do
93
131
  ],
94
132
  'bindings' => [
95
133
  {
96
- "source" => "my-exchange",
134
+ "source" => "my-a-exchange",
97
135
  "vhost" => "/",
98
- "destination" => "my-queue",
136
+ "destination" => "my-a-queue",
99
137
  "destination_type" => "queue",
100
138
  "routing_key" => "my-routing-key.#",
101
139
  "arguments" => {
@@ -136,7 +174,7 @@ describe RabbitMQ::Definition::Dump do
136
174
  described_class.run(client, false, ['/'])
137
175
  end
138
176
 
139
- it "generates the file definition with the filtered list definitions taking vhosts from files" do
177
+ it "generates the file definition with the filtered list definitions taking vhosts from files and sorting arrays by name / source" do
140
178
  original_definition = double(:vhosts => [{'name' => '/'}])
141
179
  expect(RabbitMQ::Definition::FileDefinition).to receive(:read).and_return(original_definition)
142
180
  definition = double("Definition")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbitmq-definition
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pol Miro