puppet 0.24.6 → 0.24.7
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +115 -0
- data/Rakefile +43 -14
- data/bin/puppetca +6 -5
- data/bin/puppetdoc +109 -15
- data/bin/ralsh +3 -1
- data/conf/redhat/puppet.spec +74 -48
- data/examples/mcx_dock_absent.pp +4 -0
- data/examples/mcx_dock_default.pp +118 -0
- data/examples/mcx_dock_full.pp +125 -0
- data/examples/mcx_dock_invalid.pp +9 -0
- data/examples/mcx_nogroup.pp +118 -0
- data/examples/mcx_notexists_absent.pp +4 -0
- data/ext/emacs/puppet-mode.el +1 -1
- data/lib/puppet.rb +1 -1
- data/lib/puppet/external/nagios/base.rb +114 -71
- data/lib/puppet/feature/base.rb +6 -0
- data/lib/puppet/indirector/yaml.rb +12 -3
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/network/client/master.rb +1 -1
- data/lib/puppet/network/xmlrpc/client.rb +3 -1
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +15 -0
- data/lib/puppet/parser/ast/astarray.rb +1 -2
- data/lib/puppet/parser/ast/casestatement.rb +2 -0
- data/lib/puppet/parser/ast/collection.rb +2 -0
- data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
- data/lib/puppet/parser/ast/definition.rb +2 -0
- data/lib/puppet/parser/ast/else.rb +3 -0
- data/lib/puppet/parser/ast/function.rb +19 -12
- data/lib/puppet/parser/ast/hostclass.rb +9 -1
- data/lib/puppet/parser/ast/ifstatement.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +3 -0
- data/lib/puppet/parser/ast/resource.rb +3 -0
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
- data/lib/puppet/parser/ast/resource_override.rb +3 -0
- data/lib/puppet/parser/ast/vardef.rb +3 -0
- data/lib/puppet/parser/functions.rb +14 -0
- data/lib/puppet/parser/functions/inline_template.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +3 -2
- data/lib/puppet/parser/lexer.rb +56 -7
- data/lib/puppet/parser/parser.rb +114 -98
- data/lib/puppet/parser/parser_support.rb +24 -4
- data/lib/puppet/parser/resource/reference.rb +4 -3
- data/lib/puppet/parser/templatewrapper.rb +30 -22
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/list.rb +7 -2
- data/lib/puppet/property/ordered_list.rb +22 -0
- data/lib/puppet/provider/augeas/augeas.rb +189 -0
- data/lib/puppet/provider/computer/computer.rb +22 -0
- data/lib/puppet/provider/confine.rb +4 -1
- data/lib/puppet/provider/confine/variable.rb +13 -2
- data/lib/puppet/provider/confine_collection.rb +4 -1
- data/lib/puppet/provider/confiner.rb +1 -1
- data/lib/puppet/provider/group/directoryservice.rb +6 -3
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/group/ldap.rb +11 -9
- data/lib/puppet/provider/group/netinfo.rb +8 -4
- data/lib/puppet/provider/group/pw.rb +5 -1
- data/lib/puppet/provider/host/netinfo.rb +5 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
- data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
- data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -3
- data/lib/puppet/provider/package/apt.rb +6 -0
- data/lib/puppet/provider/package/rpm.rb +2 -0
- data/lib/puppet/provider/package/yum.rb +5 -1
- data/lib/puppet/provider/package/yumhelper.py +9 -0
- data/lib/puppet/provider/service/base.rb +9 -6
- data/lib/puppet/provider/service/daemontools.rb +25 -15
- data/lib/puppet/provider/service/debian.rb +6 -2
- data/lib/puppet/provider/service/freebsd.rb +5 -2
- data/lib/puppet/provider/service/gentoo.rb +6 -3
- data/lib/puppet/provider/service/init.rb +31 -21
- data/lib/puppet/provider/service/launchd.rb +195 -0
- data/lib/puppet/provider/service/redhat.rb +5 -2
- data/lib/puppet/provider/service/runit.rb +30 -20
- data/lib/puppet/provider/service/smf.rb +7 -4
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/netinfo.rb +9 -3
- data/lib/puppet/provider/user/user_role_add.rb +43 -6
- data/lib/puppet/provider/zfs/solaris.rb +45 -0
- data/lib/puppet/provider/zone/solaris.rb +8 -4
- data/lib/puppet/provider/zpool/solaris.rb +116 -0
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/lib/puppet/rails/database/schema.rb +1 -0
- data/lib/puppet/rails/host.rb +4 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +15 -6
- data/lib/puppet/transaction/change.rb +3 -5
- data/lib/puppet/transportable.rb +1 -0
- data/lib/puppet/type/augeas.rb +155 -0
- data/lib/puppet/type/computer.rb +62 -0
- data/lib/puppet/type/exec.rb +2 -1
- data/lib/puppet/type/file.rb +1 -1
- data/lib/puppet/type/file/ensure.rb +8 -5
- data/lib/puppet/type/file/mode.rb +0 -14
- data/lib/puppet/type/file/owner.rb +32 -64
- data/lib/puppet/type/file/selcontext.rb +3 -8
- data/lib/puppet/type/group.rb +27 -45
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +141 -0
- data/lib/puppet/type/mcx.rb +115 -0
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/lib/puppet/type/ssh_authorized_key.rb +16 -0
- data/lib/puppet/type/tidy.rb +43 -14
- data/lib/puppet/type/user.rb +25 -1
- data/lib/puppet/type/zfs.rb +51 -0
- data/lib/puppet/type/zone.rb +8 -0
- data/lib/puppet/type/zpool.rb +93 -0
- data/lib/puppet/util.rb +17 -38
- data/lib/puppet/util/file_locking.rb +44 -0
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/log.rb +1 -16
- data/lib/puppet/util/metric.rb +0 -5
- data/lib/puppet/util/rdoc.rb +85 -0
- data/lib/puppet/util/rdoc/code_objects.rb +219 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
- data/lib/puppet/util/rdoc/parser.rb +437 -0
- data/lib/puppet/util/selinux.rb +135 -63
- data/lib/puppet/util/settings.rb +136 -126
- data/lib/puppet/util/storage.rb +4 -2
- data/spec/Rakefile +91 -0
- data/spec/integration/checksum.rb +47 -0
- data/spec/integration/defaults.rb +47 -0
- data/spec/integration/file_serving/configuration.rb +43 -0
- data/spec/integration/file_serving/content.rb +18 -0
- data/spec/integration/file_serving/metadata.rb +18 -0
- data/spec/integration/indirector/direct_file_server.rb +80 -0
- data/spec/integration/indirector/file_content/file_server.rb +18 -0
- data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
- data/spec/integration/indirector/module_files.rb +57 -0
- data/spec/integration/indirector/node/ldap.rb +15 -0
- data/spec/integration/indirector/rest.rb +464 -0
- data/spec/integration/network/server/mongrel.rb +48 -0
- data/spec/integration/network/server/webrick.rb +48 -0
- data/spec/integration/node.rb +93 -0
- data/spec/integration/node/catalog.rb +54 -0
- data/spec/integration/node/facts.rb +45 -0
- data/spec/integration/provider/package.rb +26 -0
- data/spec/integration/provider/service/init.rb +32 -0
- data/spec/integration/reference/providers.rb +17 -0
- data/spec/integration/reports.rb +14 -0
- data/spec/integration/transaction/report.rb +26 -0
- data/spec/integration/type/package.rb +22 -0
- data/spec/integration/util/file_locking.rb +36 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
- data/spec/monkey_patches/alias_should_to_must.rb +5 -0
- data/spec/shared_behaviours/file_server_terminus.rb +42 -0
- data/spec/shared_behaviours/file_serving.rb +64 -0
- data/spec/shared_behaviours/memory_terminus.rb +32 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/unit/executables/client/certhandler.rb +122 -0
- data/spec/unit/file_serving/configuration.rb +224 -0
- data/spec/unit/file_serving/configuration/parser.rb +135 -0
- data/spec/unit/file_serving/content.rb +71 -0
- data/spec/unit/file_serving/file_base.rb +124 -0
- data/spec/unit/file_serving/fileset.rb +239 -0
- data/spec/unit/file_serving/indirection_hooks.rb +124 -0
- data/spec/unit/file_serving/metadata.rb +187 -0
- data/spec/unit/file_serving/mount.rb +143 -0
- data/spec/unit/file_serving/terminus_helper.rb +76 -0
- data/spec/unit/indirector.rb +152 -0
- data/spec/unit/indirector/catalog/compiler.rb +156 -0
- data/spec/unit/indirector/catalog/yaml.rb +25 -0
- data/spec/unit/indirector/checksum/file.rb +139 -0
- data/spec/unit/indirector/code.rb +33 -0
- data/spec/unit/indirector/direct_file_server.rb +89 -0
- data/spec/unit/indirector/envelope.rb +47 -0
- data/spec/unit/indirector/exec.rb +51 -0
- data/spec/unit/indirector/facts/facter.rb +76 -0
- data/spec/unit/indirector/facts/yaml.rb +26 -0
- data/spec/unit/indirector/file.rb +154 -0
- data/spec/unit/indirector/file_content/file.rb +18 -0
- data/spec/unit/indirector/file_content/file_server.rb +18 -0
- data/spec/unit/indirector/file_content/modules.rb +18 -0
- data/spec/unit/indirector/file_content/rest.rb +11 -0
- data/spec/unit/indirector/file_metadata/file.rb +52 -0
- data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
- data/spec/unit/indirector/file_metadata/modules.rb +42 -0
- data/spec/unit/indirector/file_metadata/rest.rb +9 -0
- data/spec/unit/indirector/file_server.rb +184 -0
- data/spec/unit/indirector/indirection.rb +731 -0
- data/spec/unit/indirector/ldap.rb +143 -0
- data/spec/unit/indirector/memory.rb +29 -0
- data/spec/unit/indirector/module_files.rb +259 -0
- data/spec/unit/indirector/node/exec.rb +69 -0
- data/spec/unit/indirector/node/ldap.rb +424 -0
- data/spec/unit/indirector/node/memory.rb +19 -0
- data/spec/unit/indirector/node/plain.rb +19 -0
- data/spec/unit/indirector/node/rest.rb +13 -0
- data/spec/unit/indirector/node/yaml.rb +25 -0
- data/spec/unit/indirector/plain.rb +29 -0
- data/spec/unit/indirector/report/processor.rb +81 -0
- data/spec/unit/indirector/request.rb +87 -0
- data/spec/unit/indirector/rest.rb +372 -0
- data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
- data/spec/unit/indirector/terminus.rb +245 -0
- data/spec/unit/indirector/yaml.rb +145 -0
- data/spec/unit/module.rb +247 -0
- data/spec/unit/network/client.rb +45 -0
- data/spec/unit/network/client/master.rb +442 -0
- data/spec/unit/network/handler/fileserver.rb +179 -0
- data/spec/unit/network/http.rb +35 -0
- data/spec/unit/network/http/mongrel.rb +117 -0
- data/spec/unit/network/http/mongrel/rest.rb +377 -0
- data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
- data/spec/unit/network/http/webrick.rb +127 -0
- data/spec/unit/network/http/webrick/rest.rb +323 -0
- data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
- data/spec/unit/network/http_pool.rb +238 -0
- data/spec/unit/network/server.rb +316 -0
- data/spec/unit/network/xmlrpc/client.rb +13 -0
- data/spec/unit/node.rb +167 -0
- data/spec/unit/node/catalog.rb +864 -0
- data/spec/unit/node/environment.rb +37 -0
- data/spec/unit/node/facts.rb +44 -0
- data/spec/unit/other/checksum.rb +92 -0
- data/spec/unit/other/pgraph.rb +210 -0
- data/spec/unit/other/transaction.rb +33 -0
- data/spec/unit/other/transbucket.rb +172 -0
- data/spec/unit/other/transobject.rb +92 -0
- data/spec/unit/parameter.rb +24 -0
- data/spec/unit/parser/ast.rb +37 -0
- data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
- data/spec/unit/parser/ast/astarray.rb +66 -0
- data/spec/unit/parser/ast/boolean_operator.rb +53 -0
- data/spec/unit/parser/ast/collexpr.rb +92 -0
- data/spec/unit/parser/ast/comparison_operator.rb +92 -0
- data/spec/unit/parser/ast/definition.rb +195 -0
- data/spec/unit/parser/ast/function.rb +77 -0
- data/spec/unit/parser/ast/hostclass.rb +148 -0
- data/spec/unit/parser/ast/minus.rb +36 -0
- data/spec/unit/parser/ast/node.rb +125 -0
- data/spec/unit/parser/ast/nop.rb +20 -0
- data/spec/unit/parser/ast/not.rb +30 -0
- data/spec/unit/parser/ast/resource_override.rb +51 -0
- data/spec/unit/parser/ast/resource_reference.rb +63 -0
- data/spec/unit/parser/ast/vardef.rb +47 -0
- data/spec/unit/parser/collector.rb +426 -0
- data/spec/unit/parser/compiler.rb +561 -0
- data/spec/unit/parser/functions.rb +83 -0
- data/spec/unit/parser/functions/inline_template.rb +59 -0
- data/spec/unit/parser/functions/template.rb +62 -0
- data/spec/unit/parser/interpreter.rb +138 -0
- data/spec/unit/parser/lexer.rb +646 -0
- data/spec/unit/parser/parser.rb +228 -0
- data/spec/unit/parser/resource.rb +336 -0
- data/spec/unit/parser/resource/reference.rb +95 -0
- data/spec/unit/parser/scope.rb +87 -0
- data/spec/unit/parser/templatewrapper.rb +129 -0
- data/spec/unit/property.rb +35 -0
- data/spec/unit/property/keyvalue.rb +168 -0
- data/spec/unit/property/list.rb +156 -0
- data/spec/unit/property/ordered_list.rb +64 -0
- data/spec/unit/provider/augeas/augeas.rb +238 -0
- data/spec/unit/provider/confine.rb +78 -0
- data/spec/unit/provider/confine/exists.rb +81 -0
- data/spec/unit/provider/confine/false.rb +53 -0
- data/spec/unit/provider/confine/feature.rb +60 -0
- data/spec/unit/provider/confine/true.rb +53 -0
- data/spec/unit/provider/confine/variable.rb +107 -0
- data/spec/unit/provider/confine_collection.rb +134 -0
- data/spec/unit/provider/confiner.rb +63 -0
- data/spec/unit/provider/group/groupadd.rb +31 -0
- data/spec/unit/provider/group/ldap.rb +105 -0
- data/spec/unit/provider/ldap.rb +248 -0
- data/spec/unit/provider/macauthorization.rb +147 -0
- data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
- data/spec/unit/provider/mount.rb +130 -0
- data/spec/unit/provider/mount/parsed.rb +185 -0
- data/spec/unit/provider/package/apt.rb +138 -0
- data/spec/unit/provider/package/dpkg.rb +163 -0
- data/spec/unit/provider/package/gem.rb +87 -0
- data/spec/unit/provider/package/hpux.rb +52 -0
- data/spec/unit/provider/selboolean.rb +37 -0
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule.rb +66 -0
- data/spec/unit/provider/service/daemontools.rb +124 -0
- data/spec/unit/provider/service/launchd.rb +134 -0
- data/spec/unit/provider/service/runit.rb +117 -0
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
- data/spec/unit/provider/user/hpux.rb +25 -0
- data/spec/unit/provider/user/ldap.rb +279 -0
- data/spec/unit/provider/user/user_role_add.rb +249 -0
- data/spec/unit/provider/user/useradd.rb +115 -0
- data/spec/unit/provider/zfs/solaris.rb +87 -0
- data/spec/unit/provider/zone/solaris.rb +42 -0
- data/spec/unit/provider/zpool/solaris.rb +179 -0
- data/spec/unit/rails.rb +125 -0
- data/spec/unit/relationship.rb +149 -0
- data/spec/unit/reports.rb +61 -0
- data/spec/unit/resource_reference.rb +73 -0
- data/spec/unit/simple_graph.rb +280 -0
- data/spec/unit/transaction/change.rb +187 -0
- data/spec/unit/transaction/event.rb +25 -0
- data/spec/unit/transaction/report.rb +40 -0
- data/spec/unit/type.rb +64 -0
- data/spec/unit/type/augeas.rb +113 -0
- data/spec/unit/type/computer.rb +82 -0
- data/spec/unit/type/exec.rb +91 -0
- data/spec/unit/type/file.rb +155 -0
- data/spec/unit/type/file/ensure.rb +21 -0
- data/spec/unit/type/file/group.rb +118 -0
- data/spec/unit/type/file/owner.rb +132 -0
- data/spec/unit/type/file/selinux.rb +82 -0
- data/spec/unit/type/group.rb +40 -0
- data/spec/unit/type/macauthorization.rb +78 -0
- data/spec/unit/type/mcx.rb +108 -0
- data/spec/unit/type/mount.rb +219 -0
- data/spec/unit/type/nagios.rb +63 -0
- data/spec/unit/type/noop_metaparam.rb +38 -0
- data/spec/unit/type/package.rb +246 -0
- data/spec/unit/type/resources.rb +27 -0
- data/spec/unit/type/schedule.rb +339 -0
- data/spec/unit/type/selboolean.rb +47 -0
- data/spec/unit/type/selmodule.rb +18 -0
- data/spec/unit/type/service.rb +254 -0
- data/spec/unit/type/ssh_authorized_key.rb +106 -0
- data/spec/unit/type/tidy.rb +68 -0
- data/spec/unit/type/user.rb +260 -0
- data/spec/unit/type/zfs.rb +45 -0
- data/spec/unit/type/zone.rb +20 -0
- data/spec/unit/type/zpool.rb +110 -0
- data/spec/unit/util/checksums.rb +99 -0
- data/spec/unit/util/constant_inflector.rb +70 -0
- data/spec/unit/util/file_locking.rb +115 -0
- data/spec/unit/util/ldap/connection.rb +169 -0
- data/spec/unit/util/ldap/generator.rb +54 -0
- data/spec/unit/util/ldap/manager.rb +654 -0
- data/spec/unit/util/loadedfile.rb +65 -0
- data/spec/unit/util/log.rb +107 -0
- data/spec/unit/util/metric.rb +95 -0
- data/spec/unit/util/nagios_maker.rb +128 -0
- data/spec/unit/util/posix.rb +256 -0
- data/spec/unit/util/resource_template.rb +58 -0
- data/spec/unit/util/selinux.rb +219 -0
- data/spec/unit/util/settings.rb +847 -0
- data/spec/unit/util/storage.rb +248 -0
- data/spec/unit/util/tagging.rb +92 -0
- data/spec/unit/util/uri_helper.rb +41 -0
- data/spec/unit/util/user_attr.rb +47 -0
- data/spec/unit/util/warnings.rb +35 -0
- data/test/certmgr/support.rb +0 -6
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
- data/test/data/snippets/multilinecomments.pp +6 -0
- data/test/data/snippets/multipleclass.pp +9 -0
- data/test/language/functions.rb +11 -1
- data/test/language/snippets.rb +16 -0
- data/test/lib/puppettest/runnable_test.rb +1 -1
- data/test/network/handler/fileserver.rb +5 -0
- data/test/other/report.rb +0 -4
- data/test/ral/type/resources.rb +2 -19
- data/test/util/settings.rb +4 -4
- data/test/util/storage.rb +0 -24
- data/test/util/utiltest.rb +0 -33
- metadata +319 -26
- data/conf/debian/README.source +0 -2
- data/conf/debian/TODO.Debian +0 -1
- data/conf/debian/changelog +0 -257
- data/conf/debian/compat +0 -1
- data/conf/debian/control +0 -45
- data/conf/debian/copyright +0 -17
- data/conf/debian/docs +0 -1
- data/conf/debian/fileserver.conf +0 -12
- data/conf/debian/puppet.NEWS +0 -63
- data/conf/debian/puppet.conf +0 -8
- data/conf/debian/puppet.dirs +0 -7
- data/conf/debian/puppet.files +0 -6
- data/conf/debian/puppet.init +0 -64
- data/conf/debian/puppet.logrotate +0 -11
- data/conf/debian/puppet.postinst +0 -9
- data/conf/debian/puppet.postrm +0 -21
- data/conf/debian/puppet.preinst +0 -25
- data/conf/debian/puppetmaster.files +0 -4
- data/conf/debian/puppetmaster.init +0 -58
- data/conf/debian/rules +0 -115
- data/conf/debian/watch +0 -2
- data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -0,0 +1,156 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
4
|
+
|
5
|
+
require 'puppet/property/list'
|
6
|
+
|
7
|
+
list_class = Puppet::Property::List
|
8
|
+
|
9
|
+
describe list_class do
|
10
|
+
|
11
|
+
it "should be a subclass of Property" do
|
12
|
+
list_class.superclass.must == Puppet::Property
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "as an instance" do
|
16
|
+
before do
|
17
|
+
# Wow that's a messy interface to the resource.
|
18
|
+
list_class.initvars
|
19
|
+
@resource = stub 'resource', :[]= => nil, :property => nil
|
20
|
+
@property = list_class.new(:resource => @resource)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should have a , as default delimiter" do
|
24
|
+
@property.delimiter.should == ","
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should have a :membership as default membership" do
|
28
|
+
@property.membership.should == :membership
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should return the same value passed into should_to_s" do
|
32
|
+
@property.should_to_s("foo") == "foo"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return the passed in array values joined with the delimiter from is_to_s" do
|
36
|
+
@property.is_to_s(["foo","bar"]).should == "foo,bar"
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "when adding should to current" do
|
40
|
+
it "should add the arrays when current is an array" do
|
41
|
+
@property.add_should_with_current(["foo"], ["bar"]).should == ["foo", "bar"]
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should return should if current is not a array" do
|
45
|
+
@property.add_should_with_current(["foo"], :absent).should == ["foo"]
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should return only the uniq elements" do
|
49
|
+
@property.add_should_with_current(["foo", "bar"], ["foo", "baz"]).should == ["foo", "bar", "baz"]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "when calling inclusive?" do
|
54
|
+
it "should use the membership method to look up on the @resource" do
|
55
|
+
@property.expects(:membership).returns(:membership)
|
56
|
+
@resource.expects(:[]).with(:membership)
|
57
|
+
@property.inclusive?
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should return true when @resource[membership] == inclusive" do
|
61
|
+
@property.stubs(:membership).returns(:membership)
|
62
|
+
@resource.stubs(:[]).with(:membership).returns(:inclusive)
|
63
|
+
@property.inclusive?.must == true
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should return false when @resource[membership] != inclusive" do
|
67
|
+
@property.stubs(:membership).returns(:membership)
|
68
|
+
@resource.stubs(:[]).with(:membership).returns(:minimum)
|
69
|
+
@property.inclusive?.must == false
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "when calling should" do
|
74
|
+
it "should return nil if @should is nil" do
|
75
|
+
@property.should.must == nil
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should return the sorted values of @should as a string if inclusive" do
|
79
|
+
@property.should = ["foo", "bar"]
|
80
|
+
@property.expects(:inclusive?).returns(true)
|
81
|
+
@property.should.must == "bar,foo"
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should return the uniq sorted values of @should + retrieve as a string if !inclusive" do
|
85
|
+
@property.should = ["foo", "bar"]
|
86
|
+
@property.expects(:inclusive?).returns(false)
|
87
|
+
@property.expects(:retrieve).returns(["foo","baz"])
|
88
|
+
@property.should.must == "bar,baz,foo"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "when calling retrieve" do
|
93
|
+
before do
|
94
|
+
@provider = mock("provider")
|
95
|
+
@property.stubs(:provider).returns(@provider)
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should send 'name' to the provider" do
|
99
|
+
@provider.expects(:send).with(:group)
|
100
|
+
@property.expects(:name).returns(:group)
|
101
|
+
@property.retrieve
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should return an array with the provider returned info" do
|
105
|
+
@provider.stubs(:send).with(:group).returns("foo,bar,baz")
|
106
|
+
@property.stubs(:name).returns(:group)
|
107
|
+
@property.retrieve == ["foo", "bar", "baz"]
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should return :absent when the provider returns :absent" do
|
111
|
+
@provider.stubs(:send).with(:group).returns(:absent)
|
112
|
+
@property.stubs(:name).returns(:group)
|
113
|
+
@property.retrieve == :absent
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe "when calling insync?" do
|
118
|
+
it "should return true unless @should is defined and not nil" do
|
119
|
+
@property.insync?("foo") == true
|
120
|
+
end
|
121
|
+
|
122
|
+
it "should return true unless the passed in values is not nil" do
|
123
|
+
@property.should = "foo"
|
124
|
+
@property.insync?(nil) == true
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should call prepare_is_for_comparison with value passed in and should" do
|
128
|
+
@property.should = "foo"
|
129
|
+
@property.expects(:prepare_is_for_comparison).with("bar")
|
130
|
+
@property.expects(:should)
|
131
|
+
@property.insync?("bar")
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should return true if prepared value == should value" do
|
135
|
+
@property.should = "bar,foo"
|
136
|
+
@property.expects(:inclusive?).returns(true)
|
137
|
+
@property.insync?(["bar","foo"]).must == true
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should return false if prepared value != should value" do
|
141
|
+
@property.should = "bar,baz,foo"
|
142
|
+
@property.expects(:inclusive?).returns(true)
|
143
|
+
@property.insync?(["bar","foo"]).must == false
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
describe "when calling dearrayify" do
|
148
|
+
it "should sort and join the array with 'delimiter'" do
|
149
|
+
array = mock "array"
|
150
|
+
array.expects(:sort).returns(array)
|
151
|
+
array.expects(:join).with(@property.delimiter)
|
152
|
+
@property.dearrayify(array)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
4
|
+
|
5
|
+
require 'puppet/property/ordered_list'
|
6
|
+
|
7
|
+
ordered_list_class = Puppet::Property::OrderedList
|
8
|
+
|
9
|
+
describe ordered_list_class do
|
10
|
+
|
11
|
+
it "should be a subclass of List" do
|
12
|
+
ordered_list_class.superclass.must == Puppet::Property::List
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "as an instance" do
|
16
|
+
before do
|
17
|
+
# Wow that's a messy interface to the resource.
|
18
|
+
ordered_list_class.initvars
|
19
|
+
@resource = stub 'resource', :[]= => nil, :property => nil
|
20
|
+
@property = ordered_list_class.new(:resource => @resource)
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "when adding should to current" do
|
24
|
+
it "should add the arrays when current is an array" do
|
25
|
+
@property.add_should_with_current(["should"], ["current"]).should == ["should", "current"]
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return 'should' if current is not a array" do
|
29
|
+
@property.add_should_with_current(["should"], :absent).should == ["should"]
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return only the uniq elements leading with the order of 'should'" do
|
33
|
+
@property.add_should_with_current(["this", "is", "should"], ["is", "this", "current"]).should == ["this", "is", "should", "current"]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "when calling should" do
|
38
|
+
it "should return nil if @should is nil" do
|
39
|
+
@property.should.must == nil
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should return the values of @should (without sorting) as a string if inclusive" do
|
43
|
+
@property.should = ["foo", "bar"]
|
44
|
+
@property.expects(:inclusive?).returns(true)
|
45
|
+
@property.should.must == "foo,bar"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should return the uniq values of @should + retrieve as a string if !inclusive with the @ values leading" do
|
49
|
+
@property.should = ["foo", "bar"]
|
50
|
+
@property.expects(:inclusive?).returns(false)
|
51
|
+
@property.expects(:retrieve).returns(["foo","baz"])
|
52
|
+
@property.should.must == "foo,bar,baz"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "when calling dearrayify" do
|
57
|
+
it "should join the array with the delimiter" do
|
58
|
+
array = mock "array"
|
59
|
+
array.expects(:join).with(@property.delimiter)
|
60
|
+
@property.dearrayify(array)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,238 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
provider_class = Puppet::Type.type(:augeas).provider(:augeas)
|
6
|
+
|
7
|
+
describe provider_class do
|
8
|
+
describe "command parsing" do
|
9
|
+
it "should break apart a single line into three tokens" do
|
10
|
+
provider = provider_class.new()
|
11
|
+
tokens = provider.parse_commands("set /Jar/Jar Binks")
|
12
|
+
tokens.size.should == 1
|
13
|
+
tokens[0].size.should == 3
|
14
|
+
tokens[0][0].should == "set"
|
15
|
+
tokens[0][1].should == "/Jar/Jar"
|
16
|
+
tokens[0][2].should == "Binks"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should break apart a multiple line into six tokens" do
|
20
|
+
provider = provider_class.new()
|
21
|
+
tokens = provider.parse_commands("set /Jar/Jar Binks\nrm anakin skywalker")
|
22
|
+
tokens.size.should == 2
|
23
|
+
tokens[0].size.should == 3
|
24
|
+
tokens[1].size.should == 3
|
25
|
+
tokens[0][0].should == "set"
|
26
|
+
tokens[0][1].should == "/Jar/Jar"
|
27
|
+
tokens[0][2].should == "Binks"
|
28
|
+
tokens[1][0].should == "rm"
|
29
|
+
tokens[1][1].should == "anakin"
|
30
|
+
tokens[1][2].should == "skywalker"
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should handle arrays" do
|
34
|
+
provider = provider_class.new()
|
35
|
+
commands = ["set /Jar/Jar Binks", "rm anakin skywalker"]
|
36
|
+
tokens = provider.parse_commands(commands)
|
37
|
+
tokens.size.should == 2
|
38
|
+
tokens[0].size.should == 3
|
39
|
+
tokens[1].size.should == 3
|
40
|
+
tokens[0][0].should == "set"
|
41
|
+
tokens[0][1].should == "/Jar/Jar"
|
42
|
+
tokens[0][2].should == "Binks"
|
43
|
+
tokens[1][0].should == "rm"
|
44
|
+
tokens[1][1].should == "anakin"
|
45
|
+
tokens[1][2].should == "skywalker"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should concat the last values" do
|
49
|
+
provider = provider_class.new()
|
50
|
+
tokens = provider.parse_commands("set /Jar/Jar Binks is my copilot")
|
51
|
+
tokens.size.should == 1
|
52
|
+
tokens[0].size.should == 3
|
53
|
+
tokens[0][0].should == "set"
|
54
|
+
tokens[0][1].should == "/Jar/Jar"
|
55
|
+
tokens[0][2].should == "Binks is my copilot"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "get filters" do
|
60
|
+
before do
|
61
|
+
augeas_stub = stub("augeas", :get => "value")
|
62
|
+
@provider = provider_class.new()
|
63
|
+
@provider.stubs(:open_augeas).returns(augeas_stub)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should return false for a = nonmatch" do
|
67
|
+
command = ["get", "fake value", "==", "value"]
|
68
|
+
@provider.process_get(command).should == true
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return true for a != match" do
|
72
|
+
command = ["get", "fake value", "!=", "value"]
|
73
|
+
@provider.process_get(command).should == false
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should return true for a =~ match" do
|
77
|
+
command = ["get", "fake value", "=~", "val*"]
|
78
|
+
@provider.process_get(command).should == true
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should return false for a == nonmatch" do
|
82
|
+
command = ["get", "fake value", "=~", "num*"]
|
83
|
+
@provider.process_get(command).should == false
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "match filters" do
|
88
|
+
before do
|
89
|
+
augeas_stub = stub("augeas", :match => ["set", "of", "values"])
|
90
|
+
@provider = provider_class.new()
|
91
|
+
@provider.stubs(:open_augeas).returns(augeas_stub)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should return true for size match" do
|
95
|
+
command = ["match", "fake value", "size", "==", "3"]
|
96
|
+
@provider.process_match(command).should == true
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should return false for a size non match" do
|
100
|
+
command = ["match", "fake value", "size", "<", "3"]
|
101
|
+
@provider.process_match(command).should == false
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should return true for includes match" do
|
105
|
+
command = ["get", "fake value", "include", "values"]
|
106
|
+
@provider.process_match(command).should == true
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should return false for includes non match" do
|
110
|
+
command = ["get", "fake value", "include", "JarJar"]
|
111
|
+
@provider.process_match(command).should == false
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should return true for an array match" do
|
115
|
+
command = ["get", "fake value", "==", "['set', 'of', 'values']"]
|
116
|
+
@provider.process_match(command).should == true
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should return false for an array non match" do
|
120
|
+
command = ["get", "fake value", "==", "['this', 'should', 'not', 'match']"]
|
121
|
+
@provider.process_match(command).should == false
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "need_to_run" do
|
126
|
+
it "should handle no filters" do
|
127
|
+
resource = stub("resource", :[] => "")
|
128
|
+
provider = provider_class.new(resource)
|
129
|
+
provider.need_to_run?.should == true
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should return true when a get filter matches" do
|
133
|
+
resource = stub("resource", :[] => "get path == value")
|
134
|
+
provider = provider_class.new(resource)
|
135
|
+
augeas_stub = stub("augeas", :get => "value")
|
136
|
+
provider.stubs(:open_augeas).returns(augeas_stub)
|
137
|
+
provider.need_to_run?.should == true
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should return false when a get filter does not match" do
|
141
|
+
resource = stub("resource", :[] => "get path == another value")
|
142
|
+
provider = provider_class.new(resource)
|
143
|
+
augeas_stub = stub("augeas", :get => "value")
|
144
|
+
provider.stubs(:open_augeas).returns(augeas_stub)
|
145
|
+
provider.need_to_run?.should == false
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should return true when a match filter matches" do
|
149
|
+
resource = stub("resource", :[] => "match path size == 3")
|
150
|
+
provider = provider_class.new(resource)
|
151
|
+
augeas_stub = stub("augeas", :match => ["set", "of", "values"])
|
152
|
+
provider.stubs(:open_augeas).returns(augeas_stub)
|
153
|
+
provider.need_to_run?.should == true
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should return false when a match filter does not match" do
|
157
|
+
resource = stub("resource", :[] => "match path size == 2")
|
158
|
+
provider = provider_class.new(resource)
|
159
|
+
augeas_stub = stub("augeas", :match => ["set", "of", "values"])
|
160
|
+
provider.stubs(:open_augeas).returns(augeas_stub)
|
161
|
+
provider.need_to_run?.should == false
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
describe "augeas integration" do
|
166
|
+
|
167
|
+
before do
|
168
|
+
@resource = stub("resource")
|
169
|
+
@provider = provider_class.new(@resource)
|
170
|
+
@augeas = stub("augeas")
|
171
|
+
@provider.stubs(:open_augeas).returns(@augeas)
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should handle set commands" do
|
175
|
+
command = [["set", "/Jar/Jar", "Binks"]]
|
176
|
+
context = "/some/path"
|
177
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
178
|
+
@augeas.expects(:set).with("/some/path/Jar/Jar", "Binks")
|
179
|
+
@augeas.expects(:save).returns(true)
|
180
|
+
@provider.execute_changes.should == :executed
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should handle rm commands" do
|
184
|
+
command = [["rm", "/Jar/Jar"]]
|
185
|
+
context = ""
|
186
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
187
|
+
@augeas.expects(:rm).with("/Jar/Jar")
|
188
|
+
@augeas.expects(:save).returns(true)
|
189
|
+
@provider.execute_changes.should == :executed
|
190
|
+
end
|
191
|
+
|
192
|
+
it "should handle remove commands" do
|
193
|
+
command = [["remove", "Jar/Jar"]]
|
194
|
+
context = ""
|
195
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
196
|
+
@augeas.expects(:rm).with("/Jar/Jar")
|
197
|
+
@augeas.expects(:save).returns(true)
|
198
|
+
@provider.execute_changes.should == :executed
|
199
|
+
end
|
200
|
+
|
201
|
+
it "should handle clear commands" do
|
202
|
+
command = [["clear", "/Jar/Jar"]]
|
203
|
+
context = "/foo"
|
204
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
205
|
+
@augeas.expects(:clear).with("/foo/Jar/Jar")
|
206
|
+
@augeas.expects(:save).returns(true)
|
207
|
+
@provider.execute_changes.should == :executed
|
208
|
+
end
|
209
|
+
|
210
|
+
it "should handle insert commands" do
|
211
|
+
command = [["insert", "/Jar/Jar"]]
|
212
|
+
context = "/foo"
|
213
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
214
|
+
@augeas.expects(:insert).with("/foo/Jar/Jar")
|
215
|
+
@augeas.expects(:save).returns(true)
|
216
|
+
@provider.execute_changes.should == :executed
|
217
|
+
end
|
218
|
+
|
219
|
+
it "should handle ins commands" do
|
220
|
+
command = [["ins", "/Jar/Jar"]]
|
221
|
+
context = "/foo"
|
222
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
223
|
+
@augeas.expects(:insert).with("/foo/Jar/Jar")
|
224
|
+
@augeas.expects(:save).returns(true)
|
225
|
+
@provider.execute_changes.should == :executed
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should handle multiple commands" do
|
229
|
+
command = [["ins", "/Jar/Jar"], ["clear", "/Jar/Jar"]]
|
230
|
+
context = "/foo"
|
231
|
+
@resource.expects(:[]).times(2).returns(command).then.returns(context)
|
232
|
+
@augeas.expects(:insert).with("/foo/Jar/Jar")
|
233
|
+
@augeas.expects(:clear).with("/foo/Jar/Jar")
|
234
|
+
@augeas.expects(:save).returns(true)
|
235
|
+
@provider.execute_changes.should == :executed
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|