Project

General

Profile

Download (1.96 KB) Statistics
| Branch: | Tag: | Revision:
module ProxyAPI
class TFTP < ProxyAPI::Resource
def initialize(args)
@url = args[:url] + "/tftp"
@variant = args[:variant]
super args
end

# Creates a TFTP boot entry
# [+mac+] : MAC address
# [+args+] : Hash containing
# :pxeconfig => String containing the configuration
# Returns : Boolean status
def set(mac, args)
parse(post(args, "#{@variant}/#{mac}"))
rescue => e
raise ProxyException.new(url, e, N_("Unable to set TFTP boot entry for %s"), mac)
end

# Deletes a TFTP boot entry
# [+mac+] : String in coloned sextuplet format
# Returns : Boolean status
def delete(mac)
parse(super("#{@variant}/#{mac}"))
rescue => e
raise ProxyException.new(url, e, N_("Unable to delete TFTP boot entry for %s"), mac)
end

# Requests that the proxy download the bootfile from the media's source
# [+args+] : Hash containing
# :prefix => String containing the location within the TFTP tree to store the file
# :path => String containing the URL of the file to download
# Returns : Boolean status
def fetch_boot_file(args)
parse(post(args, "fetch_boot_file"))
rescue => e
raise ProxyException.new(url, e, N_("Unable to fetch TFTP boot file"))
end

# returns the TFTP boot server for this proxy
def bootServer
if (response = parse(get("serverName"))) and response["serverName"].present?
return response["serverName"]
end
false
rescue RestClient::ResourceNotFound
nil
rescue => e
raise ProxyException.new(url, e, N_("Unable to detect TFTP boot server"))
end

# Create a default pxe menu
# [+args+] : Hash containing
# :menu => String containing the menu text
# Returns : Boolean status
def create_default(args)
parse(post(args, "create_default"))
rescue => e
raise ProxyException.new(url, e, N_("Unable to create default TFTP boot menu"))
end
end
end

(11-11/11)