summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-01-19 17:25:50 -0600
committerLuke Kanies <luke@madstop.com>2009-02-06 18:08:40 -0600
commit37692e5851dd3f7b15bde1caf785fb7801c97a25 (patch)
tree6db0d82fc4509805c8af4a3d2f34fafd708b39e7
parent15d8768c5050a0c409b88fcabe38e05f30ee9a78 (diff)
downloadpuppet-37692e5851dd3f7b15bde1caf785fb7801c97a25.tar.gz
puppet-37692e5851dd3f7b15bde1caf785fb7801c97a25.tar.xz
puppet-37692e5851dd3f7b15bde1caf785fb7801c97a25.zip
Renmaing Puppet::Network::Client::Master to Puppet::Agent
Made minor changes, including removing the parent class. The functionality hasn't changed yet -- that comes in later patches -- but all but a couple of the older tests pass. Signed-off-by: Luke Kanies <luke@madstop.com>
-rw-r--r--lib/puppet/agent.rb (renamed from lib/puppet/network/client/master.rb)11
-rwxr-xr-xspec/unit/agent.rb (renamed from spec/unit/network/client/master.rb)40
-rwxr-xr-xtest/agent.rb (renamed from test/network/client/master.rb)127
3 files changed, 61 insertions, 117 deletions
diff --git a/lib/puppet/network/client/master.rb b/lib/puppet/agent.rb
index 047f2b82a..f6d96acc2 100644
--- a/lib/puppet/network/client/master.rb
+++ b/lib/puppet/agent.rb
@@ -2,8 +2,12 @@
require 'sync'
require 'timeout'
require 'puppet/network/http_pool'
+require 'puppet/util'
+
+class Puppet::Agent
+ # For benchmarking
+ include Puppet::Util
-class Puppet::Network::Client::Master < Puppet::Network::Client
unless defined? @@sync
@@sync = Sync.new
end
@@ -136,7 +140,7 @@ class Puppet::Network::Client::Master < Puppet::Network::Client
facts = self.class.facts
end
- raise Puppet::Network::ClientError.new("Could not retrieve any facts") unless facts.length > 0
+ raise Puppet::Error.new("Could not retrieve any facts") unless facts.length > 0
Puppet.debug("Retrieving catalog")
@@ -192,9 +196,8 @@ class Puppet::Network::Client::Master < Puppet::Network::Client
end
# Just so we can specify that we are "the" instance.
- def initialize(*args)
+ def initialize
Puppet.settings.use(:main, :ssl, :puppetd)
- super
self.class.instance = self
@running = false
diff --git a/spec/unit/network/client/master.rb b/spec/unit/agent.rb
index 050088707..dc2fc9034 100755
--- a/spec/unit/network/client/master.rb
+++ b/spec/unit/agent.rb
@@ -3,16 +3,13 @@
# Created by Luke Kanies on 2007-11-12.
# Copyright (c) 2007. All rights reserved.
-require File.dirname(__FILE__) + '/../../../spec_helper'
-require 'puppet/network/client/master'
+require File.dirname(__FILE__) + '/../spec_helper'
+require 'puppet/agent'
-describe Puppet::Network::Client::Master, " when retrieving the catalog" do
+describe Puppet::Agent, " when retrieving the catalog" do
before do
Puppet.settings.stubs(:use).returns(true)
- @master = mock 'master'
- @client = Puppet::Network::Client.master.new(
- :Master => @master
- )
+ @client = Puppet::Agent.new
@facts = {"one" => "two", "three" => "four"}
end
@@ -34,7 +31,7 @@ describe Puppet::Network::Client::Master, " when retrieving the catalog" do
@client.stubs(:dostorage)
@client.class.expects(:facts).returns({})
@master.stubs(:getconfig).returns(nil)
- proc { @client.getconfig }.should raise_error(Puppet::Network::ClientError)
+ proc { @client.getconfig }.should raise_error(Puppet::Error)
end
it "should retrieve plugins if :pluginsync is enabled" do
@@ -275,33 +272,30 @@ describe Puppet::Network::Client::Master, " when retrieving the catalog" do
end
end
-describe Puppet::Network::Client::Master, " when using the cached catalog" do
+describe Puppet::Agent, " when using the cached catalog" do
before do
Puppet.settings.stubs(:use).returns(true)
- @master = mock 'master'
- @client = Puppet::Network::Client.master.new(
- :Master => @master
- )
+ @client = Puppet::Agent.new
@facts = {"one" => "two", "three" => "four"}
end
it "should return do nothing and true if there is already an in-memory catalog" do
@client.catalog = :whatever
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config.should be_true
end
end
it "should return do nothing and false if it has been told there is a failure and :nocacheonfailure is enabled" do
Puppet.settings.expects(:value).with(:usecacheonfailure).returns(false)
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config(true).should be_false
end
end
it "should return false if no cached catalog can be found" do
@client.expects(:retrievecache).returns(nil)
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config().should be_false
end
end
@@ -309,7 +303,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
it "should return false if the cached catalog cannot be instantiated" do
YAML.expects(:load).raises(ArgumentError)
@client.expects(:retrievecache).returns("whatever")
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config().should be_false
end
end
@@ -318,7 +312,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
YAML.stubs(:load).raises(ArgumentError)
@client.stubs(:retrievecache).returns("whatever")
Puppet.expects(:warning).with { |m| m.include?("Could not load cache") }
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config().should be_false
end
end
@@ -327,7 +321,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
YAML.stubs(:load).raises(ArgumentError)
@client.stubs(:retrievecache).returns("whatever")
@client.expects(:clear)
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config().should be_false
end
end
@@ -342,7 +336,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
config.expects(:to_catalog).returns(ral_config)
@client.stubs(:retrievecache).returns("whatever")
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config().should be_true
end
end
@@ -357,7 +351,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
config.expects(:to_catalog).returns(ral_config)
@client.stubs(:retrievecache).returns("whatever")
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config()
end
@@ -374,7 +368,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
config.expects(:to_catalog).returns(ral_config)
@client.stubs(:retrievecache).returns("whatever")
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config()
end
@@ -391,7 +385,7 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do
config.expects(:to_catalog).returns(ral_config)
@client.stubs(:retrievecache).returns("whatever")
- Puppet::Network::Client::Master.publicize_methods :use_cached_config do
+ Puppet::Agent.publicize_methods :use_cached_config do
@client.use_cached_config()
end
diff --git a/test/network/client/master.rb b/test/agent.rb
index ee6a2c6ab..775e16d02 100755
--- a/test/network/client/master.rb
+++ b/test/agent.rb
@@ -1,48 +1,23 @@
#!/usr/bin/env ruby
-require File.dirname(__FILE__) + '/../../lib/puppettest'
+require File.dirname(__FILE__) + '/lib/puppettest'
require 'puppettest'
+require 'puppet/agent'
require 'mocha'
-class TestMasterClient < Test::Unit::TestCase
+class TestAgent < Test::Unit::TestCase
include PuppetTest::ServerTest
def setup
super
- @master = Puppet::Network::Client.master
- end
-
- def mkmaster(options = {})
- options[:UseNodes] = false
- options[:Local] = true
- if code = options[:Code]
- Puppet[:code] = code
- else
- Puppet[:manifest] = options[:Manifest] || mktestmanifest
- end
- # create our master
- # this is the default server setup
- master = Puppet::Network::Handler.master.new(options)
- return master
- end
-
- def mkclient(master = nil)
- master ||= mkmaster()
- client = Puppet::Network::Client.master.new(
- :Master => master
- )
-
- return client
+ @agent_class = Puppet::Agent
end
def test_disable
FileUtils.mkdir_p(Puppet[:statedir])
- manifest = mktestmanifest
-
- master = mkmaster(:Manifest => manifest)
- client = mkclient(master)
+ client = Puppet::Agent.new
assert_nothing_raised("Could not disable client") {
client.disable
@@ -52,7 +27,7 @@ class TestMasterClient < Test::Unit::TestCase
client.run
- client = mkclient(master)
+ client = Puppet::Agent.new
client.expects(:getconfig)
@@ -66,7 +41,7 @@ class TestMasterClient < Test::Unit::TestCase
def test_clientversionfact
facts = nil
assert_nothing_raised {
- facts = Puppet::Network::Client.master.facts
+ facts = Puppet::Agent.facts
}
assert_equal(Puppet.version.to_s, facts["clientversion"])
@@ -81,15 +56,11 @@ class TestMasterClient < Test::Unit::TestCase
setcode { 1 }
end
- assert_equal(1, Facter.nonstring, "Fact was a string from facter")
-
- client = mkclient()
+ # so we don't lose our fact setting
+ Facter.stubs(:clear)
+ Puppet::Agent.stubs(:loadfacts)
- assert(! FileTest.exists?(@createdfile))
-
- assert_nothing_raised {
- client.run
- }
+ assert_equal("1", Puppet::Agent.facts["nonstring"], "Did not convert all facts to strings")
end
# This method downloads files, and yields each file object if a block is given.
@@ -103,7 +74,7 @@ class TestMasterClient < Test::Unit::TestCase
files = []
assert_nothing_raised do
- files = Puppet::Network::Client.master.download(:dest => dest, :source => source, :name => "testing")
+ files = Puppet::Agent.download(:dest => dest, :source => source, :name => "testing")
end
assert(FileTest.directory?(dest), "dest dir was not created")
@@ -127,7 +98,7 @@ class TestMasterClient < Test::Unit::TestCase
end
assert_nothing_raised("Could not get plugins") {
- Puppet::Network::Client.master.getplugins
+ Puppet::Agent.getplugins
}
destfile = File.join(Puppet[:plugindest], "testing", "myplugin.rb")
@@ -144,14 +115,14 @@ class TestMasterClient < Test::Unit::TestCase
end
assert_nothing_raised("Could not get plugin changes") {
- Puppet::Network::Client.master.getplugins
+ Puppet::Agent.getplugins
}
assert($loaded.include?(:changed), "Changed code was not evaluated")
# Now try it again, to make sure we don't have any objects lying around
assert_nothing_raised {
- Puppet::Network::Client.master.getplugins
+ Puppet::Agent.getplugins
}
end
@@ -170,14 +141,14 @@ end
end
assert_nothing_raised {
- Puppet::Network::Client.master.getfacts
+ Puppet::Agent.getfacts
}
destfile = File.join(Puppet[:factdest], "myfact.rb")
assert(File.exists?(destfile), "Did not get fact")
- facts = Puppet::Network::Client.master.facts
+ facts = Puppet::Agent.facts
assert_equal(hostname, facts["hostname"],
"Lost value to hostname")
@@ -194,9 +165,9 @@ end
end
assert_nothing_raised {
- Puppet::Network::Client.master.getfacts
+ Puppet::Agent.getfacts
}
- facts = Puppet::Network::Client.master.facts
+ facts = Puppet::Agent.facts
assert_equal("funtest", facts["myfact"],
"Did not reload fact")
@@ -205,9 +176,9 @@ end
# Now run it again and make sure the fact still loads
assert_nothing_raised {
- Puppet::Network::Client.master.getfacts
+ Puppet::Agent.getfacts
}
- facts = Puppet::Network::Client.master.facts
+ facts = Puppet::Agent.facts
assert_equal("funtest", facts["myfact"],
"Did not reload fact")
@@ -222,7 +193,7 @@ end
Facter.stubs(:to_hash).returns(name => value)
- assert_equal(value, Puppet::Network::Client.master.facts[name])
+ assert_equal(value, Puppet::Agent.facts[name])
end
# Make sure we load all facts on startup.
@@ -250,7 +221,7 @@ end
end
assert_nothing_raised {
- Puppet::Network::Client.master.loadfacts
+ Puppet::Agent.loadfacts
}
names.each do |name|
@@ -279,7 +250,7 @@ end
assert_nothing_raised {
- Puppet::Network::Client.master.download(:dest => dest, :source => dir,
+ Puppet::Agent.download(:dest => dest, :source => dir,
:name => "testing"
) {}
}
@@ -296,7 +267,7 @@ end
def test_facts
facts = nil
assert_nothing_raised do
- facts = Puppet::Network::Client.master.facts
+ facts = Puppet::Agent.facts
end
Facter.to_hash.each do |fact, value|
assert_equal(facts[fact.downcase], value.to_s, "%s is not equal" % fact.inspect)
@@ -318,7 +289,7 @@ end
node = stub 'node', :environment => "development"
Puppet::Node.stubs(:find).returns node
assert_nothing_raised("Could not download in noop") do
- @master.download(:dest => dest, :source => source, :tag => "yay")
+ @agent_class.download(:dest => dest, :source => source, :tag => "yay")
end
assert(FileTest.exists?(dest), "did not download in noop mode")
@@ -328,10 +299,7 @@ end
# #491 - make sure a missing config doesn't kill us
def test_missing_localconfig
- master = mkclient
- master.local = false
- driver = master.send(:instance_variable_get, "@driver")
- driver.local = false
+ master = Puppet::Agent.new
Puppet::Node::Facts.indirection.stubs(:save)
# Retrieve the configuration
@@ -351,7 +319,7 @@ end
end
def test_locking
- master = mkclient
+ master = Puppet::Agent.new
class << master
def getconfig
@@ -367,7 +335,7 @@ end
# Make sure we get a value for timeout
def test_config_timeout
- master = Puppet::Network::Client.client(:master)
+ master = Puppet::Agent
time = Integer(Puppet[:configtimeout])
assert_equal(time, master.timeout, "Did not get default value for timeout")
assert_equal(time, master.timeout, "Did not get default value for timeout on second run")
@@ -384,7 +352,7 @@ end
end
def test_splay
- client = mkclient
+ client = Puppet::Agent.new
# Make sure we default to no splay
client.expects(:sleep).never
@@ -394,7 +362,7 @@ end
end
# Now set it to true and make sure we get the right value
- client = mkclient
+ client = Puppet::Agent.new
client.expects(:sleep)
Puppet[:splay] = true
@@ -403,7 +371,7 @@ end
end
# Now try it again
- client = mkclient
+ client = Puppet::Agent.new
client.expects(:sleep)
assert_nothing_raised("Failed to call sleep when splay is true with a cached value") do
@@ -412,18 +380,18 @@ end
end
def test_environment_is_added_to_facts
- facts = Puppet::Network::Client::Master.facts
+ facts = Puppet::Agent.facts
assert_equal(facts["environment"], Puppet[:environment], "Did not add environment to client facts")
# Now set it to a real value
- Puppet[:environment] = "something"
- facts = Puppet::Network::Client::Master.facts
+ Puppet[:environment] = "something"
+ facts = Puppet::Agent.facts
assert_equal(facts["environment"], Puppet[:environment], "Did not add environment to client facts")
end
# #685
def test_http_failures_do_not_kill_puppetd
- client = mkclient
+ client = Puppet::Agent.new
client.meta_def(:getconfig) { raise "A failure" }
@@ -432,33 +400,12 @@ end
end
end
- def test_invalid_catalogs_do_not_get_cached
- master = mkmaster :Code => "notify { one: require => File[yaytest] }"
- master.local = false # so it gets cached
- client = mkclient(master)
- client.stubs(:facts).returns({})
- client.local = false
-
- Puppet::Node::Facts.indirection.stubs(:terminus_class).returns(:memory)
-
- # Make sure the config is not cached.
- client.expects(:cache).never
-
- client.getconfig
- # Doesn't throw an exception, but definitely fails.
- client.run
- end
-
def test_classfile
Puppet[:code] = "class yaytest {}\n class bootest {}\n include yaytest, bootest"
Puppet::Node::Facts.indirection.stubs(:save)
- master = Puppet::Network::Handler.master.new( :Local => false)
- client = Puppet::Network::Client.master.new( :Master => master)
-
- # Fake that it's local, so it creates the class file
- client.local = false
+ client = Puppet::Agent.new
# We can't guarantee class ordering
client.expects(:setclasses).with do |array|