# unlike the other client classes (again, this design sucks) this class
# is basically just a proxy class -- it calls its methods on the driver
# and that's about it
class Puppet::Network::Client::ProxyClient < Puppet::Network::Client
  def self.mkmethods
    interface = self.handler.interface
    namespace = interface.prefix


    interface.methods.each { |ary|
      method = ary[0]
      Puppet.debug "#{self}: defining #{namespace}.#{method}"
      define_method(method) { |*args|
        begin
          @driver.send(method, *args)
        rescue XMLRPC::FaultException => detail
          #Puppet.err "Could not call %s.%s: %s" %
          #    [namespace, method, detail.faultString]
          #raise NetworkClientError,
          #    "XMLRPC Error: #{detail.faultString}"
          raise NetworkClientError, detail.faultString
        end
      }
    }
  end
end

