summaryrefslogtreecommitdiffstats
path: root/lib/puppet/server
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2005-10-10 20:54:15 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2005-10-10 20:54:15 +0000
commit194dab3c7af4d8e993ec8549a30773d68508a9b6 (patch)
treea2839d7fcaec754637fffa065b3bed387e2fabec /lib/puppet/server
parent55d7bbdcbefd550cee46a628da2292be540401ad (diff)
Adding some semantic tagging. It is not exactly full-featured yet, and it is not used at all, but it was sufficient for some proof-of-concept stuff in preparation for the conference
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@716 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/server')
-rw-r--r--lib/puppet/server/master.rb5
-rw-r--r--lib/puppet/server/servlet.rb19
2 files changed, 21 insertions, 3 deletions
diff --git a/lib/puppet/server/master.rb b/lib/puppet/server/master.rb
index 03ff7c6ac..d5dc6bc22 100644
--- a/lib/puppet/server/master.rb
+++ b/lib/puppet/server/master.rb
@@ -77,6 +77,11 @@ class Server
Puppet.debug("Running interpreter")
begin
retobjects = @interpreter.run(client, facts)
+ rescue Puppet::Error => detail
+ Puppet.err detail
+ raise XMLRPC::FaultException.new(
+ 1, detail.to_s
+ )
rescue => detail
Puppet.err detail.to_s
return ""
diff --git a/lib/puppet/server/servlet.rb b/lib/puppet/server/servlet.rb
index e35a1d518..ce962b4ea 100644
--- a/lib/puppet/server/servlet.rb
+++ b/lib/puppet/server/servlet.rb
@@ -116,9 +116,22 @@ class Server
)
end
- #if request.client_cert
- # Puppet.info "client cert is %s" % request.client_cert
- #end
+ # If they have a certificate (which will almost always be true)
+ # then we get the hostname from the cert, instead of via IP
+ # info
+ if cert = request.client_cert
+ name = cert.subject
+ #Puppet.info name.inspect
+ if name.to_s =~ /CN=(\w+)/
+ Puppet.info "Overriding %s with cert name %s" %
+ [@client, $1]
+ @client = $1
+ else
+ Puppet.warning "Could not match against %s(%s)" %
+ [name, name.class]
+ end
+ #Puppet.info "client cert is %s" % request.client_cert
+ end
#if request.server_cert
# Puppet.info "server cert is %s" % @request.server_cert
#end