summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-08-22 16:14:39 -0500
committerLuke Kanies <luke@madstop.com>2007-08-22 16:14:39 -0500
commitf1727f18ab933df9ecbecc2da8fad72eb441e0d5 (patch)
tree4cf9e123dfa02a85489b38a73aa5a778525fedf5
parent4eb87ed7c8829a6fbc558595be9149e9b3cf5b36 (diff)
downloadpuppet-f1727f18ab933df9ecbecc2da8fad72eb441e0d5.tar.gz
puppet-f1727f18ab933df9ecbecc2da8fad72eb441e0d5.tar.xz
puppet-f1727f18ab933df9ecbecc2da8fad72eb441e0d5.zip
Adding the topscope metadata to the configuration being returned to the client, just like it expects, and fixing how the resource handler calls the master type.
-rwxr-xr-xlib/puppet/network/handler/resource.rb4
-rw-r--r--lib/puppet/parser/configuration.rb17
-rwxr-xr-xtest/network/client/client.rb7
-rwxr-xr-xtest/network/handler/resource.rb2
4 files changed, 20 insertions, 10 deletions
diff --git a/lib/puppet/network/handler/resource.rb b/lib/puppet/network/handler/resource.rb
index ca492bd81..ac29dce53 100755
--- a/lib/puppet/network/handler/resource.rb
+++ b/lib/puppet/network/handler/resource.rb
@@ -26,7 +26,7 @@ class Puppet::Network::Handler
# Apply a TransBucket as a transaction.
def apply(bucket, format = "yaml", client = nil, clientip = nil)
- unless @local
+ unless local?
begin
case format
when "yaml":
@@ -43,7 +43,7 @@ class Puppet::Network::Handler
# Create a client, but specify the remote machine as the server
# because the class requires it, even though it's unused
- client = Puppet::Network::Client.client(:Master).new(:Server => client||"localhost")
+ client = Puppet::Network::Client.client(:Master).new(:Master => client||"localhost")
# Set the objects
client.objects = component
diff --git a/lib/puppet/parser/configuration.rb b/lib/puppet/parser/configuration.rb
index 26553d443..ea784da05 100644
--- a/lib/puppet/parser/configuration.rb
+++ b/lib/puppet/parser/configuration.rb
@@ -344,8 +344,23 @@ class Puppet::Parser::Configuration
end
end
- # Clear the cache to encourage the GC
+ # Retrive the bucket for the top-level scope and set the appropriate metadata.
result = buckets[topscope]
+ case topscope.type
+ when "": result.type = "main"
+ when nil: devfail "A Scope with no type"
+ else
+ result.type = topscope.type
+ end
+ if topscope.name
+ result.name = topscope.name
+ end
+
+ unless classlist.empty?
+ result.classes = classlist
+ end
+
+ # Clear the cache to encourage the GC
buckets.clear
return result
end
diff --git a/test/network/client/client.rb b/test/network/client/client.rb
index 14c90f2a9..3f540d10f 100755
--- a/test/network/client/client.rb
+++ b/test/network/client/client.rb
@@ -164,15 +164,10 @@ class TestClient < Test::Unit::TestCase
# Fake that it's local, so it creates the class file
client.local = false
+ client.expects(:setclasses).with(%w{yaytest bootest})
assert_nothing_raised {
client.getconfig
}
-
- assert(FileTest.exists?(Puppet[:classfile]), "Class file does not exist")
-
- classes = File.read(Puppet[:classfile]).split("\n")
-
- assert_equal(%w{bootest yaytest}, classes.sort)
end
def test_client_loading
diff --git a/test/network/handler/resource.rb b/test/network/handler/resource.rb
index 589d22d83..18f52dbd6 100755
--- a/test/network/handler/resource.rb
+++ b/test/network/handler/resource.rb
@@ -236,7 +236,7 @@ class TestResourceServer < Test::Unit::TestCase
def test_apply
server = nil
assert_nothing_raised do
- server = Puppet::Network::Handler.resource.new()
+ server = Puppet::Network::Handler.resource.new(:Local => false)
end
file = tempfile()