flor 0.9.5 → 0.10.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.
- data/CHANGELOG.md +10 -0
- data/Makefile +13 -5
- data/README.md +0 -35
- data/flor.gemspec +1 -0
- data/lib/flor.rb +6 -24
- data/lib/flor/changes.rb +26 -0
- data/lib/flor/colours.rb +65 -31
- data/lib/flor/conf.rb +84 -54
- data/lib/flor/core.rb +0 -23
- data/lib/flor/core/executor.rb +12 -42
- data/lib/flor/core/node.rb +19 -24
- data/lib/flor/core/procedure.rb +13 -24
- data/lib/flor/core/texecutor.rb +10 -28
- data/lib/flor/deep.rb +152 -0
- data/lib/flor/djan.rb +200 -0
- data/lib/flor/dollar.rb +0 -24
- data/lib/flor/errors.rb +0 -24
- data/lib/flor/flor.rb +43 -296
- data/lib/flor/id.rb +90 -0
- data/lib/flor/log.rb +12 -35
- data/lib/flor/migrations/0002_cunit_and_munit.rb +86 -0
- data/lib/flor/parser.rb +40 -46
- data/lib/flor/pcore/_arr.rb +0 -24
- data/lib/flor/pcore/_atom.rb +0 -24
- data/lib/flor/pcore/_att.rb +3 -25
- data/lib/flor/pcore/_dump.rb +0 -24
- data/lib/flor/pcore/_err.rb +0 -24
- data/lib/flor/pcore/_happly.rb +0 -24
- data/lib/flor/pcore/_obj.rb +0 -24
- data/lib/flor/pcore/_skip.rb +0 -24
- data/lib/flor/pcore/arith.rb +0 -24
- data/lib/flor/pcore/break.rb +0 -24
- data/lib/flor/pcore/case.rb +127 -0
- data/lib/flor/pcore/cmp.rb +0 -24
- data/lib/flor/pcore/cond.rb +24 -24
- data/lib/flor/pcore/cursor.rb +0 -24
- data/lib/flor/pcore/define.rb +0 -24
- data/lib/flor/pcore/fail.rb +0 -24
- data/lib/flor/pcore/if.rb +39 -0
- data/lib/flor/pcore/loop.rb +0 -24
- data/lib/flor/pcore/map.rb +0 -24
- data/lib/flor/pcore/match.rb +0 -24
- data/lib/flor/pcore/move.rb +0 -24
- data/lib/flor/pcore/noeval.rb +0 -24
- data/lib/flor/pcore/noret.rb +0 -24
- data/lib/flor/pcore/push.rb +1 -25
- data/lib/flor/pcore/rand.rb +59 -0
- data/lib/flor/pcore/sequence.rb +0 -24
- data/lib/flor/pcore/set.rb +0 -24
- data/lib/flor/pcore/stall.rb +0 -24
- data/lib/flor/pcore/until.rb +0 -24
- data/lib/flor/pcore/val.rb +0 -24
- data/lib/flor/punit/cancel.rb +0 -24
- data/lib/flor/punit/cmap.rb +0 -24
- data/lib/flor/punit/concurrence.rb +54 -24
- data/lib/flor/punit/every.rb +0 -24
- data/lib/flor/punit/graft.rb +41 -0
- data/lib/flor/punit/on.rb +0 -24
- data/lib/flor/punit/schedule.rb +0 -24
- data/lib/flor/punit/signal.rb +0 -24
- data/lib/flor/punit/sleep.rb +0 -24
- data/lib/flor/punit/task.rb +0 -26
- data/lib/flor/punit/trace.rb +0 -24
- data/lib/flor/punit/trap.rb +0 -24
- data/lib/flor/to_string.rb +4 -25
- data/lib/flor/tools/env.rb +0 -23
- data/lib/flor/tools/shell.rb +810 -0
- data/lib/flor/unit.rb +0 -23
- data/lib/flor/unit/executor.rb +35 -31
- data/lib/flor/unit/ganger.rb +9 -34
- data/lib/flor/unit/hooker.rb +5 -25
- data/lib/flor/unit/journal.rb +0 -23
- data/lib/flor/unit/loader.rb +63 -94
- data/lib/flor/unit/logger.rb +8 -27
- data/lib/flor/unit/models.rb +0 -24
- data/lib/flor/unit/models/execution.rb +13 -24
- data/lib/flor/unit/models/pointer.rb +0 -24
- data/lib/flor/unit/models/timer.rb +0 -24
- data/lib/flor/unit/models/trace.rb +0 -24
- data/lib/flor/unit/models/trap.rb +0 -24
- data/lib/flor/unit/scheduler.rb +157 -128
- data/lib/flor/unit/storage.rb +224 -167
- data/lib/flor/unit/taskers.rb +38 -25
- data/lib/flor/unit/waiter.rb +7 -26
- data/lib/flor/unit/wlist.rb +8 -24
- metadata +28 -7
- data/fail.txt +0 -16
- data/intercepted.txt +0 -123
- data/lib/flor/pcore/ife.rb +0 -56
- data/lib/flor/tools/repl.rb +0 -231
- data/out.txt +0 -206
data/lib/flor/tools/repl.rb
DELETED
@@ -1,231 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'flor'
|
3
|
-
require 'flor/unit'
|
4
|
-
|
5
|
-
|
6
|
-
module Flor::Tools
|
7
|
-
|
8
|
-
class Repl
|
9
|
-
|
10
|
-
def initialize(env)
|
11
|
-
|
12
|
-
@unit = Flor::Unit.new("envs/#{env}/etc/conf.json")
|
13
|
-
|
14
|
-
#pp @unit.conf
|
15
|
-
@unit.conf[:unit] = 'repl'
|
16
|
-
|
17
|
-
#unit.hooker.add('journal', Flor::Journal)
|
18
|
-
if @unit.conf['sto_uri'].match(/memory/)
|
19
|
-
@unit.storage.delete_tables
|
20
|
-
@unit.storage.migrate
|
21
|
-
end
|
22
|
-
@unit.start
|
23
|
-
|
24
|
-
@lines = []
|
25
|
-
@payload = {}
|
26
|
-
@vars = {}
|
27
|
-
|
28
|
-
@outcome = nil
|
29
|
-
|
30
|
-
@unit.hook do |message|
|
31
|
-
|
32
|
-
if ! message['consumed']
|
33
|
-
# do nothing
|
34
|
-
elsif %w[ terminated failed ].include?(message['point'])
|
35
|
-
@outcome = message
|
36
|
-
out = Flor.to_pretty_s(@outcome)
|
37
|
-
col = message['point'] == 'failed' ? _rd : _gr
|
38
|
-
out = out.gsub(/"point"=>"([^"]+)"/, "\"point\"=>\"#{col}\\1#{_yl}\"")
|
39
|
-
out = "\n" + _yl + out + _rs
|
40
|
-
out = out.split("\n").collect { |l| ' ' + l }.join("\n")
|
41
|
-
print(out)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
@_c, @_dg, @_yl, @_bl, @_lg, @_gr, @_lr, @_rd = Flor.colours({})
|
46
|
-
|
47
|
-
do_loop
|
48
|
-
end
|
49
|
-
|
50
|
-
# reset dark_grey light_yellow blue light_grey light_green light_red red
|
51
|
-
attr_reader :_rs, :_dg, :_yl, :_bl, :_lg, :_gr, :_lr, :_rd
|
52
|
-
|
53
|
-
protected
|
54
|
-
|
55
|
-
def prompt
|
56
|
-
|
57
|
-
"flor l#{@lines.size} > "
|
58
|
-
end
|
59
|
-
|
60
|
-
def do_loop
|
61
|
-
|
62
|
-
loop do
|
63
|
-
|
64
|
-
line = prompt_and_read
|
65
|
-
|
66
|
-
break unless line
|
67
|
-
next if line.strip == ''
|
68
|
-
|
69
|
-
cmd = "cmd_#{line.split(/\s/).first}".to_sym
|
70
|
-
|
71
|
-
if cmd.size > 4 && methods.include?(cmd)
|
72
|
-
begin
|
73
|
-
send(cmd, line)
|
74
|
-
rescue StandardError, NotImplementedError => err
|
75
|
-
p err
|
76
|
-
err.backtrace[0, 7].each { |l| puts " #{l}" }
|
77
|
-
end
|
78
|
-
else
|
79
|
-
@lines << line
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
$stdout.puts
|
84
|
-
end
|
85
|
-
|
86
|
-
def hlp_launch
|
87
|
-
%{ launches the current execution code }
|
88
|
-
end
|
89
|
-
def cmd_launch(line)
|
90
|
-
|
91
|
-
exid = @unit.launch(@lines.join("\n"), vars: @vars, payload: @payload)
|
92
|
-
puts " launched #{_yl}#{exid}#{_rs}"
|
93
|
-
end
|
94
|
-
|
95
|
-
alias hlp_run hlp_launch
|
96
|
-
alias cmd_run cmd_launch
|
97
|
-
|
98
|
-
def hlp_help
|
99
|
-
%{ displays this help }
|
100
|
-
end
|
101
|
-
def cmd_help(line)
|
102
|
-
|
103
|
-
puts
|
104
|
-
puts "## available commands:"
|
105
|
-
puts
|
106
|
-
COMMANDS.each do |cmd|
|
107
|
-
print "* #{cmd}"
|
108
|
-
if hlp = (send("hlp_#{cmd}") rescue nil); print " - #{hlp.strip}"; end
|
109
|
-
puts
|
110
|
-
end
|
111
|
-
puts
|
112
|
-
end
|
113
|
-
|
114
|
-
def hlp_exit
|
115
|
-
%{ exits this repl, with the given int exit code or 0 }
|
116
|
-
end
|
117
|
-
def cmd_exit(line)
|
118
|
-
|
119
|
-
exit(line.split(/\s+/)[1].to_i)
|
120
|
-
end
|
121
|
-
|
122
|
-
def hlp_list
|
123
|
-
%{ lists the lines of the current execution code }
|
124
|
-
end
|
125
|
-
def do_list(lines)
|
126
|
-
|
127
|
-
lw = [ 2, lines.size.to_s.length ].max
|
128
|
-
sw = 5 - lw
|
129
|
-
|
130
|
-
lines.each_with_index do |l, i|
|
131
|
-
puts "#{_dg}% #{sw}s%0#{lw}i #{_yl}%s#{_rs}" % [ '', i + 1, l ]
|
132
|
-
end
|
133
|
-
end
|
134
|
-
def cmd_list(line)
|
135
|
-
|
136
|
-
do_list(@lines)
|
137
|
-
end
|
138
|
-
|
139
|
-
def hlp_parse
|
140
|
-
%{ parses the current execution code and displays its tree }
|
141
|
-
end
|
142
|
-
def cmd_parse(line)
|
143
|
-
|
144
|
-
Flor.print_tree(
|
145
|
-
Flor::Lang.parse(@lines.join("\n"), nil, {}),
|
146
|
-
'0',
|
147
|
-
headers: false)
|
148
|
-
end
|
149
|
-
|
150
|
-
def hlp_new
|
151
|
-
%w{ erases current execution code, vars and payload }
|
152
|
-
end
|
153
|
-
def cmd_new(line)
|
154
|
-
|
155
|
-
@lines = []
|
156
|
-
@vars = {}
|
157
|
-
@payload = {}
|
158
|
-
end
|
159
|
-
|
160
|
-
def fname(line)
|
161
|
-
|
162
|
-
line.split(/\s+/)[1]
|
163
|
-
end
|
164
|
-
|
165
|
-
def hlp_save
|
166
|
-
%{ saves the current execution code to the given file }
|
167
|
-
end
|
168
|
-
def cmd_save(line)
|
169
|
-
|
170
|
-
File.open(fname(line), 'wb') { |f| f.puts @lines }
|
171
|
-
end
|
172
|
-
|
173
|
-
def hlp_cat
|
174
|
-
%{ outputs the content of the give file }
|
175
|
-
end
|
176
|
-
def cmd_cat(line)
|
177
|
-
|
178
|
-
do_list(File.readlines(fname(line)).collect(&:chomp))
|
179
|
-
end
|
180
|
-
|
181
|
-
def hlp_load
|
182
|
-
%{ loads a file as execution code }
|
183
|
-
end
|
184
|
-
def cmd_load(line)
|
185
|
-
|
186
|
-
@lines = File.readlines(fname(line)).collect(&:chomp)
|
187
|
-
end
|
188
|
-
|
189
|
-
def cmd_cont(line)
|
190
|
-
|
191
|
-
fail NotImplementedError
|
192
|
-
end
|
193
|
-
|
194
|
-
def hlp_edit
|
195
|
-
%{ saves the current execution code to .tmp.flo and opens it for edition }
|
196
|
-
end
|
197
|
-
def cmd_edit(line)
|
198
|
-
|
199
|
-
cmd_save('save .tmp.flo')
|
200
|
-
system('$EDITOR .tmp.flo')
|
201
|
-
cmd_load('load .tmp.flo')
|
202
|
-
FileUtils.rm('.tmp.flo')
|
203
|
-
end
|
204
|
-
|
205
|
-
#
|
206
|
-
# use Readline if possible
|
207
|
-
|
208
|
-
COMMANDS = self.allocate.methods \
|
209
|
-
.select { |m| m.to_s.match(/^cmd_/) }.collect { |m| m[4..-1] }.sort
|
210
|
-
|
211
|
-
begin
|
212
|
-
require 'readline'
|
213
|
-
def prompt_and_read
|
214
|
-
Readline.readline(prompt, true)
|
215
|
-
end
|
216
|
-
Readline.completion_proc =
|
217
|
-
proc { |s|
|
218
|
-
r = /^#{Regexp.escape(s)}/
|
219
|
-
COMMANDS.grep(r) + Dir["#{s}*"].grep(r)
|
220
|
-
}
|
221
|
-
#Readline.completion_append_character =
|
222
|
-
# " "
|
223
|
-
rescue LoadError => le
|
224
|
-
def prompt_and_read
|
225
|
-
print(prompt)
|
226
|
-
($stdin.readline rescue false)
|
227
|
-
end
|
228
|
-
end
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
data/out.txt
DELETED
@@ -1,206 +0,0 @@
|
|
1
|
-
|
2
|
-
054400 satsuma 我 ~/w/sg (master) マ FLOR_DEBUG=dbg bxs spec/functional/cases/awm_activation_spec.rb:198
|
3
|
-
|
4
|
-
java 1.9.3
|
5
|
-
Run options: include {:locations=>{"./spec/functional/cases/awm_activation_spec.rb"=>[198]}}
|
6
|
-
|
7
|
-
Sg::Cases::AwmActivation
|
8
|
-
.reply
|
9
|
-
as OPS
|
10
|
-
+---
|
11
|
-
| {:vars=>{:launcher=>2002}, :payload=>{"client"=>{"rm"=>"2002", "codename"=>"brilliant-fire-4", "nationality"=>"Singapore", "domicile"=>"Singapore", "amount"=>1000000, "currency"=>"USD", "orientation"=>"Standard", "amountUsd"=>1000000, "amountString"=>"1,000,000", "amountUsdString"=>"1,000,000", "mandateId"=>"2002-201702050001"}, "objective"=>{"o"=>"b", "objective"=>"Build"}, "risk"=>{"profile"=>"Aggressive Growth", "level"=>4, "self"=>{"profile"=>"Aggressive Growth", "level"=>4}, "a"=>{"profile"=>"Aggressive Growth", "level"=>4}, "b"=>{"profile"=>"Aggressive Growth", "level"=>4}, "answers"=>["#raAggressiveGrowth", "#raPioGrowth", "#raWpLow", "#raCfNo", "#raPfz", "#raHl8", "#raReIncrease"], "mode"=>"normal"}, "strategy"=>{"name"=>"Conservative", "c"=>"c3", "i"=>3}, "agreement"=>{"allin"=>"1.10%", "discounted"=>"1.00%", "rate"=>"0%"}}, :fname=>"flor/lib/flows/iwm.asia.pfs/awm/awm_activation.flo", :colour=>true}
|
12
|
-
| # awm_activation.flo
|
13
|
-
| sequence
|
14
|
-
| create_mandate _
|
15
|
-
| ops 'assign container number'
|
16
|
-
| update_mandate status: 'numbered'
|
17
|
-
| pfs 'activate mandate'
|
18
|
-
| update_mandate status: 'active'
|
19
|
-
| email 'rm' 'awm mandate activated'
|
20
|
-
.
|
21
|
-
+---
|
22
|
-
| 0 sequence L4
|
23
|
-
| 0_0 create_mandate L6
|
24
|
-
| 0_0_0 _att L6
|
25
|
-
| 0_0_0_0 _ L6
|
26
|
-
| 0_1 ops L8
|
27
|
-
| 0_1_0 _att L8
|
28
|
-
| 0_1_0_0 _sqs assign container number L8
|
29
|
-
| 0_2 update_mandate L9
|
30
|
-
| 0_2_0 _att L9
|
31
|
-
| 0_2_0_0 status L9
|
32
|
-
| 0_2_0_1 _sqs numbered L9
|
33
|
-
| 0_3 pfs L11
|
34
|
-
| 0_3_0 _att L11
|
35
|
-
| 0_3_0_0 _sqs activate mandate L11
|
36
|
-
| 0_4 update_mandate L12
|
37
|
-
| 0_4_0 _att L12
|
38
|
-
| 0_4_0_0 status L12
|
39
|
-
| 0_4_0_1 _sqs active L12
|
40
|
-
| 0_5 email L14
|
41
|
-
| 0_5_0 _att L14
|
42
|
-
| 0_5_0_0 _sqs rm L14
|
43
|
-
| 0_5_1 _att L14
|
44
|
-
| 0_5_1_0 _sqs awm mandate activated L14
|
45
|
-
.
|
46
|
-
/--- run starts Flor::UnitExecutor 7816 iwm.asia.pfs.awm-u0-20170204.2056.kilodababi
|
47
|
-
| {:thread=>7818}
|
48
|
-
| {:counters=>{}, :nodes=>0, :size=>132}
|
49
|
-
20:56:36.753 bi 0 exe [sequence L4] [[create_mandate,[[_att,[[_,[],6]],6]],6],[... m1s_ f.ret null vars:launcher
|
50
|
-
20:56:36.784 bi 0_0 exe [task L6] [[_att,[[_sqs,create_mandate,6]],6],[_att,[... m2s1r1>1 from 0 f.ret null
|
51
|
-
20:56:36.786 bi 0_0_0 exe [_att L6] [[_sqs,create_mandate,6]] m3s2r1>1 from 0_0 f.ret null
|
52
|
-
20:56:36.791 bi 0_0_0_0 exe ended: [_sqs L6] create_mandate m4s3r1>1 from 0_0_0 f.ret create_mandate
|
53
|
-
20:56:36.792 bi 0_0_0 rec ended: [_att L6] hp:_att m5s4r1>1 from 0_0_0_0 f.ret create_mandate
|
54
|
-
20:56:36.793 bi 0_0 rec [task L6] hp:task m6s5r1>1 from 0_0_0 f.ret create_mandate
|
55
|
-
20:56:36.794 bi 0_0_1 exe ended: [_att L6] [[_,[],6]] m7s6r1>1 from 0_0 f.ret create_mandate
|
56
|
-
20:56:36.796 bi 0_0 rec [task L6] hp:task m8s7r1>1 from 0_0_1 f.ret create_mandate
|
57
|
-
20:56:37.019 bi 0_0 tas [task L6] hp:task m9s8r1>1 from 0_0 f.ret create_mandate
|
58
|
-
| run ends Flor::UnitExecutor 7816 iwm.asia.pfs.awm-u0-20170204.2056.kilodababi
|
59
|
-
| {:took=>1.282}
|
60
|
-
| {:thread=>7818, :consumed=>9, :traps=>0}
|
61
|
-
| {:counters=>{"runs"=>1, "msgs"=>9, "omsgs"=>0}, :nodes=>2, :size=>861}
|
62
|
-
\--- .
|
63
|
-
/--- run starts Flor::UnitExecutor 7824 iwm.asia.pfs.awm-u0-20170204.2056.kilodababi
|
64
|
-
| {:thread=>7826}
|
65
|
-
| {:counters=>{}, :nodes=>0, :size=>132}
|
66
|
-
20:56:38.037 bi 0_0 ret m1s_ f.ret create_mandate
|
67
|
-
20:56:38.038 bi 0_0 rec m2s_r1>1 f.ret create_mandate
|
68
|
-
/=e092 =exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe
|
69
|
-
|=e092 + in Flor::UnitExecutor#do_run
|
70
|
-
|=e092 error: #<NoMethodError: undefined method `[]' for nil:NilClass>
|
71
|
-
|=e092 db: Sequel::JDBC::Database 321524886
|
72
|
-
|=e092 thread: t7826 #<Thread:0x3b42dc22 run>
|
73
|
-
|=e092 exe:
|
74
|
-
|=e092 exid: "iwm.asia.pfs.awm-u0-20170204.2056.kilodababi"
|
75
|
-
|=e092 counters: {"runs"=>1, "msgs"=>2, "omsgs"=>0}
|
76
|
-
|=e092 messages:
|
77
|
-
|=e092 []
|
78
|
-
|=e092 storage errored items/models:
|
79
|
-
|=e092 * {"exid"=>"iwm.asia.pfs.awm-u0-20170204.2056.kilodababi", "nodes"=>{}, "errors"=>[], "tasks"=>{}, "counters"=>{"runs"=>1, "msgs"=>2, "omsgs"=>0}, "start"=>"2017-02-04T20:56:36.736000Z", "size"=>132, "id"=>58}
|
80
|
-
|=e092 error: #<NoMethodError: undefined method `[]' for nil:NilClass>
|
81
|
-
|=e092 backtrace:
|
82
|
-
|=e092 /Users/jmettraux/w/sg/subrepos/flor/lib/flor/unit/storage.rb:156:in `put_execution'
|
83
|
-
|=e092 /Users/jmettraux/w/sg/subrepos/flor/lib/flor/unit/executor.rb:112:in `do_run'
|
84
|
-
|=e092 /Users/jmettraux/w/sg/subrepos/flor/lib/flor/unit/executor.rb:53:in `run'
|
85
|
-
\=e092 =exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe .
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
dump:
|
91
|
-
|
92
|
-
{:execution=>
|
93
|
-
{"exid"=>"iwm.asia.pfs.awm-u0-20170204.2056.kilodababi",
|
94
|
-
"nodes"=>{},
|
95
|
-
"errors"=>[],
|
96
|
-
"tasks"=>{},
|
97
|
-
"counters"=>{"runs"=>1, "msgs"=>2, "omsgs"=>0},
|
98
|
-
"start"=>"2017-02-04T20:56:36.736000Z",
|
99
|
-
"size"=>132,
|
100
|
-
"id"=>58},
|
101
|
-
:messages=>[],
|
102
|
-
:consumed=>
|
103
|
-
[{"point"=>"return",
|
104
|
-
"exid"=>"iwm.asia.pfs.awm-u0-20170204.2056.kilodababi",
|
105
|
-
"nid"=>"0_0",
|
106
|
-
"payload"=>
|
107
|
-
{"client"=>
|
108
|
-
{"rm"=>"2002",
|
109
|
-
"codename"=>"brilliant-fire-4",
|
110
|
-
"nationality"=>"Singapore",
|
111
|
-
"domicile"=>"Singapore",
|
112
|
-
"amount"=>1000000,
|
113
|
-
"currency"=>"USD",
|
114
|
-
"orientation"=>"Standard",
|
115
|
-
"amountUsd"=>1000000,
|
116
|
-
"amountString"=>"1,000,000",
|
117
|
-
"amountUsdString"=>"1,000,000",
|
118
|
-
"mandateId"=>"2002-201702050001"},
|
119
|
-
"objective"=>{"o"=>"b", "objective"=>"Build"},
|
120
|
-
"risk"=>
|
121
|
-
{"profile"=>"Aggressive Growth",
|
122
|
-
"level"=>4,
|
123
|
-
"self"=>{"profile"=>"Aggressive Growth", "level"=>4},
|
124
|
-
"a"=>{"profile"=>"Aggressive Growth", "level"=>4},
|
125
|
-
"b"=>{"profile"=>"Aggressive Growth", "level"=>4},
|
126
|
-
"answers"=>
|
127
|
-
["#raAggressiveGrowth",
|
128
|
-
"#raPioGrowth",
|
129
|
-
"#raWpLow",
|
130
|
-
"#raCfNo",
|
131
|
-
"#raPfz",
|
132
|
-
"#raHl8",
|
133
|
-
"#raReIncrease"],
|
134
|
-
"mode"=>"normal"},
|
135
|
-
"strategy"=>{"name"=>"Conservative", "c"=>"c3", "i"=>3},
|
136
|
-
"agreement"=>{"allin"=>"1.10%", "discounted"=>"1.00%", "rate"=>"0%"},
|
137
|
-
"ret"=>"create_mandate"},
|
138
|
-
"tasker"=>"create_mandate",
|
139
|
-
"mid"=>144,
|
140
|
-
"m"=>1,
|
141
|
-
"pr"=>1,
|
142
|
-
"consumed"=>"2017-02-04T20:56:38.037000Z"},
|
143
|
-
{"point"=>"receive",
|
144
|
-
"exid"=>"iwm.asia.pfs.awm-u0-20170204.2056.kilodababi",
|
145
|
-
"nid"=>"0_0",
|
146
|
-
"payload"=>
|
147
|
-
{"client"=>
|
148
|
-
{"rm"=>"2002",
|
149
|
-
"codename"=>"brilliant-fire-4",
|
150
|
-
"nationality"=>"Singapore",
|
151
|
-
"domicile"=>"Singapore",
|
152
|
-
"amount"=>1000000,
|
153
|
-
"currency"=>"USD",
|
154
|
-
"orientation"=>"Standard",
|
155
|
-
"amountUsd"=>1000000,
|
156
|
-
"amountString"=>"1,000,000",
|
157
|
-
"amountUsdString"=>"1,000,000",
|
158
|
-
"mandateId"=>"2002-201702050001"},
|
159
|
-
"objective"=>{"o"=>"b", "objective"=>"Build"},
|
160
|
-
"risk"=>
|
161
|
-
{"profile"=>"Aggressive Growth",
|
162
|
-
"level"=>4,
|
163
|
-
"self"=>{"profile"=>"Aggressive Growth", "level"=>4},
|
164
|
-
"a"=>{"profile"=>"Aggressive Growth", "level"=>4},
|
165
|
-
"b"=>{"profile"=>"Aggressive Growth", "level"=>4},
|
166
|
-
"answers"=>
|
167
|
-
["#raAggressiveGrowth",
|
168
|
-
"#raPioGrowth",
|
169
|
-
"#raWpLow",
|
170
|
-
"#raCfNo",
|
171
|
-
"#raPfz",
|
172
|
-
"#raHl8",
|
173
|
-
"#raReIncrease"],
|
174
|
-
"mode"=>"normal"},
|
175
|
-
"strategy"=>{"name"=>"Conservative", "c"=>"c3", "i"=>3},
|
176
|
-
"agreement"=>{"allin"=>"1.10%", "discounted"=>"1.00%", "rate"=>"0%"},
|
177
|
-
"ret"=>"create_mandate"},
|
178
|
-
"tasker"=>"create_mandate",
|
179
|
-
"er"=>1,
|
180
|
-
"m"=>2,
|
181
|
-
"pr"=>1,
|
182
|
-
"consumed"=>"2017-02-04T20:56:38.038000Z"}],
|
183
|
-
:traps=>[],
|
184
|
-
:exid=>"iwm.asia.pfs.awm-u0-20170204.2056.kilodababi",
|
185
|
-
:alive=>false,
|
186
|
-
:shutdown=>false,
|
187
|
-
:thread=>[7826, "#<Thread:0x3b42dc22>"]}
|
188
|
-
--------------------------------------------------------------------------------
|
189
|
-
/=e091 =exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe
|
190
|
-
|=e091 + in Flor::UnitExecutor#do_run
|
191
|
-
|=e091 error: #<NoMethodError: undefined method `[]' for nil:NilClass>
|
192
|
-
|=e091 db: Sequel::JDBC::Database 321524886
|
193
|
-
|=e091 thread: t7826 #<Thread:0x3b42dc22 run>
|
194
|
-
|=e091 exe:
|
195
|
-
|=e091 exid: "iwm.asia.pfs.awm-u0-20170204.2056.kilodababi"
|
196
|
-
|=e091 counters: {"runs"=>1, "msgs"=>2, "omsgs"=>0}
|
197
|
-
|=e091 messages:
|
198
|
-
|=e091 []
|
199
|
-
|=e091 storage errored items/models:
|
200
|
-
|=e091 * {"exid"=>"iwm.asia.pfs.awm-u0-20170204.2056.kilodababi", "nodes"=>{}, "errors"=>[], "tasks"=>{}, "counters"=>{"runs"=>1, "msgs"=>2, "omsgs"=>0}, "start"=>"2017-02-04T20:56:36.736000Z", "size"=>132, "id"=>58}
|
201
|
-
|=e091 error: #<NoMethodError: undefined method `[]' for nil:NilClass>
|
202
|
-
|=e091 backtrace:
|
203
|
-
|=e091 /Users/jmettraux/w/sg/subrepos/flor/lib/flor/unit/storage.rb:156:in `put_execution'
|
204
|
-
|=e091 /Users/jmettraux/w/sg/subrepos/flor/lib/flor/unit/executor.rb:112:in `do_run'
|
205
|
-
|=e091 /Users/jmettraux/w/sg/subrepos/flor/lib/flor/unit/executor.rb:53:in `run'
|
206
|
-
\=e091 =exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe=exe .
|