103: def call_valuemethod(name, value)
104: event = nil
105: if method = self.class.value_option(name, :method) and self.respond_to?(method)
106:
107:
108: begin
109: event = self.send(method)
110: rescue Puppet::Error
111: raise
112: rescue => detail
113: if Puppet[:trace]
114: puts detail.backtrace
115: end
116: error = Puppet::Error.new("Could not set %s on %s: %s" %
117: [value, self.class.name, detail], @resource.line, @resource.file)
118: error.set_backtrace detail.backtrace
119: raise error
120: end
121: elsif block = self.class.value_option(name, :block)
122:
123:
124: event = self.instance_eval(&block)
125: else
126: devfail "Could not find method for value '%s'" % name
127: end
128: return event, name
129: end