Hello, thanks for all the hard work, glad to see it available as a gem
too :)
I'm getting an error about nesting of json when I try and upgrade. I
figure the solution is to refactor the process so the nesting isn't so
deep, but wondering if there is anthing else that may have caused it.
Below the stacktrace is the partners_phase.rb file.
** Invoke rt:compile_properties (first_time)
** Invoke /Users/francisco/realtravel/rtsite/maven.properties
(first_time, not_needed)
** Invoke /Users/francisco/realtravel/rtsite/realtravel.com/config/
resoures/config/application.properties (first_time)
** Execute /Users/francisco/realtravel/rtsite/realtravel.com/config/
resoures/config/application.properties
** Execute rt:compile_properties
Loading properties: /Users/francisco/realtravel/rtsite/
maven.properties
Loaded 438 properties
Loading properties: /Users/francisco/realtravel/rtsite/
maven.properties
Loaded 438 properties
** Invoke rt:restore:all (first_time)
** Invoke rt:ruote:load (first_time)
** Execute rt:ruote:load
rake aborted!
nesting of 20 is too deep
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
json-1.2.0/lib/json/common.rb:123:in `parse'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
json-1.2.0/lib/json/common.rb:123:in `parse'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
rufus-json-0.1.0/lib/rufus/json.rb:35
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
rufus-json-0.1.0/lib/rufus/json.rb:113:in `call'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
rufus-json-0.1.0/lib/rufus/json.rb:113:in `decode'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
rufus-json-0.1.0/lib/rufus/json.rb:122:in `dup'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
rufus-cloche-0.1.13/lib/rufus/cloche.rb:71:in `put'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
ruote-2.1.4/lib/ruote/storage/fs_storage.rb:57:in `put'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
ruote-2.1.4/lib/ruote/storage/base.rb:191:in `put_engine_variable'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
ruote-2.1.4/lib/ruote/engine.rb:337:in `[]='
/Users/francisco/realtravel/rtsite/realtravel.com/lib/ruote/
partners_phase.rb:1
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
activesupport-2.3.4/lib/active_support/dependencies.rb:156:in
`require'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
activesupport-2.3.4/lib/active_support/dependencies.rb:521:in
`new_constants_in'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
activesupport-2.3.4/lib/active_support/dependencies.rb:156:in
`require'
/Users/francisco/realtravel/rtsite/realtravel.com/lib/ruote/
participants.rb:16
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
activesupport-2.3.4/lib/active_support/dependencies.rb:156:in
`require'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
activesupport-2.3.4/lib/active_support/dependencies.rb:521:in
`new_constants_in'
/Users/francisco/realtravel/rtsite/realtravel.com/gems/ruby/1.8/gems/
activesupport-2.3.4/lib/active_support/dependencies.rb:156:in
`require'
/Users/francisco/realtravel/rtsite/realtravel.com/lib/tasks/ruote.rake:
17
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in
`invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in
`invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
`invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in
`invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in
`invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in
`invoke_task'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
$engine.variables['partners_phase'] = Ruote.process_definition :name
=> 'partners_phase' do
define :partner do
sequence do
_if :test => "${f:restore_process} is set" do
sequence do
set :f => "process", :value => "${f:restore_process}"
subprocess :ref => "restore_process"
end
end
_if :test => "${f:filters} is not set" do
set :f => "filters", :value => ".*"
end
_if :test => "${f:processes} is set" do
iterator :on_value => "${f:processes}", :to_field => "process"
do
subprocess :ref => 'partner_step'
end
#else
_if :test => "${f:archive_process} is set" do
sequence do
set :f => "process", :value => "${f:archive_process}"
subprocess :ref => 'archive_process'
end
end
end
_if :test => "${f:archive_partner} is set" do
sequence do
_if :test => "${f:archive} is set" do
sequence do
set :f => 'archive_tmp', :value => '${f:archive}'
end
end
_if :test => "${f:archive_partner} == true" do
set :f => 'archive', :value => '${f:partner}'
set :f => 'archive', :value => '${f:archive_partner}'
end
echo "archive ${f:partner} @ ${f:archive}"
_if :test => "${f:archive_partner_sync} is set" do
set :field => 'archive_sync', :value => 'true'
end
subprocess :ref => "archive_phase"
_if :test => "${f:archive_tmp} is set" do
sequence do
set :f => 'archive', :value => '${f:archive_tmp}'
end
end
end
end
end
end
define :partner_step do
#echo "HERE ${f:step}"
sequence do
_if :test => "${f:skip_exec} is set" do
echo "Skipping execution of ${f:process} for ${f:partner}"
#else
sequence do
set :f => "args", :value => "-Dpartner=${f:partner}"
_if :test => "${f:process} == raw" do
subprocess :ref => 'partner_exec'
#else
sequence do
_if :test => "${f:entities} is not set" do
set :f => 'entities', :value => "locations"
end
echo "${f:partner} ${f:process}: ${f:entities}"
iterator :on_value => '${f:entities}', :to_field =>
"entity" do
subprocess :ref => 'partner_${f:process}_entity'
end
end
end
end
end
_if :test => "${f:archive_process} is set" do
subprocess :ref => 'archive_process'
end
end
end
define :partner_extract_entity do
sequence do
subprocess :ref => 'partner_exec'
=begin
_if :test => "${f:synchronous}" do
iterator :on_value => "${f:filters}", :to_field => "filter" do
subprocess :ref => 'partner_exec'
end
concurrent_iterator :on_value => "${f:filters}", :to_field =>
"filter" do
subprocess :ref => 'partner_exec'
end
end
=end
end
end
define :partner_transform_entity do
sequence do
_if :test => "${f:synchronous} is set" do
iterator :on_value => "${f:filters}", :to_field => "filter" do
subprocess :ref => 'partner_exec'
end
concurrent_iterator :on_value => "${f:filters}", :to_field =>
"filter" do
subprocess :ref => 'partner_exec'
end
end
end
end
define :partner_exec do
sequence do
# Checks technology to use to execute process
subprocess :ref => 'process_reset'
check_partner_exec
echo "response: ${f:__result__}<<"
_if :test => "${f:__result__} == kettle" do
sequence do
_if :test => '${f:process} == raw' do
set :f => 'file', :value => "partners/${f:partner}/$
{f:process}/${f:partner}_${f:process}"
set :f => 'file', :value => "partners/${f:partner}/$
{f:process}/${f:partner}_${f:entity}_${f:process}"
end
echo "Kettle: ${f:process} ${f:partner} > ${f:file}"
subprocess :ref => 'kettle_exec'
end
sequence do
echo "OpenWFE: ${f:process} ${f:partner}"
participant "${f:partner}_wfe"
end
end
unset :f => 'args'
end
end
define :process_reset do
sequence do
set :f => 'task', :value => "rt:partner:${f:process}:reset"
_if :test => '${f:args} is set' do
set :f => 'args_tmp', :value => '${f:args}'
end
_if :test => '${f:filter_seq} is not set' do
set :f => 'filter_seq', :value => '0'
end
_if :test => '${f:entity} is set' do
set :f => 'args', :value => "partner=${f:partner} entity=$
{f:entity} filter_seq=${f:filter_seq}"
set :f => 'args', :value => "partner=${f:partner} filter_seq=$
{f:filter_seq}"
end
rake
_if :test => '${f:args_tmp} is set' do
set :f => 'args', :value => '${f:args_tmp}'
unset :f => 'args'
end
end
end
define :destinations_load do
sequence do
set :f => "args", :value => "-Dpartner=${f:partner} \\\\\"-
Dconditions=(destination_type = 10 or destination_type = 20)\\\\\""
set :f => 'file', :value => 'realtravel/${f:entity}/load/$
{f:entity}_match'
subprocess :ref => 'kettle_run'
_if :test => '${f:skip_merge} is not set' do
sequence do
set :f => 'file', :value => "realtravel/${f:entity}/load/rt_$
{f:entity}_load"
subprocess :ref => 'kettle_exec'
end
end
set :f => "args", :value => "-Dpartner=${f:partner} \\\\\"-
Dconditions=(destination_type = 30)\\\\\""
set :f => 'file', :value => 'realtravel/${f:entity}/load/$
{f:entity}_match'
subprocess :ref => 'kettle_run'
_if :test => '${f:skip_merge} is not set' do
sequence do
set :f => 'file', :value => "realtravel/${f:entity}/load/rt_$
{f:entity}_load"
subprocess :ref => 'kettle_exec'
end
end
set :f => "args", :value => "-Dpartner=${f:partner} \\\\\"-
Dconditions=destination_type = 40\\\\\""
set :f => 'file', :value => 'realtravel/${f:entity}/load/$
{f:entity}_match'
subprocess :ref => 'kettle_run'
_if :test => '${f:skip_merge} is not set' do
sequence do
set :f => 'file', :value => "realtravel/${f:entity}/load/$
{f:entity}_add"
subprocess :ref => 'kettle_exec'
set :f => 'file', :value => "realtravel/${f:entity}/load/rt_$
{f:entity}_load"
subprocess :ref => 'kettle_exec'
end
end
set :f => "args", :value => "-Dpartner=${f:partner} \\\\\"-
Dconditions=destination_type is null\\\\\""
set :f => 'file', :value => 'realtravel/${f:entity}/load/$
{f:entity}_match'
subprocess :ref => 'kettle_run'
_if :test => '${f:skip_merge} is not set' do
sequence do
set :f => 'file', :value => "realtravel/${f:entity}/load/$
{f:entity}_add"
subprocess :ref => 'kettle_exec'
set :f => 'file', :value => "realtravel/${f:entity}/load/rt_$
{f:entity}_load"
subprocess :ref => 'kettle_exec'
end
end
end
end
define :partner_load_entity do
sequence do
echo "loading ${f:entity} skip rtops: ${f:skip_rtops} skip
rtsite: ${f:skip_rtsite}"
set :f => "args", :value => "-Dpartner=${f:partner}"
_if :test => "${f:skip_ext} is not set" do
sequence do
_if :test => "${f:skip_load} is not set" do
sequence do
current_time
set :f => 'time', :value => '${f:__result__}'
subprocess :ref => 'process_reset'
sequence do
set :f => 'sql', :value => "update ext_${f:entity} set
flags = flags & ~(1::bigint << 2) where flags & (1::bigint << 2) != 0
and ext_id_owner ilike '${f:partner}'"
sql
end
set :f => 'file', :value => "realtravel/${f:entity}/load/
${f:entity}_load"
subprocess :ref => 'kettle_run'
set :f => 's_size', :value => RT.property('sample.size')
sequence do
_if :test => "${f:s_size} == 0" do
_if :test => "${f:partner} != realtravel" do
sequence do
set :f => 'sql', :value => "DELETE FROM ext_$
{f:entity} where (updated_at is null or extract(EPOCH from
updated_at) < ${f:time}) and ext_id_owner ilike '${f:partner}'"
echo ">${f:sql}"
sql
end
end
end
end
end
end
sequence do
_if :test => "${f:skip_geo} is not set" do
sequence do
set :f => 'file', :value => 'realtravel/${f:entity}/
load/${f:entity}_geocode'
subprocess :ref => 'kettle_run'
end
end
end
=begin
_if :test => "${f:entity} == locations" do
_if :test => "${f:skip_assets} is not set" do
sequence do
set :f => 'file', :value => 'realtravel/${f:entity}/
load/ext_${f:entity}_assets'
subprocess :ref => 'kettle_run'
end
end
end
=end
end
end
_if :test => "${f:entity} != partners" do
_if :test => "${f:skip_rtsite} is not set" do
sequence do
_if :test => "${f:skip_match} is not set" do
sequence do
set :f => 'file', :value => 'realtravel/${f:entity}/
load/${f:entity}_match'
subprocess :ref => 'kettle_run'
set :f => 's_size', :value => RT.property
('sample.size')
_if :test => "${f:s_size} == 0" do
sequence do
set :f => 'file', :value => 'realtravel/$
{f:entity}/load/${f:entity}_remove_invalid_matches'
subprocess :ref => 'kettle_run'
end
end
end
end
_if :test => "${f:skip_add} is not set" do
sequence do
# _if :test => "${f:heap} is set" do
# set :f => "kettle_heap_temp", :value => '${f:heap}'
# end
# set :f => "heap", :value => RT.property
('kettle.high')
set :f => 'file', :value => "realtravel/${f:entity}/
update/ext_locations_update_method"
subprocess :ref => 'kettle_run'
#set :f => 'entities', :value => '${f:entity}'
#dataimport
end
end
_if :test => "${f:kettle_heap_temp} is set" do
set :f => "heap", :value => '${f:kettle_heap_temp}'
end
end
end
end
=begin
set :f => 'file', :value => "realtravel/tags/load/
tags_partners_add"
subprocess :ref => 'kettle_exec'
_if :test => "${f:kettle_heap_temp} is set" do
set :f => "kettle_heap", :value => '$
{f:kettle_heap_temp}'
unset :f => "kettle_heap"
end
set :f => 'file', :value => "realtravel/${f:entity}/load/$
{f:entity}_tags"
subprocess :ref => 'kettle_run'
=end
#
# _if :test => "${f:entity} == documents" do
# sequence do
# set :f => 'file', :value => "realtravel/${f:entity}/
load/${f:entity}_parent"
# subprocess :ref => 'kettle_run'
# end
# end
##optimizesearch
#reloadsearch
end
end
define :archive_process do
sequence do
set :f => 'dir', :value => "#{RT.property('rt.data')}/partners/$
{f:partner}"
set :f => 'size_ext', :value => ''
_if :test => '${f:process} == extract' do
sequence do
set :f => 'entity', :value => "locations" # FIXME
set :f => 'size', :value => RT.property('sample.size')
_if :test => "${f:size} != 0" do
set :f => 'size_ext', :value => '_${f:size}'
end
end
end
_if :test => '${f:process} == extract' do
sequence do
# archive the partner table
set :f => 'filter', :value => "db"
set :f => 'extension', :value => "${f:size_ext}"
set :f => 'archive_dir', :value => "${f:dir}/${f:process}/$
{f:entity}"
set :f => 'table', :value => "ext_${f:partner}_${f:entity}"
set :f => 'db', :value => "db.ops.db"
set :f => 'archive', :value => "${f:process}"
archive
unset :f => 'extension'
unset :f => 'archive_dir'
unset :f => 'table'
unset :f => 'db'
unset :f => 'archive'
end
end
set :f => 'file', :value => "${f:partner}_${f:process}$
{f:size_ext}"
set :f => 'file_ext', :value => ".tgz"
set :f => 'sync_direction', :value => 'up'
set :f => 'compress', :value => '${f:process}'
sync
end
end
define :remove_invalid_links do
sequence do
set :f => 'sql', :value => 'TRUNCATE tag_dimensions'
sql
end
end
define :restore_process do
sequence do
echo "Restoring process ${f:process} for partner: ${f:partner}"
set :f => 'size_ext', :value => ''
_if :test => '${f:process} == extract' do
sequence do
set :f => 'entity', :value => "locations" # FIXME
set :f => 'size', :value => RT.property('sample.size')
_if :test => "${f:size} != 0" do
set :f => 'size_ext', :value => '_${f:size}'
end
end
end
set :f => 'process', :value => '${f:restore_process}'
set :f => 'dir', :value => "#{RT.property('rt.data')}/partners/$
{f:partner}"
set :f => 'file', :value => "${f:partner}_${f:process}$
{f:size_ext}"
set :f => 'file_ext', :value => ".tgz"
set :f => 'sync_direction', :value => 'down'
set :f => 'compress', :value => '${f:process}'
sync
_if :test => '${f:process} == extract' do
sequence do
# restore the partner table
set :f => 'filter', :value => "db"
set :f => 'extension', :value => "${f:size_ext}"
set :f => 'archive_dir', :value => "${f:dir}/${f:process}/$
{f:entity}"
set :f => 'archive', :value => "${f:process}"
set :f => 'table', :value => "ext_${f:partner}_${f:entity}"
set :f => 'db', :value => "db.ops.db"
rstr
unset :f => 'extension'
unset :f => 'archive_dir'
unset :f => 'table'
unset :f => 'db'
unset :f => 'archive'
end
end
end
end
define :archive_phase do
sequence do
set :field => 'archive_dbs', :value =>
"db.src:db.db,db.ops.src:db.ops.db"
set :f => 'archive_index', :value => 'true'
set :f => 'archive_logs', :value => 'true'
set :f => 'archive_reports', :value => 'true'
_if :test => "${f:archive} == true" do
set :f => 'archive', :value => 'partners'
end
archiveprocess
end
end
define :restore do
sequence do
_if :test => "${f:restore} == true" do
set :f => "restore", :value => "cleanse"
end
set :f => 'restore_index', :value => 'true'
set :f => 'restore_dbs', :value => "db.src:db.db"
restoreprocess
end
end
define :rt_load_type do
sequence do
set :f => "args", :value => "-Dpartner=${f:partner} -Dtype=$
{f:type}"
subprocess :ref => 'kettle_exec'
end
end
define :kettle_exec do
sequence do
kettle
_if :test => "${f:__result__} == 1" do
_cancel_process
end
end
end
define :kettle_run do
sequence do
_if :test => "${f:synchronous} is set" do
iterator :on_value => "${f:filters}", :to_field => "filter" do
subprocess :ref => 'kettle_exec'
end
concurrent_iterator :on_value => "${f:filters}", :to_field =>
"filter" do
subprocess :ref => 'kettle_exec'
end
end
end
end
sequence do
set :f => "timer", :value => "Partners Phase"
set :f => "sample_size", :value => RT.property('sample.size')
set :f => "skip_tags", :value => 'true'
_if :test => "${f:phase} is not set" do
set :f => "phase", :value => "partners"
end
set :f => 'log_file', :value => '${f:phase}.out'
_if :test => "${f:console} is not set" do
set :f => 'console', :value => RT.property('log.console')
end
start_process
_if :test => "${f:restore} is set" do
subprocess :ref => "restore"
# else
end
iterator :on_value => "${f:partners}", :to_field => "partner" do
subprocess :ref => 'partner'
end
# Archive Phase
_if :test => "${f:archive} is set" do
subprocess :ref => "archive_phase"
end
stop_process
end
end
--
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en