class Jendle::View

Public Instance Methods

apply(options) click to toggle source
# File lib/jendle/view.rb, line 20
def apply(options)
  jobs = YAML.load_file(options[:file])
  jobs.each do |view_name, xml|
    apply_proc(view_name, xml, options[:'dry-run'])
  end
end
export(options) click to toggle source
# File lib/jendle/view.rb, line 15
def export(options)
  File.write(options[:output], get_config_pairs.to_yaml)
  @logger.info("exported => #{options[:output]}")
end
restore(options, source_config) click to toggle source
# File lib/jendle/view.rb, line 4
def restore(options, source_config)
  source_client = @core.get_client(
    source_config['server_ip'],
    source_config['username'],
    source_config['password']
  )
  get_config_pairs(source_client).each do |view_name, xml|
    apply_proc(job_name, xml, options[:'dry-run'])
  end
end

Private Instance Methods

apply_proc(view_name, xml, dryrun) click to toggle source
# File lib/jendle/view.rb, line 37
def apply_proc(view_name, xml, dryrun)
  before_xml = if @client.view.exists?(view_name)
    @client.view.get_config(view_name)
  else
    nil
  end

  if (before_xml == xml)
    @logger.info("no change => #{view_name}")
  else
    puts Diffy::Diff.new(before_xml, xml, :context => 3).to_s(:color)
    unless dryrun
      if @client.view.exists?(view_name)
        @client.view.post_config(view_name, xml)
      else
        @client.post_config("/createView?name=#{view_name}", xml)
      end
    end
  end
  @logger.info("applied => #{view_name}")
  sleep 3
end
get_config_pairs(client = @client) click to toggle source
# File lib/jendle/view.rb, line 29
def get_config_pairs(client = @client)
  hash = {}
  client.view.list('.*').each do |view|
    hash[view] = client.view.get_config(view)
  end
  hash
end