SMService 0.1.5 → 0.1.6

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
  SHA256:
3
- metadata.gz: b23b4edc0d637c75e9dbdb47cfcbb141e541d0d74411188613e32d7765005559
4
- data.tar.gz: c59f2fefb1f552fa7cf43cdd225aa61a00478464468de80d03a17f3a72a4b146
3
+ metadata.gz: c8aaf506f0389296ad7fa48e36ae5594d7d4a7ce11ae7644569d29b085111576
4
+ data.tar.gz: c906f849fc266bc43d021d520d34d49a88b5fd8649df3fa12ee0ad6a35069f2c
5
5
  SHA512:
6
- metadata.gz: f2dd0714308ff1120b302e376f6cd963b85aea0c129ff98a5d669866ac7ebb281a1390d7c89d137504b6591b3589ba14439900d6f9e7002b27085e50f45eca48
7
- data.tar.gz: dbbe8b2b31c9a843ec235d679ecaddcaf0f91093747e1af8addec9f62574674ac18335b64d19492080146082da9bf1ddc9bebf61bac0ce7b5c625d4a8e10c813
6
+ metadata.gz: b475fc9ffdd3af20ebe238bd763a4c06573a737cf3a04fedc332aee96f69b421d2f084e69552e5ccf5b94222d602ce06bc047bf1db959062225e87ecf50a608b
7
+ data.tar.gz: f1a7da19e29540b16830be9b1829c7ab4ecfd4ce354ecbdb5448a919082c7815fa4a83a02955f35041ba1fb6159466571177501e9c381e40eb849294ae3eac5a
@@ -8,7 +8,7 @@ Bundler.require
8
8
  require 'smservice'
9
9
  require_relative '../examples/dummy'
10
10
 
11
- class SMService::Test
11
+ class SMService::TestCase
12
12
  include SMService
13
13
 
14
14
  def initialize
@@ -17,14 +17,57 @@ class SMService::Test
17
17
 
18
18
  def action_test(headers, message)
19
19
  LOGGER.info "#{self.class} - Processing action 'test'. Headers: #{headers.inspect}, message: #{message.inspect}"
20
+
21
+ # triggering 'someaction' as part of test plan
22
+ @tc_reply_to = headers['reply_to'] # where TC shall report-to at the end
23
+ message[:parent_action_headers] = headers # sending also parameters from caller
24
+ execute action: 'someaction', message: message
25
+
26
+ if headers['reply_to']
27
+ # sending reply back
28
+ LOGGER.info "#{self.class} - Action 'test' sending reply"
29
+
30
+ execute action: 'REPLY',
31
+ reply_to: headers['reply_to'],
32
+ message: {status: 'OK', more_data: ['...']}
33
+
34
+ LOGGER.info "#{self.class} - Action 'test' reply sent"
35
+ end
36
+
37
+ LOGGER.info "#{self.class} - Terminating action 'test'"
38
+ end
39
+
40
+ def action_reply(headers, message)
41
+ LOGGER.info "#{self.class} - Processing action 'reply'. Headers: #{headers.inspect}, message: #{message.inspect}"
42
+
43
+ # ... if conditions and validations to ensure that it is reply for this TC, by searching UUID etc etc, and by the end:
44
+ #
45
+ LOGGER.info "#{self.class} - Forwarding collected TC data to the caller, which is #{@tc_reply_to}"
46
+ execute action: 'REPLY',
47
+ reply_to: @tc_reply_to,
48
+ message: message
20
49
  end
21
50
  end
22
51
 
52
+ class SMService::API
53
+ include SMService
54
+
55
+ def initialize
56
+ super name: 'api'
57
+ end
58
+ end
59
+
60
+
23
61
  dummy = SMService::Dummy.new
24
62
  dummy.start!
25
63
 
26
- test = SMService::Test.new
27
- test.start!
64
+ tc = SMService::TestCase.new
65
+ tc.start!
66
+
67
+ api = SMService::API.new
68
+ api.start!
69
+
70
+ sleep 3
71
+ api.execute(action: 'test', message: {my_request: 'ping', my_data: 'add whatever data needed'})
28
72
 
29
- # dummy.execute(action: 'test', message: {my_request: 'ping', my_data: 'add whatever data needed'})
30
73
  binding.pry
@@ -6,6 +6,20 @@ class SMService::Dummy
6
6
  end
7
7
 
8
8
  def action_someaction(headers, message)
9
- LOGGER.info("Processing action 'someaction'. Headers: #{headers.inspect}, message: #{message.inspect}")
9
+ LOGGER.info "#{self.class} - Processing action 'someaction'. Headers: #{headers.inspect}, message: #{message.inspect}"
10
+
11
+ if headers['reply_to']
12
+ # sending reply back
13
+ LOGGER.info "#{self.class} - Action 'someaction' sending reply"
14
+
15
+ execute action: 'REPLY',
16
+ reply_to: headers['reply_to'],
17
+ message: {status: 'OK', whatever: 'add it here'}
18
+
19
+ LOGGER.info "#{self.class} - Action 'someaction' reply sent"
20
+ end
21
+
22
+ LOGGER.info "#{self.class} - Terminating action 'someaction'"
23
+
10
24
  end
11
25
  end
@@ -126,12 +126,16 @@ module SMService
126
126
  LOGGER.info "#{self.class} - Processing action 'update'. Headers: #{headers.inspect}, message: #{message.inspect}"
127
127
  end
128
128
 
129
+ def action_reply(headers, message)
130
+ LOGGER.info "#{self.class} - Processing action 'reply'. Headers: #{headers.inspect}, message: #{message.inspect}"
131
+ end
132
+
129
133
  # Requesting another service, registered at SM to execute given action, example:
130
134
  # execute(action: 'create_customer_portal', message: {my_request: 'should create a customer', my_data: 'add whatever data needed'})
131
135
  #
132
- def execute(action:, message: nil)
136
+ def execute(action:, reply_to: nil, message: nil)
133
137
  LOGGER.info "#{self.class} - SM execute request. Action: #{action.inspect}, message: #{message.inspect}"
134
- action = {service: action, reply_to: @service_name}.to_msgpack
138
+ action = {service: action, reply_to: (reply_to || @service_name)}.to_msgpack
135
139
  message = message.to_msgpack
136
140
  @socket_out.send_strings [action, message]
137
141
  end
@@ -1,3 +1,3 @@
1
1
  module SMService
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: SMService
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrius Kairiukstis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-19 00:00:00.000000000 Z
11
+ date: 2017-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger