class ProxyAPI::Salt

def autosign_create(name)

def autosign_create(name)
  parse(post('', "autosign/#{URI.escape(name)}"))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to set Salt autosign for %s'), name)
end

def autosign_list

def autosign_list
  parse(get('autosign'))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to fetch autosign list'))
end

def autosign_remove(name)

def autosign_remove(name)
  parse(delete("autosign/#{URI.escape(name)}"))
rescue RestClient::ResourceNotFound
  true # entry doesn't exists anyway
rescue => e
  raise ProxyException.new(url, e, N_('Unable to delete Salt autosign for %s'), name)
end

def environments_list

def environments_list
  parse(get('environments'))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to fetch Salt environments list'))
end

def highstate(name)

def highstate(name)
  parse(post('', "highstate/#{name}"))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to run Salt state.highstate for %s'), name)
end

def initialize(args)

def initialize(args)
  @url  = args[:url] + '/salt/'
  super args
end

def key_accept(name)

def key_accept(name)
  parse(post('', "key/#{name}"))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to accept Salt key for %s'), name)
end

def key_delete(name)

def key_delete(name)
  parse(delete("key/#{name}"))
rescue RestClient::ResourceNotFound
  true
rescue => e
  raise ProxyException.new(url, e, N_('Unable to delete Salt key for %s'), name)
end

def key_list

def key_list
  parse(get('key'))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to fetch Salt key list'))
end

def key_reject(name)

def key_reject(name)
  parse(delete("key/reject/#{name}"))
rescue => e
  raise ProxyException.new(url, e, N_('Unable to reject Salt key for %s'), name)
end

def states_list

def states_list
  states = {}
  environments_list.each do |environment|
    states[environment] = parse(get("environments/#{environment}"))
  end
  states
rescue => e
  raise ProxyException.new(url, e, N_('Unable to fetch Salt states list'))
end