# File lib/mcollective/ddl/agentddl.rb, line 174
      def validate_rpc_request(action, arguments)
        # is the action known?
        unless actions.include?(action)
          DDL.validation_fail!(:PLMC29, "Attempted to call action %{action} for %{plugin} but it's not declared in the DDL", :debug, :action => action, :plugin => @pluginname)
        end

        input = action_interface(action)[:input] || {}

        input.keys.each do |key|
          unless input[key][:optional]
            unless arguments.keys.include?(key)
              DDL.validation_fail!(:PLMC30, "Action '%{action}' needs a '%{key}' argument", :debug, :action => action, :key => key)
            end
          end

          if arguments.keys.include?(key)
            validate_input_argument(input, key, arguments[key])
          end
        end

        true
      end