diff --git a/debian/control b/debian/control index 1ad7866..c299578 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,8 @@ Rules-Requires-Root: no Package: puppet-terminus-redis Architecture: all -Depends: ${misc:Depends}, puppet-master | puppet-master-passenger, redis, ruby-redis +Depends: ${misc:Depends}, puppet-master | puppet-master-passenger | puppetserver, redis, ruby-redis +Build-Depends: ${misc:Build-Depends}, ruby-puppetlabs-spec-helper Description: Cache and data store terminus for puppet servers This provides an integration for using redis as a data store for cached facts and/or storeconfigs from a puppet server. diff --git a/spec/fixtures/manifests/site.pp b/spec/fixtures/manifests/site.pp new file mode 100644 index 0000000..e69de29 diff --git a/spec/indirector/facts/redis_spec.rb b/spec/indirector/facts/redis_spec.rb new file mode 100644 index 0000000..0e9affe --- /dev/null +++ b/spec/indirector/facts/redis_spec.rb @@ -0,0 +1,32 @@ +#!/usr/bin/env rspec +require 'spec_helper' + +require 'puppet/util/feature' +require 'puppet/indirector/facts/redis' +require 'puppet/util/log' + +describe Puppet::Node::Facts::Redis do + + before :each do + Puppet::Node::Facts.indirection.stubs(:terminus).returns(subject) + create_environmentdir("test_environment") + end + + describe '#save' do + let(:facts) { Puppet::Node::Facts.new('foo') } + let(:options) {{ + :environment => "test_environment", + }} + let(:redis) { Puppet::Node::Facts::Redis.new } + + it "should have a name" do + print(subject.name) + end + + it "should save a fact keyed with name and environment" do + facts.values['foo'] = 100 + request = Puppet::Node::Facts.indirection.request(:save, facts.name, facts, options) + subject.save(request) + end + end +end diff --git a/spec/indirector/resource/redis_spec.rb b/spec/indirector/resource/redis_spec.rb new file mode 100644 index 0000000..414b27c --- /dev/null +++ b/spec/indirector/resource/redis_spec.rb @@ -0,0 +1,7 @@ +#!/usr/bin/env rspec +require 'spec_helper' + +# Despite the fact the class is Puppet::Resource::Redis, we use the +# path with 'indirector' to load it. +require 'puppet/indirector/resource/redis' + diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..544d7d0 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,33 @@ +require 'puppetlabs_spec_helper/puppet_spec_helper' +require 'puppet/util' + +RSpec.configure do |config| + + def create_environmentdir(environment) + envdir = File.join(Puppet[:environmentpath], environment) + if not Dir.exists?(envdir) + Dir.mkdir(envdir) + end + end + + # before :each do + # @logs = [] + # Puppet::Util::Log.level = :info + # Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(@logs)) + # # dir = File.join(File.expand_path(File.dirname(__FILE__)), 'fixtures') + # # environments = Puppet::Environments::Cached.new( + # # Puppet::Environments::Directories.new(dir, []) + # # ) + # # Puppet.push_context( + # # { + # # :environments => environments, + # # :current_environment => Puppet::Node::Environment.create(:testing, []) + # # } + # # ) + # # print(Puppet.lookup(:environments)) + # def test_logs + # @logs.map(&:message) + # end + # end + +end