slnky 0.10.2 → 0.11.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: 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