class Monosasi::Driver
Public Class Methods
new(client, options = {})
click to toggle source
# File lib/monosasi/driver.rb, line 5 def initialize(client, options = {}) @client = client @options = options end
Public Instance Methods
create_rule(rule_name, rule)
click to toggle source
# File lib/monosasi/driver.rb, line 10 def create_rule(rule_name, rule) log(:info, "Create Rule `#{rule_name}`", color: :cyan) unless @options[:dry_run] put_rule(rule_name, rule) end end
create_target(rule_name, target_id, target)
click to toggle source
# File lib/monosasi/driver.rb, line 41 def create_target(rule_name, target_id, target) log(:info, "Create Rule `#{rule_name}` > Target `#{target_id}`", color: :cyan) unless @options[:dry_run] put_target(rule_name, target_id, target) end end
delete_rule(rule_name, rule)
click to toggle source
# File lib/monosasi/driver.rb, line 18 def delete_rule(rule_name, rule) log(:info, "Delete Rule `#{rule_name}`", color: :red) unless @options[:dry_run] targets = rule[:targets] unless targets.empty? @client.remove_targets(:rule => rule_name, :ids => targets.keys) end @client.delete_rule(:name => rule_name) end end
delete_target(rule_name, target_id)
click to toggle source
# File lib/monosasi/driver.rb, line 49 def delete_target(rule_name, target_id) log(:info, "Delete Rule `#{rule_name}` > Target `#{target_id}`", color: :red) unless @options[:dry_run] @client.remove_targets(:rule => rule_name, :ids => [target_id]) end end
update_rule(rule_name, rule, old_rule)
click to toggle source
# File lib/monosasi/driver.rb, line 32 def update_rule(rule_name, rule, old_rule) log(:info, "Update Rule `#{rule_name}`", color: :green) log(:info, diff(old_rule, rule, color: @options[:color]), color: false) unless @options[:dry_run] put_rule(rule_name, rule) end end
update_target(rule_name, target_id, target, old_target)
click to toggle source
# File lib/monosasi/driver.rb, line 57 def update_target(rule_name, target_id, target, old_target) log(:info, "Update Rule `#{rule_name}` > Target `#{target_id}`", color: :green) log(:info, diff(old_target, target, color: @options[:color]), color: false) unless @options[:dry_run] put_target(rule_name, target_id, target) end end
Private Instance Methods
put_rule(rule_name, rule)
click to toggle source
# File lib/monosasi/driver.rb, line 68 def put_rule(rule_name, rule) params = { :name => rule_name, :state => rule[:state], :role_arn => rule[:role_arn], } if rule[:description] params[:description] = rule[:description] end if rule[:schedule_expression] params[:schedule_expression] = rule[:schedule_expression] end if rule[:event_pattern] params[:event_pattern] = JSON.dump(rule[:event_pattern]) end @client.put_rule(params) end
put_target(rule_name, target_id, target)
click to toggle source
# File lib/monosasi/driver.rb, line 90 def put_target(rule_name, target_id, target) params_target = { :id => target_id, :arn => target[:arn], } if target[:input] params_target[:input] = target[:input] end if target[:input_path] params_target[:input_path] = target[:input_path] end if target[:input_transformer] params_target[:input_transformer] = target[:input_transformer] end if target[:role_arn] params_target[:role_arn] = target[:role_arn] end if target[:ecs_parameters] params_target[:ecs_parameters] = target[:ecs_parameters] end if target[:batch_parameters] params_target[:batch_parameters] = target[:batch_parameters] end params = { :rule => rule_name, :targets => [params_target], } @client.put_targets(params) end