factor 0.6.5 → 0.6.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 +4 -4
- data/lib/commands.rb +12 -2
- data/lib/commands/run_command.rb +69 -0
- data/lib/factor/version.rb +1 -1
- data/lib/runtime/service_caller.rb +1 -1
- data/lib/runtime/workflow.rb +7 -6
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af39fc9efe3999659f027cfc4cdf50a2c40c4533
|
4
|
+
data.tar.gz: deebd96954ace642c46f23f9fdb6b038c6ad4d99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f85d0d40425675967ca5b8b01709a36ae06803560be6fe10e633a26e6bdb897a7ffebbb0c905062332dcb642e3dc0e0d8075949fc2e1c77bd8286ccd40192899
|
7
|
+
data.tar.gz: a7dcd984dba299c0812f69e0b7da04aebf5d9bfa1cf16039384e6f5bd2ba35be0bc339837589f4b3569114204122a9db1875ee667504e84fa9980af89c8fdcbf
|
data/lib/commands.rb
CHANGED
@@ -5,6 +5,7 @@ require 'commander/import'
|
|
5
5
|
require 'factor/version'
|
6
6
|
require 'commands/workflow_command'
|
7
7
|
require 'commands/registry_command'
|
8
|
+
require 'commands/run_command'
|
8
9
|
|
9
10
|
program :name, 'Factor.io Server'
|
10
11
|
program :version, Factor::VERSION
|
@@ -20,6 +21,14 @@ command 'server' do |c|
|
|
20
21
|
c.when_called Factor::Commands::WorkflowCommand, :server
|
21
22
|
end
|
22
23
|
|
24
|
+
command 'run' do |c|
|
25
|
+
c.syntax = 'factor run service_address params'
|
26
|
+
c.description = 'Run a specific command.'
|
27
|
+
c.option '--credentials FILE', String, 'credentials.yml file path.'
|
28
|
+
c.option '--connectors FILE', String, 'connectors.yml file path'
|
29
|
+
c.when_called Factor::Commands::RunCommand, :run
|
30
|
+
end
|
31
|
+
|
23
32
|
command 'cloud' do |c|
|
24
33
|
c.syntax = 'factor host <account id> <workflow id> <api key>'
|
25
34
|
c.description = 'Start the Factor.io Server using your workflows and credentials from Factor.io Cloud'
|
@@ -35,9 +44,10 @@ end
|
|
35
44
|
|
36
45
|
command 'registry workflows add' do |c|
|
37
46
|
c.syntax = 'factor registry workflow add <id>'
|
38
|
-
c.description = '
|
47
|
+
c.description = 'Add a workflow to your working directory'
|
39
48
|
c.option '--credentials FILE', String, 'credentials.yml file path.'
|
40
49
|
c.option '--connectors FILE', String, 'connectors.yml file path'
|
50
|
+
c.option '--path FILE', String, 'Path to workflows'
|
41
51
|
c.option '--values \'{"api_key":"foo"}\'', String, "{}"
|
42
52
|
c.when_called Factor::Commands::RegistryCommand, :add_workflow
|
43
53
|
end
|
@@ -48,7 +58,7 @@ command 'registry connectors' do |c|
|
|
48
58
|
c.when_called Factor::Commands::RegistryCommand, :connectors
|
49
59
|
end
|
50
60
|
|
51
|
-
command 'registry
|
61
|
+
command 'registry connectors add' do |c|
|
52
62
|
c.syntax = 'factor registry connector add <id>'
|
53
63
|
c.description = 'Get list of available connectors'
|
54
64
|
c.option '--credentials FILE', String, 'credentials.yml file path.'
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'configatron'
|
4
|
+
|
5
|
+
require 'commands/base'
|
6
|
+
require 'runtime/workflow'
|
7
|
+
|
8
|
+
require 'pp'
|
9
|
+
|
10
|
+
module Factor
|
11
|
+
module Commands
|
12
|
+
class RunCommand < Factor::Commands::Command
|
13
|
+
def initialize
|
14
|
+
@workflows = {}
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def run(args, options)
|
19
|
+
config_settings = {}
|
20
|
+
config_settings[:credentials] = options.credentials
|
21
|
+
config_settings[:connectors] = options.connectors
|
22
|
+
load_config(config_settings)
|
23
|
+
|
24
|
+
connector_settings = configatron.connectors.to_hash
|
25
|
+
credential_settings = configatron.credentials.to_hash
|
26
|
+
runtime = Factor::Runtime::Workflow.new(connector_settings, credential_settings, logger: logger)
|
27
|
+
|
28
|
+
begin
|
29
|
+
params = JSON.parse(args[1] || '{}')
|
30
|
+
rescue => ex
|
31
|
+
logger.error "'#{args[1]}' can't be parsed as JSON"
|
32
|
+
end
|
33
|
+
|
34
|
+
if params
|
35
|
+
EM.run do
|
36
|
+
runtime.run(args[0],params) do |response_info|
|
37
|
+
data = response_info.is_a?(Array) ? response_info.map {|i| i.marshal_dump} : response_info.marshal_dump
|
38
|
+
JSON.pretty_generate(data).split("\n").each do |line|
|
39
|
+
logger.info line
|
40
|
+
end
|
41
|
+
EM.stop
|
42
|
+
end.on_fail do
|
43
|
+
EM.stop
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
logger.info 'Good bye!'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def block_until_interupt
|
56
|
+
logger.info 'Ctrl-c to exit'
|
57
|
+
begin
|
58
|
+
loop do
|
59
|
+
sleep 1
|
60
|
+
end
|
61
|
+
rescue Interrupt
|
62
|
+
logger.info 'Exiting app...'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/factor/version.rb
CHANGED
@@ -84,7 +84,7 @@ module Factor
|
|
84
84
|
message = " #{action_response['message']}"
|
85
85
|
notify :log, status: action_response['status'], message: message
|
86
86
|
when 'start_workflow'
|
87
|
-
notify :start_workflow, action_response
|
87
|
+
notify :start_workflow, action_response['payload']
|
88
88
|
else
|
89
89
|
notify :log, status:'error', message: "Unknown action response: #{action_response}"
|
90
90
|
end
|
data/lib/runtime/workflow.rb
CHANGED
@@ -73,7 +73,7 @@ module Factor
|
|
73
73
|
|
74
74
|
caller.on :start_workflow do |data|
|
75
75
|
success "Listener '#{address}' triggered"
|
76
|
-
block.call(Factor::Common.simple_object_convert(data
|
76
|
+
block.call(Factor::Common.simple_object_convert(data)) if block
|
77
77
|
end
|
78
78
|
|
79
79
|
caller.on :fail do |info|
|
@@ -85,7 +85,8 @@ module Factor
|
|
85
85
|
@logger.log log_info[:status], log_info
|
86
86
|
end
|
87
87
|
|
88
|
-
|
88
|
+
service_credentials = @credentials[address.service.to_sym] || {}
|
89
|
+
caller.listen(address.id,params.merge(service_credentials))
|
89
90
|
end
|
90
91
|
e
|
91
92
|
end
|
@@ -128,24 +129,24 @@ module Factor
|
|
128
129
|
caller.on :return do |data|
|
129
130
|
success "Action '#{address}' responded"
|
130
131
|
caller.close
|
131
|
-
block.call(Factor::Common.simple_object_convert(data
|
132
|
+
block.call(Factor::Common.simple_object_convert(data)) if block
|
132
133
|
end
|
133
134
|
|
134
135
|
caller.on :close do
|
135
136
|
error "Action '#{address}' disconnected"
|
136
|
-
e.fail_block.call(action_response) if e.fail_block
|
137
137
|
end
|
138
138
|
|
139
139
|
caller.on :fail do |info|
|
140
140
|
error "Action '#{address}' failed"
|
141
|
-
e.fail_block.call(
|
141
|
+
e.fail_block.call(info) if e.fail_block
|
142
142
|
end
|
143
143
|
|
144
144
|
caller.on :log do |log_info|
|
145
145
|
@logger.log log_info[:status], log_info
|
146
146
|
end
|
147
147
|
|
148
|
-
|
148
|
+
service_credentials = @credentials[address.service.to_sym] || {}
|
149
|
+
caller.action(address.id,params.merge(service_credentials))
|
149
150
|
end
|
150
151
|
e
|
151
152
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Skierkowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- lib/commands.rb
|
150
150
|
- lib/commands/base.rb
|
151
151
|
- lib/commands/registry_command.rb
|
152
|
+
- lib/commands/run_command.rb
|
152
153
|
- lib/commands/workflow_command.rb
|
153
154
|
- lib/common/deep_struct.rb
|
154
155
|
- lib/factor/version.rb
|