symphony 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e56f49638e5786e9f84f0411f4065d2766582ea1
4
- data.tar.gz: 2fd2aed4198733e2a6295a758eca506daa60f5db
3
+ metadata.gz: edb7810dc562110768235353536ec4a000b02828
4
+ data.tar.gz: c0a047b0115a9a865ce90606478091e814ab23f5
5
5
  SHA512:
6
- metadata.gz: 9d382c108292a680028806b3807a24475cee35d7d48b79eccba152eb27adb62136b68c0a99f5622668f44ffaf332048f4418a6140bf2d020525acf3f2df2f872
7
- data.tar.gz: 90bee202f40bf9791f81775df6879adff6b2e07ed19101286f4eb3c47b2628306e80a5dd0678f0cb93b9662a3fef92d36159a0e4c2596707bb33c80bb81947c7
6
+ metadata.gz: 26eeea9cdd2546eeb51cf3f6f936e59a69886c0f83d431e8c770ce758564df01153cb710ff73abbb36fd9525f1234f3912f0fc74cb6bc0c01e14df1af437a854
7
+ data.tar.gz: ab8aa95349260ee6782133c5d151ad4e749cd77d906616c48c06cd7b7bdb84b4c94b89126c67032fe469e56ec342d5e0eecac82cf3b82da6330200d1f329d771
checksums.yaml.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,3 +1,72 @@
1
+ 2014-04-14 Mahlon E. Smith <mahlon@laika.com>
2
+
3
+ * Manifest.txt, Rakefile, lib/symphony/tasks/ssh.rb,
4
+ lib/symphony/tasks/sshscript.rb:
5
+ Branch merge from 221b25852ba6.
6
+ [3673b0e7202d] [tip]
7
+
8
+ * .hoerc, Manifest.txt, spec/symphony/mixins_spec.rb:
9
+ Complete the intervalexpression backout.
10
+ [ab1e59fc5ef8]
11
+
12
+ 2014-04-14 Mahlon E. Smith <mahlon@martini.nu>
13
+
14
+ * .hgignore, Manifest.txt, Rakefile,
15
+ lib/symphony/intervalexpression.rl, lib/symphony/mixins.rb,
16
+ spec/symphony/intervalexpression_spec.rb,
17
+ spec/symphony/mixins_spec.rb:
18
+ After some further consideration, the intervalexpression pieces
19
+ aren't necessarily dependent upon symphony core -- breaking the
20
+ scheduling components out.
21
+ [9ec6a4b61674]
22
+
23
+ 2014-04-14 Michael Granger <ged@FaerieMUD.org>
24
+
25
+ * Manifest.txt, lib/symphony/daemon.rb, lib/symphony/queue.rb,
26
+ lib/symphony/task.rb:
27
+ Allow a task to declare its queue as persistant.
28
+ [221b25852ba6]
29
+
30
+ * Rakefile:
31
+ Make the gemspec task a little smarter
32
+ [03efe7b2c206]
33
+
34
+ 2014-04-11 Michael Granger <ged@FaerieMUD.org>
35
+
36
+ * lib/symphony/tasks/ssh.rb, lib/symphony/tasks/sshscript.rb:
37
+ Break out SSH tasks into their own gem
38
+ [a3c5dd11f642]
39
+
40
+ 2014-04-08 Michael Granger <ged@FaerieMUD.org>
41
+
42
+ * .hgtags:
43
+ Added tag v0.5.0 for changeset f8e6883990fc
44
+ [41fc4926342b] [github/master]
45
+
46
+ * .hgsigs:
47
+ Added signature for changeset 369353a62297
48
+ [f8e6883990fc] [v0.5.0]
49
+
50
+ * History.rdoc, lib/symphony.rb:
51
+ Bump minor version, update history.
52
+ [369353a62297]
53
+
54
+ * lib/symphony/task.rb:
55
+ Don't set up default signal handlers for WINCH and CHLD for Tasks.
56
+ [d42c7aa57e0b]
57
+
58
+ 2014-04-05 Michael Granger <ged@FaerieMUD.org>
59
+
60
+ * .hoerc, Manifest.txt, Rakefile, lib/symphony/intervalexpression.rl,
61
+ lib/symphony/mixins.rb, spec/symphony/intervalexpression_spec.rb,
62
+ spec/symphony/mixins_spec.rb:
63
+ Make time-math stuff in IntervalExpression a little safer.
64
+
65
+ - Use refinements to avoid polluting core modules
66
+ - Use an explicit function instead of #send for interval calulation.
67
+ - Fix manifest, add ragel files to the manifest-exclude pattern.
68
+ [466b8bd312b4]
69
+
1
70
  2014-04-04 Mahlon E. Smith <mahlon@laika.com>
2
71
 
3
72
  * .hgignore, Manifest.txt, Rakefile,
@@ -6,13 +75,13 @@
6
75
  spec/symphony/mixins_spec.rb:
7
76
  Add an interval expression parsing library in preparation for
8
77
  Symphony scheduling.
9
- [cddc160bc76f] [tip]
78
+ [cddc160bc76f]
10
79
 
11
80
  2014-04-01 Michael Granger <ged@FaerieMUD.org>
12
81
 
13
82
  * Rakefile:
14
83
  Add direct dependency on loggability
15
- [3afd6890a914] [github/master]
84
+ [3afd6890a914]
16
85
 
17
86
  * TODO.md:
18
87
  Update TODO list
data/History.rdoc CHANGED
@@ -1,3 +1,12 @@
1
+ == v0.6.0 [2014-04-14] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ - Set cancel-on-failover flag in the queue consumer
4
+ - Allow a task to declare its queue as persistant.
5
+ - Break out SSH tasks into their own gem
6
+ - Remove the interval expression parser; scheduling will
7
+ be part of an separate library if we decide to release it.
8
+
9
+
1
10
  == v0.5.0 [2014-04-08] Michael Granger <ged@FaerieMUD.org>
2
11
 
3
12
  - Don't set up default signal handlers for WINCH and CHLD for Tasks.
data/Manifest.txt CHANGED
@@ -11,7 +11,6 @@ bin/symphony-task
11
11
  etc/config.yml.example
12
12
  lib/symphony.rb
13
13
  lib/symphony/daemon.rb
14
- lib/symphony/intervalexpression.rb
15
14
  lib/symphony/metrics.rb
16
15
  lib/symphony/mixins.rb
17
16
  lib/symphony/queue.rb
@@ -21,11 +20,8 @@ lib/symphony/task.rb
21
20
  lib/symphony/tasks/auditor.rb
22
21
  lib/symphony/tasks/failure_logger.rb
23
22
  lib/symphony/tasks/simulator.rb
24
- lib/symphony/tasks/ssh.rb
25
- lib/symphony/tasks/sshscript.rb
26
23
  spec/helpers.rb
27
24
  spec/symphony/daemon_spec.rb
28
- spec/symphony/intervalexpression_spec.rb
29
25
  spec/symphony/mixins_spec.rb
30
26
  spec/symphony/queue_spec.rb
31
27
  spec/symphony/task_spec.rb
data/Rakefile CHANGED
@@ -1,22 +1,12 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'pathname'
4
-
5
3
  begin
6
4
  require 'hoe'
7
5
  rescue LoadError
8
6
  abort "This Rakefile requires hoe (gem install hoe)"
9
7
  end
10
8
 
11
-
12
- BASEDIR = Pathname( __FILE__ ).dirname.relative_path_from( Pathname.pwd )
13
-
14
- LIBDIR = BASEDIR + 'lib'
15
- SYMPHONY_LIBDIR = LIBDIR + 'symphony'
16
-
17
- GEMSPEC = BASEDIR + 'symphony.gemspec'
18
- EXPRESSION_RL = SYMPHONY_LIBDIR + 'intervalexpression.rl'
19
- EXPRESSION_RB = SYMPHONY_LIBDIR + 'intervalexpression.rb'
9
+ GEMSPEC = 'symphony.gemspec'
20
10
 
21
11
 
22
12
  Hoe.plugin :mercurial
@@ -47,29 +37,25 @@ hoespec = Hoe.spec 'symphony' do |spec|
47
37
  spec.dependency 'rusage', '~> 0.2'
48
38
 
49
39
  spec.dependency 'rspec', '~> 3.0', :developer
50
- spec.dependency 'net-ssh', '~> 2.8', :developer
51
- spec.dependency 'net-sftp', '~> 2.1', :developer
52
40
  spec.dependency 'simplecov', '~> 0.8', :developer
53
41
 
54
42
  spec.require_ruby_version( '>=2.0.0' )
55
43
  spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
56
- spec.quality_check_whitelist.include( EXPRESSION_RB.to_s ) if
57
- spec.respond_to?( :quality_check_whitelist )
58
44
 
59
45
  self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
60
46
  end
61
47
 
48
+ # Fix some Hoe retardedness
49
+ hoespec.spec.files.delete( '.gemtest' )
62
50
  ENV['VERSION'] ||= hoespec.spec.version.to_s
63
51
 
64
52
  # Run the tests before checking in
65
53
  task 'hg:precheckin' => [ :check_history, :check_manifest, :spec ]
66
54
 
67
-
68
55
  # Rebuild the ChangeLog immediately before release
69
56
  task :prerelease => 'ChangeLog'
70
57
  CLOBBER.include( 'ChangeLog' )
71
58
 
72
-
73
59
  desc "Build a coverage report"
74
60
  task :coverage do
75
61
  ENV["COVERAGE"] = 'yes'
@@ -77,24 +63,16 @@ task :coverage do
77
63
  end
78
64
 
79
65
 
80
- # Generate the expression parser with Ragel
81
- file EXPRESSION_RL
82
- file EXPRESSION_RB
83
- task EXPRESSION_RB => EXPRESSION_RL do |task|
84
- sh 'ragel', '-R', '-T1', '-Ls', task.prerequisites.first
85
- end
86
- task :spec => EXPRESSION_RB
87
-
88
-
89
- # Generate a .gemspec file for integration with systems that read it
90
66
  task :gemspec => GEMSPEC
91
- file GEMSPEC => __FILE__ do |task|
67
+ file GEMSPEC => hoespec.spec.files do |task|
92
68
  spec = $hoespec.spec
93
- spec.files.delete( '.gemtest' )
94
69
  spec.version = "#{spec.version}.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
95
70
  File.open( task.name, 'w' ) do |fh|
96
71
  fh.write( spec.to_ruby )
97
72
  end
98
73
  end
74
+
99
75
  task :default => :gemspec
100
76
 
77
+ CLOBBER.include( GEMSPEC.to_s )
78
+
data/TODO.md CHANGED
@@ -1,4 +1,3 @@
1
1
 
2
- [ ] Update pinger/ssh/sshscript
3
2
  [ ] Per Task throttling for daemon
4
3
  [ ] Task scaling (min/max settings), check queue backlog during received message
@@ -29,7 +29,7 @@ class Symphony::Daemon
29
29
  CONFIG_DEFAULTS = {
30
30
  throttle_max: 16,
31
31
  throttle_factor: 1,
32
- tasks: []
32
+ tasks: []
33
33
  }
34
34
 
35
35
  # Signals we understand
@@ -71,151 +71,5 @@ module Symphony
71
71
  end # module MethodUtilities
72
72
 
73
73
 
74
- # Functions for time calculations
75
- module TimeFunctions
76
-
77
- ###############
78
- module_function
79
- ###############
80
-
81
- ### Calculate the (approximate) number of seconds that are in +count+ of the
82
- ### given +unit+ of time.
83
- def calculate_seconds( count, unit )
84
- return case unit
85
- when :seconds, :second
86
- count
87
- when :minutes, :minute
88
- count * 60
89
- when :hours, :hour
90
- count * 3600
91
- when :days, :day
92
- count * 86400
93
- when :weeks, :week
94
- count * 604800
95
- when :fortnights, :fortnight
96
- count * 1209600
97
- when :months, :month
98
- count * 2592000
99
- when :years, :year
100
- count * 31557600
101
- else
102
- raise ArgumentError, "don't know how to calculate seconds in a %p" % [ unit ]
103
- end
104
- end
105
-
106
- end # module TimeFunctions
107
-
108
-
109
- # Refinements to Numeric to add time-related convenience methods
110
- module TimeRefinements
111
- refine Numeric do
112
-
113
- ### Number of seconds (returns receiver unmodified)
114
- def seconds
115
- return self
116
- end
117
- alias_method :second, :seconds
118
-
119
- ### Returns number of seconds in <receiver> minutes
120
- def minutes
121
- return TimeFunctions.calculate_seconds( self, :minutes )
122
- end
123
- alias_method :minute, :minutes
124
-
125
- ### Returns the number of seconds in <receiver> hours
126
- def hours
127
- return TimeFunctions.calculate_seconds( self, :hours )
128
- end
129
- alias_method :hour, :hours
130
-
131
- ### Returns the number of seconds in <receiver> days
132
- def days
133
- return TimeFunctions.calculate_seconds( self, :day )
134
- end
135
- alias_method :day, :days
136
-
137
- ### Return the number of seconds in <receiver> weeks
138
- def weeks
139
- return TimeFunctions.calculate_seconds( self, :weeks )
140
- end
141
- alias_method :week, :weeks
142
-
143
- ### Returns the number of seconds in <receiver> fortnights
144
- def fortnights
145
- return TimeFunctions.calculate_seconds( self, :fortnights )
146
- end
147
- alias_method :fortnight, :fortnights
148
-
149
- ### Returns the number of seconds in <receiver> months (approximate)
150
- def months
151
- return TimeFunctions.calculate_seconds( self, :months )
152
- end
153
- alias_method :month, :months
154
-
155
- ### Returns the number of seconds in <receiver> years (approximate)
156
- def years
157
- return TimeFunctions.calculate_seconds( self, :years )
158
- end
159
- alias_method :year, :years
160
-
161
-
162
- ### Returns the Time <receiver> number of seconds before the
163
- ### specified +time+. E.g., 2.hours.before( header.expiration )
164
- def before( time )
165
- return time - self
166
- end
167
-
168
-
169
- ### Returns the Time <receiver> number of seconds ago. (e.g.,
170
- ### expiration > 2.hours.ago )
171
- def ago
172
- return self.before( ::Time.now )
173
- end
174
-
175
-
176
- ### Returns the Time <receiver> number of seconds after the given +time+.
177
- ### E.g., 10.minutes.after( header.expiration )
178
- def after( time )
179
- return time + self
180
- end
181
-
182
-
183
- ### Return a new Time <receiver> number of seconds from now.
184
- def from_now
185
- return self.after( ::Time.now )
186
- end
187
-
188
-
189
- ### Return a string describing approximately the amount of time in
190
- ### <receiver> number of seconds.
191
- def timeperiod
192
- return case
193
- when self < 1.minute
194
- 'less than a minute'
195
- when self < 50.minutes
196
- '%d minutes' % [ (self.to_f / 1.minute).ceil ]
197
- when self < 90.minutes
198
- 'about an hour'
199
- when self < 18.hours
200
- "%d hours" % [ (self.to_f / 1.hour).ceil ]
201
- when self < 30.hours
202
- 'about a day'
203
- when self < 1.week
204
- "%d days" % [ (self.to_f / 1.day).ceil ]
205
- when self < 2.weeks
206
- 'about one week'
207
- when self < 3.months
208
- "%d weeks" % [ (self.to_f / 1.week).ceil ]
209
- when self < 18.months
210
- "%d months" % [ (self.to_f / 1.month).ceil ]
211
- else
212
- "%d years" % [ (self.to_f / 1.year).ceil ]
213
- end
214
- end
215
-
216
- end # refine Numeric
217
- end # module TimeRefinements
218
74
 
219
75
  end # module Symphony
220
-
221
-
@@ -22,6 +22,11 @@ class Symphony::Queue
22
22
  heartbeat: 'server',
23
23
  }
24
24
 
25
+ # Arguments to use when creating the consumer
26
+ CONSUMER_ARGS = {
27
+ 'x-cancel-on-ha-failover' => true,
28
+ }
29
+
25
30
  # The default number of messages to prefetch
26
31
  DEFAULT_PREFETCH = 10
27
32
 
@@ -139,7 +144,8 @@ class Symphony::Queue
139
144
  task_class.acknowledge,
140
145
  task_class.consumer_tag,
141
146
  task_class.routing_keys,
142
- task_class.prefetch
147
+ task_class.prefetch,
148
+ task_class.persistent
143
149
  ]
144
150
  return new( *args )
145
151
  end
@@ -147,12 +153,13 @@ class Symphony::Queue
147
153
 
148
154
 
149
155
  ### Create a new Queue with the specified configuration.
150
- def initialize( name, acknowledge, consumer_tag, routing_keys, prefetch )
156
+ def initialize( name, acknowledge, consumer_tag, routing_keys, prefetch, persistent )
151
157
  @name = name
152
158
  @acknowledge = acknowledge
153
159
  @consumer_tag = consumer_tag
154
160
  @routing_keys = routing_keys
155
161
  @prefetch = prefetch
162
+ @persistent = persistent
156
163
 
157
164
  @amqp_queue = nil
158
165
  @shutting_down = false
@@ -178,6 +185,12 @@ class Symphony::Queue
178
185
  # The maximum number of un-acked messages to prefetch
179
186
  attr_reader :prefetch
180
187
 
188
+ # Whether or not to create a persistent queue
189
+ attr_reader :persistent
190
+
191
+ # The underlying Bunny::Queue this object manages
192
+ attr_reader :amqp_queue
193
+
181
194
  # The Bunny::Consumer that is dispatching messages for the queue.
182
195
  attr_accessor :consumer
183
196
 
@@ -211,7 +224,7 @@ class Symphony::Queue
211
224
  # Last argument is *no_ack*, so need to invert the logic
212
225
  self.log.debug "Creating consumer for the '%s' queue with tag: %s" %
213
226
  [ amqp_queue.name, tag ]
214
- cons = Bunny::Consumer.new( amqp_queue.channel, amqp_queue, tag, !ackmode )
227
+ cons = Bunny::Consumer.new( amqp_queue.channel, amqp_queue, tag, !ackmode, false, CONSUMER_ARGS )
215
228
 
216
229
  cons.on_delivery do |delivery_info, properties, payload|
217
230
  rval = self.handle_message( delivery_info, properties, payload, &work_callback )
@@ -244,7 +257,7 @@ class Symphony::Queue
244
257
  channel = self.class.reset_amqp_channel
245
258
  channel.prefetch( prefetch_count )
246
259
 
247
- queue = channel.queue( self.name, auto_delete: true )
260
+ queue = channel.queue( self.name, auto_delete: !self.persistent )
248
261
  self.routing_keys.each do |key|
249
262
  self.log.info " binding queue %s to the %s exchange with topic key: %s" %
250
263
  [ self.name, exchange.name, key ]
data/lib/symphony/task.rb CHANGED
@@ -68,6 +68,7 @@ class Symphony::Task
68
68
  subclass.instance_variable_set( :@work_model, :longlived )
69
69
  subclass.instance_variable_set( :@prefetch, 10 )
70
70
  subclass.instance_variable_set( :@timeout_action, :reject )
71
+ subclass.instance_variable_set( :@persistent, false )
71
72
  end
72
73
 
73
74
 
@@ -188,6 +189,19 @@ class Symphony::Task
188
189
  end
189
190
 
190
191
 
192
+ ### Create the queue the task consumes from as a persistent queue, so it
193
+ ### will continue to receive events even if the task is no longer consuming them.
194
+ ### This only effects queues which are not already declared, so if the
195
+ ### bindings for the queue change you'll need to delete the existing queue
196
+ ### before starting up to have them take effect.
197
+ def self::persistent( new_setting=nil )
198
+ if new_setting
199
+ @persistent = new_setting
200
+ end
201
+ return @persistent
202
+ end
203
+
204
+
191
205
  #
192
206
  # Instance Methods
193
207
  #
data/lib/symphony.rb CHANGED
@@ -12,10 +12,10 @@ module Symphony
12
12
  Configurability
13
13
 
14
14
  # Library version constant
15
- VERSION = '0.5.0'
15
+ VERSION = '0.6.0'
16
16
 
17
17
  # Version-control revision constant
18
- REVISION = %q$Revision: 369353a62297 $
18
+ REVISION = %q$Revision: fa6a367872f4 $
19
19
 
20
20
 
21
21
  # The name of the environment variable to check for config file overrides
@@ -1,11 +1,9 @@
1
1
  #!/usr/bin/env rspec -wfd
2
- # vim: set nosta noet ts=4 sw=4:
3
2
 
4
3
  require_relative '../helpers'
5
4
 
6
5
  require 'symphony/mixins'
7
6
 
8
- using Symphony::TimeRefinements
9
7
 
10
8
  describe Symphony, 'mixins' do
11
9
 
@@ -77,53 +75,4 @@ describe Symphony, 'mixins' do
77
75
 
78
76
  end
79
77
 
80
-
81
- describe "numeric constant methods" do
82
-
83
- SECONDS_IN_A_MINUTE = 60
84
- SECONDS_IN_AN_HOUR = SECONDS_IN_A_MINUTE * 60
85
- SECONDS_IN_A_DAY = SECONDS_IN_AN_HOUR * 24
86
- SECONDS_IN_A_WEEK = SECONDS_IN_A_DAY * 7
87
- SECONDS_IN_A_FORTNIGHT = SECONDS_IN_A_WEEK * 2
88
- SECONDS_IN_A_MONTH = SECONDS_IN_A_DAY * 30
89
- SECONDS_IN_A_YEAR = Integer( SECONDS_IN_A_DAY * 365.25 )
90
-
91
- it "can calculate the number of seconds for various units of time" do
92
- expect( 1.second ).to eq( 1 )
93
- expect( 14.seconds ).to eq( 14 )
94
-
95
- expect( 1.minute ).to eq( SECONDS_IN_A_MINUTE )
96
- expect( 18.minutes ).to eq( SECONDS_IN_A_MINUTE * 18 )
97
-
98
- expect( 1.hour ).to eq( SECONDS_IN_AN_HOUR )
99
- expect( 723.hours ).to eq( SECONDS_IN_AN_HOUR * 723 )
100
-
101
- expect( 1.day ).to eq( SECONDS_IN_A_DAY )
102
- expect( 3.days ).to eq( SECONDS_IN_A_DAY * 3 )
103
-
104
- expect( 1.week ).to eq( SECONDS_IN_A_WEEK )
105
- expect( 28.weeks ).to eq( SECONDS_IN_A_WEEK * 28 )
106
-
107
- expect( 1.fortnight ).to eq( SECONDS_IN_A_FORTNIGHT )
108
- expect( 31.fortnights ).to eq( SECONDS_IN_A_FORTNIGHT * 31 )
109
-
110
- expect( 1.month ).to eq( SECONDS_IN_A_MONTH )
111
- expect( 67.months ).to eq( SECONDS_IN_A_MONTH * 67 )
112
-
113
- expect( 1.year ).to eq( SECONDS_IN_A_YEAR )
114
- expect( 13.years ).to eq( SECONDS_IN_A_YEAR * 13 )
115
- end
116
-
117
-
118
- it "can calculate various time offsets" do
119
- starttime = Time.now
120
-
121
- expect( 1.second.after( starttime ) ).to eq( starttime + 1 )
122
- expect( 18.seconds.from_now ).to be_within( 10.seconds ).of( starttime + 18 )
123
-
124
- expect( 1.second.before( starttime ) ).to eq( starttime - 1 )
125
- expect( 3.hours.ago ).to be_within( 10.seconds ).of( starttime - 10800 )
126
- end
127
- end
128
78
  end
129
-
@@ -160,7 +160,8 @@ describe Symphony::Queue do
160
160
  with( Symphony::Queue::DEFAULT_PREFETCH )
161
161
 
162
162
  expect( Bunny::Consumer ).to receive( :new ).
163
- with( described_class.amqp_channel, amqp_queue, queue.consumer_tag, false ).
163
+ with( described_class.amqp_channel, amqp_queue, queue.consumer_tag, false, false,
164
+ Symphony::Queue::CONSUMER_ARGS ).
164
165
  and_return( consumer )
165
166
 
166
167
  # Set up an artificial method to call the delivery callback that we can later
@@ -211,7 +212,8 @@ describe Symphony::Queue do
211
212
  expect( described_class.amqp_channel ).to receive( :prefetch ).with( 1 )
212
213
 
213
214
  expect( Bunny::Consumer ).to receive( :new ).
214
- with( described_class.amqp_channel, amqp_queue, queue.consumer_tag, false ).
215
+ with( described_class.amqp_channel, amqp_queue, queue.consumer_tag, false, false,
216
+ Symphony::Queue::CONSUMER_ARGS ).
215
217
  and_return( consumer )
216
218
 
217
219
  expect( consumer ).to receive( :on_delivery ) do |&block|
@@ -253,7 +255,8 @@ describe Symphony::Queue do
253
255
  with( Symphony::Queue::DEFAULT_PREFETCH )
254
256
 
255
257
  expect( Bunny::Consumer ).to receive( :new ).
256
- with( described_class.amqp_channel, amqp_queue, queue.consumer_tag, false ).
258
+ with( described_class.amqp_channel, amqp_queue, queue.consumer_tag, false, false,
259
+ Symphony::Queue::CONSUMER_ARGS ).
257
260
  and_return( consumer )
258
261
 
259
262
  expect( consumer ).to receive( :on_delivery )
@@ -282,7 +285,8 @@ describe Symphony::Queue do
282
285
 
283
286
  # Ackmode argument is actually 'no_ack'
284
287
  expect( Bunny::Consumer ).to receive( :new ).
285
- with( amqp_channel, amqp_queue, queue.consumer_tag, false ).
288
+ with( amqp_channel, amqp_queue, queue.consumer_tag, false, false,
289
+ Symphony::Queue::CONSUMER_ARGS ).
286
290
  and_return( consumer )
287
291
  expect( consumer ).to receive( :on_delivery )
288
292
  expect( consumer ).to receive( :on_cancellation )
@@ -299,7 +303,8 @@ describe Symphony::Queue do
299
303
  # Ackmode argument is actually 'no_ack'
300
304
  queue.instance_variable_set( :@acknowledge, false )
301
305
  expect( Bunny::Consumer ).to receive( :new ).
302
- with( amqp_channel, amqp_queue, queue.consumer_tag, true ).
306
+ with( amqp_channel, amqp_queue, queue.consumer_tag, true, false,
307
+ Symphony::Queue::CONSUMER_ARGS ).
303
308
  and_return( consumer )
304
309
  expect( consumer ).to receive( :on_delivery )
305
310
  expect( consumer ).to receive( :on_cancellation )
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symphony
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -31,7 +31,7 @@ cert_chain:
31
31
  c7ZKPJcWBv0sm81+FCZXNACn2f9jfF8OQinxVs0O052KbGuEQaaiGIYeuuwQE2q6
32
32
  ggcrPfcYeTwWlfZPu2LrBg==
33
33
  -----END CERTIFICATE-----
34
- date: 2014-04-08 00:00:00.000000000 Z
34
+ date: 2014-04-14 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: loggability
@@ -215,34 +215,6 @@ dependencies:
215
215
  - - ~>
216
216
  - !ruby/object:Gem::Version
217
217
  version: '3.0'
218
- - !ruby/object:Gem::Dependency
219
- name: net-ssh
220
- requirement: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - ~>
223
- - !ruby/object:Gem::Version
224
- version: '2.8'
225
- type: :development
226
- prerelease: false
227
- version_requirements: !ruby/object:Gem::Requirement
228
- requirements:
229
- - - ~>
230
- - !ruby/object:Gem::Version
231
- version: '2.8'
232
- - !ruby/object:Gem::Dependency
233
- name: net-sftp
234
- requirement: !ruby/object:Gem::Requirement
235
- requirements:
236
- - - ~>
237
- - !ruby/object:Gem::Version
238
- version: '2.1'
239
- type: :development
240
- prerelease: false
241
- version_requirements: !ruby/object:Gem::Requirement
242
- requirements:
243
- - - ~>
244
- - !ruby/object:Gem::Version
245
- version: '2.1'
246
218
  - !ruby/object:Gem::Dependency
247
219
  name: simplecov
248
220
  requirement: !ruby/object:Gem::Requirement
@@ -299,7 +271,6 @@ extra_rdoc_files:
299
271
  - TODO.md
300
272
  - USAGE.rdoc
301
273
  files:
302
- - .gemtest
303
274
  - .simplecov
304
275
  - ChangeLog
305
276
  - History.rdoc
@@ -313,7 +284,6 @@ files:
313
284
  - etc/config.yml.example
314
285
  - lib/symphony.rb
315
286
  - lib/symphony/daemon.rb
316
- - lib/symphony/intervalexpression.rb
317
287
  - lib/symphony/metrics.rb
318
288
  - lib/symphony/mixins.rb
319
289
  - lib/symphony/queue.rb
@@ -323,11 +293,8 @@ files:
323
293
  - lib/symphony/tasks/auditor.rb
324
294
  - lib/symphony/tasks/failure_logger.rb
325
295
  - lib/symphony/tasks/simulator.rb
326
- - lib/symphony/tasks/ssh.rb
327
- - lib/symphony/tasks/sshscript.rb
328
296
  - spec/helpers.rb
329
297
  - spec/symphony/daemon_spec.rb
330
- - spec/symphony/intervalexpression_spec.rb
331
298
  - spec/symphony/mixins_spec.rb
332
299
  - spec/symphony/queue_spec.rb
333
300
  - spec/symphony/task_spec.rb