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)
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()