summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/metatype/instances.rb5
-rw-r--r--lib/puppet/server/servlet.rb15
2 files changed, 15 insertions, 5 deletions
diff --git a/lib/puppet/metatype/instances.rb b/lib/puppet/metatype/instances.rb
index 9e953a1dd..a26c30686 100644
--- a/lib/puppet/metatype/instances.rb
+++ b/lib/puppet/metatype/instances.rb
@@ -24,9 +24,9 @@ class Puppet::Type
raise Puppet::DevError, "must pass a Puppet::Type object"
end
- if exobj = @objects.has_key?(name) and self.isomorphic?
+ if exobj = @objects[name] and self.isomorphic?
msg = "Object '%s[%s]' already exists" %
- [name, newobj.class.name]
+ [newobj.class.name, name]
if exobj.file and exobj.line
msg += ("in file %s at line %s" %
@@ -37,6 +37,7 @@ class Puppet::Type
[object.file, object.line])
end
error = Puppet::Error.new(msg)
+ raise error
else
#Puppet.info("adding %s of type %s to class list" %
# [name,object.class])
diff --git a/lib/puppet/server/servlet.rb b/lib/puppet/server/servlet.rb
index 136bbb933..d562078e1 100644
--- a/lib/puppet/server/servlet.rb
+++ b/lib/puppet/server/servlet.rb
@@ -137,16 +137,25 @@ class Server
rescue Puppet::Error => detail
#Puppet.warning obj.inspect
#Puppet.warning args.inspect
+ if Puppet[:trace]
+ puts detail.backtrace
+ end
Puppet.err detail.to_s
- raise XMLRPC::FaultException.new(
+ error = XMLRPC::FaultException.new(
1, detail.to_s
)
+ error.set_backtrace = detail.backtrace
+ raise error
rescue => detail
#Puppet.warning obj.inspect
#Puppet.warning args.inspect
- puts detail.inspect
+ if Puppet[:trace]
+ puts detail.backtrace
+ end
Puppet.err "Could not call: %s" % detail.to_s
- raise XMLRPC::FaultException.new(1, detail.to_s)
+ error = XMLRPC::FaultException.new(1, detail.to_s)
+ error.set_backtrace detail.backtrace
+ raise error
end
}
end