slnky 0.10.2 → 0.11.0

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: 02cf077e415691dad1af02c3426a1e0719c2467d
4
- data.tar.gz: f56f27039461b3f9c7fa7e4b4e9bbb1276c126bb
3
+ metadata.gz: 60ccd795293874420c8feeb8b5f8e4f088e567f1
4
+ data.tar.gz: 6b3b948310f95d6704244dde2558c329f600e427
5
5
  SHA512:
6
- metadata.gz: 6d19c386984b66bf09aff34d24d0871271907a2f8d1fcd50c568a2deec213d108923ad9d8980b9624d96a880b5958fe5680e1c596a0c503cd772fb6060246d6b
7
- data.tar.gz: 8573582553001f0a3bf5417cf55e294675d5d673161cc8b1f0c5d7e5a4c611ac4e820f36d9a22019da964c20dc1e61517ae503cb22de92d9f7b66faecdd61794
6
+ metadata.gz: 22fbb510b160aa8214331c479a78227663188398179e11a67c35efe4e1db133d256c12ec11224e6d2235ec1616e68d4fb857816cb9da42171658eb54ac3ad04a
7
+ data.tar.gz: 4f40e12b83f8853cfe6692d1c9ed3215f6536a23c6366095dfa4779d7583c40a83758bf15ada9f8259513e74335de1e93b2c14e8095d6f7c4379c3f5272fa440
@@ -39,6 +39,7 @@ module Slnky
39
39
  tx.start!(self) do |_|
40
40
  tx.exchange('response', :direct)
41
41
  queue = tx.queue(response, 'response', durable: false, auto_delete: true, routing_key: response)
42
+ # queue = tx.queue(response, 'response', durable: true, routing_key: response)
42
43
  queue.subscribe do |raw|
43
44
  message = Slnky::Message.parse(raw)
44
45
  level = message.level.to_sym
@@ -47,7 +48,7 @@ module Slnky
47
48
  elsif level == :start
48
49
  # start tracking responders?
49
50
  else
50
- out message.level, message.message, message.service
51
+ out level, message.message, message.service
51
52
  end
52
53
  end
53
54
 
@@ -6,6 +6,7 @@ module Slnky
6
6
  n.gsub(/^slnky-/, '')
7
7
  end
8
8
  # option %w{-f --force}, :flag, "force overwrite of files"
9
+ option %w{-t --trace}, :flag, "print full backtrace on error"
9
10
  def execute
10
11
  lib = File.expand_path("#{Dir.pwd}/lib", __FILE__)
11
12
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
@@ -20,9 +21,16 @@ module Slnky
20
21
 
21
22
  Slnky::Config.reset!
22
23
  Slnky::Config.configure(name, 'environment' => environment)
23
- Slnky::Chef::Service.new.start
24
+
25
+ klass = "Slnky::#{name.capitalize}::Service".constantize
26
+ klass.new.start
24
27
  rescue => e
25
28
  puts "failed to run service #{name}: #{e.message} at #{e.backtrace.first}"
29
+ if trace?
30
+ e.backtrace.each do |b|
31
+ puts " #{b}"
32
+ end
33
+ end
26
34
  end
27
35
  end
28
36
  end
@@ -8,13 +8,14 @@ module Slnky
8
8
  @route = route
9
9
  @service = Slnky::System.pid
10
10
  @started = false
11
+ @exchange = nil
12
+ @transport = nil
11
13
  @trace = []
12
14
  end
13
15
 
14
- [:info, :warn, :error].each do |l|
16
+ [:debug, :info, :warn, :error].each do |l|
15
17
  define_method(l) do |message|
16
18
  start! unless @started
17
- log.local.send(l, "RESPONSE: #{message}")
18
19
  pub l, message
19
20
  end
20
21
  end
@@ -43,11 +44,19 @@ module Slnky
43
44
  end
44
45
 
45
46
  def pub(level, message)
46
- # puts "#{level} #{message}"
47
+ # puts "not connected?" unless transport.connected? && exchange
47
48
  exchange.publish(msg(level, message), routing_key: @route)
48
49
  @trace << message
49
50
  end
50
51
 
52
+ def config
53
+ Slnky.config
54
+ end
55
+
56
+ def log
57
+ Slnky.log
58
+ end
59
+
51
60
  def exchange
52
61
  @exchange ||= transport.exchanges['response']
53
62
  end
@@ -55,10 +64,6 @@ module Slnky
55
64
  def transport
56
65
  @transport ||= Slnky::Transport.instance
57
66
  end
58
-
59
- def channel
60
- @channel ||= transport.channel
61
- end
62
67
  end
63
68
  end
64
69
  end
data/lib/slnky/command.rb CHANGED
@@ -24,10 +24,11 @@ module Slnky
24
24
  end
25
25
 
26
26
  rescue => e
27
+ puts "ERROR: #{e.message}"
27
28
  log.error "failed to run command: #{name}: #{data.command}: #{e.message} at #{e.backtrace.first}"
28
29
  ensure
29
- res.done!
30
30
  log.response = false
31
+ res.done!
31
32
  end
32
33
  end
33
34
 
@@ -55,8 +56,12 @@ module Slnky
55
56
  @name ||= self.class.name.split('::')[1].downcase
56
57
  end
57
58
 
59
+ def config
60
+ Slnky.config
61
+ end
62
+
58
63
  def log
59
- @log ||= Slnky.log
64
+ Slnky.log
60
65
  end
61
66
 
62
67
  class << self
@@ -85,7 +90,7 @@ module Slnky
85
90
  end
86
91
 
87
92
  def process(args)
88
- opts = Docopt::docopt(@doc, argv: args)
93
+ opts = Docopt::docopt(@doc, argv: args||[])
89
94
  data = Slnky::Data.new
90
95
  opts.each do |key, value|
91
96
  k = key.gsub(/^--/, '').downcase
@@ -26,8 +26,6 @@ module Slnky
26
26
  # puts " from: #{@template}"
27
27
  # puts " to: #{@dir}"
28
28
  process_files
29
- # make service executable
30
- `chmod 755 #{@dir}/service-slnky-#{@name}`
31
29
  # git init
32
30
  if File.directory?("#{@dir}/.git")
33
31
  puts "git already initialized"
data/lib/slnky/log.rb CHANGED
@@ -29,7 +29,7 @@ module Slnky
29
29
  @service = false
30
30
  else # development or unset
31
31
  @local = Slnky::Log::Local.new
32
- @service = false
32
+ @service = Slnky::Log::Service.new
33
33
  end
34
34
  end
35
35
 
@@ -72,7 +72,7 @@ module Slnky
72
72
  class Local < Base
73
73
  def initialize
74
74
  super
75
- @logger = Logger.new(STDOUT)
75
+ @logger = ::Logger.new(STDOUT)
76
76
  @logger.formatter = proc do |severity, datetime, progname, msg|
77
77
  "%-5s %s: %s: %s\n" % [severity, datetime, Slnky::System.pid, msg]
78
78
  end
@@ -6,7 +6,7 @@ describe Slnky::<%= cap %>::Service do
6
6
  s.client = Slnky::<%= cap %>::Mock.new
7
7
  s
8
8
  end
9
- let(:test_event) { event_load('test')}
9
+ let(:test_event) { slnky_event('test')}
10
10
 
11
11
  it 'handles event' do
12
12
  # test that the handler method receives and responds correctly
@@ -1,3 +1,3 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
2
  require 'slnky/spec/helper'
3
- require 'slnky/chef'
3
+ require 'slnky/<%= name %>'
@@ -13,8 +13,7 @@ module Slnky
13
13
  class Rabbit
14
14
  attr_reader :channel
15
15
  attr_reader :exchanges
16
- attr_reader :queues
17
- attr_reader :stopper
16
+ # attr_reader :queues
18
17
 
19
18
  def initialize
20
19
  @config = Slnky.config
@@ -48,12 +47,10 @@ module Slnky
48
47
  yield self if block_given?
49
48
 
50
49
  if service.is_a?(Slnky::Service::Base)
51
- queues.each do |name, queue|
52
- queue.subscribe do |raw|
53
- event = Slnky::Message.parse(raw)
54
- service.subscriber.for(event.name) do |name, method|
55
- service.send(method.to_sym, event.name, event.payload)
56
- end
50
+ queue(service.name, 'events').subscribe do |raw|
51
+ event = Slnky::Message.parse(raw)
52
+ service.subscriber.for(event.name) do |name, method|
53
+ service.send(method.to_sym, event.name, event.payload)
57
54
  end
58
55
  end
59
56
 
@@ -72,10 +69,14 @@ module Slnky
72
69
  @connection.close { EventMachine.stop { exit } }
73
70
  end
74
71
 
72
+ def connected?
73
+ @channel != nil
74
+ end
75
+
75
76
  def exchange(desc, type)
76
77
  raise 'attempting to create exchange without channel' unless @channel
77
78
  name = "slnky.#{desc}"
78
- @exchanges[desc] ||=
79
+ @exchanges[desc] =
79
80
  case type
80
81
  when :fanout
81
82
  @channel.fanout(name)
@@ -86,15 +87,17 @@ module Slnky
86
87
  end
87
88
  end
88
89
 
89
- def queue(desc, exchange, options={})
90
+ def queue(desc, exchange='events', options={})
90
91
  raise 'attempting to create queue without channel' unless @channel
91
92
  name = "service.#{desc}.#{exchange}"
92
- options = {
93
- durable: true
94
- }.merge(options)
95
- routing = options.delete(:routing_key)
96
- bindoptions = routing ? {routing_key: routing} : {}
97
- @queues[desc] ||= @channel.queue(name, options).bind(@exchanges[exchange], bindoptions)
93
+ @queues[name] ||= begin
94
+ options = {
95
+ durable: true
96
+ }.merge(options)
97
+ routing = options.delete(:routing_key)
98
+ bindoptions = routing ? {routing_key: routing} : {}
99
+ @channel.queue(name, options).bind(@exchanges[exchange], bindoptions)
100
+ end
98
101
  end
99
102
  end
100
103
 
data/lib/slnky/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Slnky
2
- VERSION = "0.10.2"
2
+ VERSION = "0.11.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slnky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn Catanzarite
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-15 00:00:00.000000000 Z
11
+ date: 2016-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler