lib/td/command/sched.rb in td-0.10.22 vs lib/td/command/sched.rb in td-0.10.23
- old
+ new
@@ -9,52 +9,65 @@
scheds = client.schedules
rows = []
scheds.each {|sched|
- rows << {:Name => sched.name, :Cron => sched.cron, :Timezone => sched.timezone, :Delay => sched.delay, :Result => sched.rset_name, :Database => sched.database, :Query => sched.query, :"Next schedule" => sched.next_time ? sched.next_time.localtime : nil }
+ rows << {:Name => sched.name, :Cron => sched.cron, :Timezone => sched.timezone, :Delay => sched.delay, :Result => sched.result_url, :Database => sched.database, :Query => sched.query, :"Next schedule" => sched.next_time ? sched.next_time.localtime : nil }
}
rows = rows.sort_by {|map|
map[:Name]
}
puts cmd_render_table(rows, :fields => [:Name, :Cron, :Timezone, :"Next schedule", :Delay, :Result, :Database, :Query], :max_width=>500)
end
def sched_create(op)
db_name = nil
- result = nil
timezone = nil
delay = 0
+ result_url = nil
+ result_user = nil
+ result_ask_password = false
op.on('-d', '--database DB_NAME', 'use the database (required)') {|s|
db_name = s
}
- op.on('-r', '--result RESULT_TABLE', 'write result to the result table (use result:create command)') {|s|
- result = s
- }
op.on('-t', '--timezone TZ', 'name of the timezone (like Asia/Tokyo)') {|s|
timezone = s
}
op.on('-D', '--delay SECONDS', 'delay time of the schedule', Integer) {|i|
delay = i
}
+ op.on('-r', '--result RESULT_URL', 'write result to the URL (see also result:create subcommand)') {|s|
+ result_url = s
+ }
+ op.on('-u', '--user NAME', 'set user name for the result URL') {|s|
+ result_user = s
+ }
+ op.on('-p', '--password', 'ask password for the result URL') {|s|
+ result_ask_password = true
+ }
name, cron, sql = op.cmd_parse
unless db_name
$stderr.puts "-d, --database DB_NAME option is required."
exit 1
end
+ if result_url
+ require 'td/command/result'
+ result_url = build_result_url(result_url, result_user, result_ask_password)
+ end
+
client = get_client
# local existance check
get_database(client, db_name)
begin
- first_time = client.create_schedule(name, :cron=>cron, :query=>sql, :database=>db_name, :result=>result, :timezone=>timezone, :delay=>delay)
+ first_time = client.create_schedule(name, :cron=>cron, :query=>sql, :database=>db_name, :result=>result_url, :timezone=>timezone, :delay=>delay)
rescue AlreadyExistsError
cmd_debug_error $!
$stderr.puts "Schedule '#{name}' already exists."
exit 1
end
@@ -170,17 +183,17 @@
puts "Name : #{s.name}"
puts "Cron : #{s.cron}"
puts "Timezone : #{s.timezone}"
puts "Delay : #{s.delay} sec"
puts "Next : #{s.next_time}"
- puts "Result : #{s.rset_name}"
+ puts "Result : #{s.result_url}"
puts "Database : #{s.database}"
puts "Query : #{s.query}"
end
rows = []
history.each {|j|
- rows << {:Time => j.scheduled_at.localtime, :JobID => j.job_id, :Status => j.status, :Result=>j.rset_name}
+ rows << {:Time => j.scheduled_at.localtime, :JobID => j.job_id, :Status => j.status, :Result=>j.result_url}
}
puts cmd_render_table(rows, :fields => [:JobID, :Time, :Status, :Result])
end