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,21 @@
|
|
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
|
+
property = Puppet::Type.type(:file).attrclass(:ensure)
|
6
|
+
|
7
|
+
describe property do
|
8
|
+
before do
|
9
|
+
@resource = stub 'resource', :line => "foo", :file => "bar", :replace? => true
|
10
|
+
@resource.stubs(:[]).returns "foo"
|
11
|
+
@resource.stubs(:[]).with(:path).returns "/my/file"
|
12
|
+
@ensure = property.new :resource => @resource
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "when testing whether in sync" do
|
16
|
+
it "should always be in sync if replace is 'false' unless the file is missing" do
|
17
|
+
@resource.expects(:replace?).returns false
|
18
|
+
@ensure.insync?(:link).should be_true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,118 @@
|
|
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
|
+
property = Puppet::Type.type(:file).attrclass(:group)
|
6
|
+
|
7
|
+
describe property do
|
8
|
+
before do
|
9
|
+
@resource = stub 'resource', :line => "foo", :file => "bar"
|
10
|
+
@resource.stubs(:[]).returns "foo"
|
11
|
+
@resource.stubs(:[]).with(:path).returns "/my/file"
|
12
|
+
@group = property.new :resource => @resource
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have a method for testing whether a group is valid" do
|
16
|
+
@group.must respond_to(:validgroup?)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the found gid if a group is valid" do
|
20
|
+
@group.expects(:gid).with("foo").returns 500
|
21
|
+
@group.validgroup?("foo").should == 500
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should return false if a group is not valid" do
|
25
|
+
@group.expects(:gid).with("foo").returns nil
|
26
|
+
@group.validgroup?("foo").should be_false
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "when retrieving the current value" do
|
30
|
+
it "should return :absent if the file cannot stat" do
|
31
|
+
@resource.expects(:stat).returns nil
|
32
|
+
|
33
|
+
@group.retrieve.should == :absent
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should get the gid from the stat instance from the file" do
|
37
|
+
stat = stub 'stat', :ftype => "foo"
|
38
|
+
@resource.expects(:stat).returns stat
|
39
|
+
stat.expects(:gid).returns 500
|
40
|
+
|
41
|
+
@group.retrieve.should == 500
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should warn and return :silly if the found value is higher than the maximum uid value" do
|
45
|
+
Puppet.settings.expects(:value).with(:maximum_uid).returns 500
|
46
|
+
|
47
|
+
stat = stub 'stat', :ftype => "foo"
|
48
|
+
@resource.expects(:stat).returns stat
|
49
|
+
stat.expects(:gid).returns 1000
|
50
|
+
|
51
|
+
@group.expects(:warning)
|
52
|
+
@group.retrieve.should == :silly
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "when determining if the file is in sync" do
|
57
|
+
it "should directly compare the group values if the desired group is an integer" do
|
58
|
+
@group.should = [10]
|
59
|
+
@group.must be_insync(10)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should treat numeric strings as integers" do
|
63
|
+
@group.should = ["10"]
|
64
|
+
@group.must be_insync(10)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should convert the group name to an integer if the desired group is a string" do
|
68
|
+
@group.expects(:gid).with("foo").returns 10
|
69
|
+
@group.should = %w{foo}
|
70
|
+
|
71
|
+
@group.must be_insync(10)
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should fail if it cannot convert a group name to an integer" do
|
75
|
+
@group.expects(:gid).with("foo").returns nil
|
76
|
+
@group.should = %w{foo}
|
77
|
+
|
78
|
+
lambda { @group.insync?(10) }.should raise_error(Puppet::Error)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should return false if the groups are not equal" do
|
82
|
+
@group.should = [10]
|
83
|
+
@group.should_not be_insync(20)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "when changing the group" do
|
88
|
+
before do
|
89
|
+
@group.should = %w{one}
|
90
|
+
@group.stubs(:gid).returns 500
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should chown the file if :links is set to :follow" do
|
94
|
+
@resource.expects(:[]).with(:links).returns :follow
|
95
|
+
File.expects(:chown)
|
96
|
+
|
97
|
+
@group.sync
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should lchown the file if :links is set to :manage" do
|
101
|
+
@resource.expects(:[]).with(:links).returns :manage
|
102
|
+
File.expects(:lchown)
|
103
|
+
|
104
|
+
@group.sync
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should use the first valid group in its 'should' list" do
|
108
|
+
@group.should = %w{one two three}
|
109
|
+
@group.expects(:validgroup?).with("one").returns nil
|
110
|
+
@group.expects(:validgroup?).with("two").returns 500
|
111
|
+
@group.expects(:validgroup?).with("three").never
|
112
|
+
|
113
|
+
File.expects(:chown).with(nil, 500, "/my/file")
|
114
|
+
|
115
|
+
@group.sync
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,132 @@
|
|
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
|
+
property = Puppet::Type.type(:file).attrclass(:owner)
|
6
|
+
|
7
|
+
describe property do
|
8
|
+
before do
|
9
|
+
@resource = stub 'resource', :line => "foo", :file => "bar"
|
10
|
+
@resource.stubs(:[]).returns "foo"
|
11
|
+
@resource.stubs(:[]).with(:path).returns "/my/file"
|
12
|
+
@owner = property.new :resource => @resource
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have a method for testing whether an owner is valid" do
|
16
|
+
@owner.must respond_to(:validuser?)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the found uid if an owner is valid" do
|
20
|
+
@owner.expects(:uid).with("foo").returns 500
|
21
|
+
@owner.validuser?("foo").should == 500
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should return false if an owner is not valid" do
|
25
|
+
@owner.expects(:uid).with("foo").returns nil
|
26
|
+
@owner.validuser?("foo").should be_false
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "when retrieving the current value" do
|
30
|
+
it "should return :absent if the file cannot stat" do
|
31
|
+
@resource.expects(:stat).returns nil
|
32
|
+
|
33
|
+
@owner.retrieve.should == :absent
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should get the uid from the stat instance from the file" do
|
37
|
+
stat = stub 'stat', :ftype => "foo"
|
38
|
+
@resource.expects(:stat).returns stat
|
39
|
+
stat.expects(:uid).returns 500
|
40
|
+
|
41
|
+
@owner.retrieve.should == 500
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should warn and return :silly if the found value is higher than the maximum uid value" do
|
45
|
+
Puppet.settings.expects(:value).with(:maximum_uid).returns 500
|
46
|
+
|
47
|
+
stat = stub 'stat', :ftype => "foo"
|
48
|
+
@resource.expects(:stat).returns stat
|
49
|
+
stat.expects(:uid).returns 1000
|
50
|
+
|
51
|
+
@owner.expects(:warning)
|
52
|
+
@owner.retrieve.should == :silly
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "when determining if the file is in sync" do
|
57
|
+
describe "and not running as root" do
|
58
|
+
it "should warn and return true" do
|
59
|
+
@owner.should = 10
|
60
|
+
Puppet::Util::SUIDManager.expects(:uid).returns 1
|
61
|
+
@owner.expects(:warning)
|
62
|
+
@owner.must be_insync("whatever")
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
before do
|
67
|
+
Puppet::Util::SUIDManager.stubs(:uid).returns 0
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should directly compare the owner values if the desired owner is an integer" do
|
71
|
+
@owner.should = [10]
|
72
|
+
@owner.must be_insync(10)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should treat numeric strings as integers" do
|
76
|
+
@owner.should = ["10"]
|
77
|
+
@owner.must be_insync(10)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should convert the owner name to an integer if the desired owner is a string" do
|
81
|
+
@owner.expects(:uid).with("foo").returns 10
|
82
|
+
@owner.should = %w{foo}
|
83
|
+
|
84
|
+
@owner.must be_insync(10)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should fail if it cannot convert an owner name to an integer" do
|
88
|
+
@owner.expects(:uid).with("foo").returns nil
|
89
|
+
@owner.should = %w{foo}
|
90
|
+
|
91
|
+
lambda { @owner.insync?(10) }.should raise_error(Puppet::Error)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should return false if the owners are not equal" do
|
95
|
+
@owner.should = [10]
|
96
|
+
@owner.should_not be_insync(20)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "when changing the owner" do
|
101
|
+
before do
|
102
|
+
@owner.should = %w{one}
|
103
|
+
@owner.stubs(:path).returns "path"
|
104
|
+
@owner.stubs(:uid).returns 500
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should chown the file if :links is set to :follow" do
|
108
|
+
@resource.expects(:[]).with(:links).returns :follow
|
109
|
+
File.expects(:chown)
|
110
|
+
|
111
|
+
@owner.sync
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should lchown the file if :links is set to :manage" do
|
115
|
+
@resource.expects(:[]).with(:links).returns :manage
|
116
|
+
File.expects(:lchown)
|
117
|
+
|
118
|
+
@owner.sync
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should use the first valid owner in its 'should' list" do
|
122
|
+
@owner.should = %w{one two three}
|
123
|
+
@owner.expects(:validuser?).with("one").returns nil
|
124
|
+
@owner.expects(:validuser?).with("two").returns 500
|
125
|
+
@owner.expects(:validuser?).with("three").never
|
126
|
+
|
127
|
+
File.expects(:chown).with(500, nil, "/my/file")
|
128
|
+
|
129
|
+
@owner.sync
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -0,0 +1,82 @@
|
|
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
|
+
|
6
|
+
[:seluser, :selrole, :seltype, :selrange].each do |param|
|
7
|
+
property = Puppet::Type.type(:file).attrclass(param)
|
8
|
+
describe property do
|
9
|
+
before do
|
10
|
+
@resource = mock 'resource'
|
11
|
+
@resource.stubs(:[]).with(:path).returns "/my/file"
|
12
|
+
@sel = property.new :resource => @resource
|
13
|
+
end
|
14
|
+
|
15
|
+
it "retrieve on #{param} should return :absent if the file isn't statable" do
|
16
|
+
@resource.expects(:stat).returns nil
|
17
|
+
@sel.retrieve.should == :absent
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should retrieve nil for #{param} if there is no SELinux support" do
|
21
|
+
stat = stub 'stat', :ftype => "foo"
|
22
|
+
@resource.expects(:stat).returns stat
|
23
|
+
@sel.expects(:get_selinux_current_context).with("/my/file").returns nil
|
24
|
+
@sel.retrieve.should be_nil
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should retrieve #{param} if a SELinux context is found with a range" do
|
28
|
+
stat = stub 'stat', :ftype => "foo"
|
29
|
+
@resource.expects(:stat).returns stat
|
30
|
+
@sel.expects(:get_selinux_current_context).with("/my/file").returns "user_u:role_r:type_t:s0"
|
31
|
+
expectedresult = case param
|
32
|
+
when :seluser then "user_u"
|
33
|
+
when :selrole then "role_r"
|
34
|
+
when :seltype then "type_t"
|
35
|
+
when :selrange then "s0"
|
36
|
+
end
|
37
|
+
@sel.retrieve.should == expectedresult
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should retrieve #{param} if a SELinux context is found without a range" do
|
41
|
+
stat = stub 'stat', :ftype => "foo"
|
42
|
+
@resource.expects(:stat).returns stat
|
43
|
+
@sel.expects(:get_selinux_current_context).with("/my/file").returns "user_u:role_r:type_t"
|
44
|
+
expectedresult = case param
|
45
|
+
when :seluser then "user_u"
|
46
|
+
when :selrole then "role_r"
|
47
|
+
when :seltype then "type_t"
|
48
|
+
when :selrange then nil
|
49
|
+
end
|
50
|
+
@sel.retrieve.should == expectedresult
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should handle no default gracefully" do
|
54
|
+
@sel.expects(:get_selinux_default_context).with("/my/file").returns nil
|
55
|
+
@sel.default.must be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be able to detect matchpathcon defaults" do
|
59
|
+
@sel.stubs(:debug)
|
60
|
+
@sel.expects(:get_selinux_default_context).with("/my/file").returns "user_u:role_r:type_t:s0"
|
61
|
+
expectedresult = case param
|
62
|
+
when :seluser then "user_u"
|
63
|
+
when :selrole then "role_r"
|
64
|
+
when :seltype then "type_t"
|
65
|
+
when :selrange then "s0"
|
66
|
+
end
|
67
|
+
@sel.default.must == expectedresult
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should be able to set a new context" do
|
71
|
+
stat = stub 'stat', :ftype => "foo"
|
72
|
+
@sel.should = %w{newone}
|
73
|
+
@sel.expects(:set_selinux_context).with("/my/file", ["newone"], param)
|
74
|
+
@sel.sync
|
75
|
+
end
|
76
|
+
|
77
|
+
after do
|
78
|
+
Puppet::Type.type(:file).clear
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:group) do
|
6
|
+
before do
|
7
|
+
@class = Puppet::Type.type(:group)
|
8
|
+
end
|
9
|
+
|
10
|
+
after do
|
11
|
+
@class.clear
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should have a default provider" do
|
15
|
+
@class.defaultprovider.should_not be_nil
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should have a default provider inheriting from Puppet::Provider" do
|
19
|
+
@class.defaultprovider.ancestors.should be_include(Puppet::Provider)
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "when validating attributes" do
|
23
|
+
[:name, :allowdupe].each do |param|
|
24
|
+
it "should have a #{param} parameter" do
|
25
|
+
@class.attrtype(param).should == :param
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
[:ensure, :gid].each do |param|
|
30
|
+
it "should have a #{param} property" do
|
31
|
+
@class.attrtype(param).should == :property
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# #1407 - we need to declare the allowdupe param as boolean.
|
37
|
+
it "should have a boolean method for determining if duplicates are allowed" do
|
38
|
+
@class.create(:name => "foo").methods.should be_include("allowdupe?")
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
macauth_type = Puppet::Type.type(:macauthorization)
|
6
|
+
|
7
|
+
describe Puppet.type(:macauthorization), "when checking macauthorization objects" do
|
8
|
+
|
9
|
+
before do
|
10
|
+
authplist = {}
|
11
|
+
authplist["rules"] = { "foorule" => "foo" }
|
12
|
+
authplist["rights"] = { "fooright" => "foo" }
|
13
|
+
provider_class = macauth_type.provider(macauth_type.providers[0])
|
14
|
+
Plist.stubs(:parse_xml).with("/etc/authorization").returns(authplist)
|
15
|
+
macauth_type.stubs(:defaultprovider).returns provider_class
|
16
|
+
end
|
17
|
+
|
18
|
+
after do
|
19
|
+
macauth_type.clear
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
describe "when validating attributes" do
|
24
|
+
|
25
|
+
parameters = [:name,]
|
26
|
+
properties = [:auth_type, :allow_root, :authenticate_user, :auth_class,
|
27
|
+
:comment, :group, :k_of_n, :mechanisms, :rule,
|
28
|
+
:session_owner, :shared, :timeout, :tries]
|
29
|
+
|
30
|
+
parameters.each do |parameter|
|
31
|
+
it "should have a %s parameter" % parameter do
|
32
|
+
macauth_type.attrclass(parameter).ancestors.should be_include(Puppet::Parameter)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should have documentation for its %s parameter" % parameter do
|
36
|
+
macauth_type.attrclass(parameter).doc.should be_instance_of(String)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
properties.each do |property|
|
41
|
+
it "should have a %s property" % property do
|
42
|
+
macauth_type.attrclass(property).ancestors.should be_include(Puppet::Property)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should have documentation for its %s property" % property do
|
46
|
+
macauth_type.attrclass(property).doc.should be_instance_of(String)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "when validating properties" do
|
53
|
+
|
54
|
+
it "should have a default provider inheriting from Puppet::Provider" do
|
55
|
+
macauth_type.defaultprovider.ancestors.should be_include(Puppet::Provider)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be able to create an instance" do
|
59
|
+
lambda {
|
60
|
+
macauth_type.create(:name => 'foo')
|
61
|
+
}.should_not raise_error
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should support :present as a value to :ensure" do
|
65
|
+
lambda {
|
66
|
+
macauth_type.create(:name => "foo", :ensure => :present)
|
67
|
+
}.should_not raise_error
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should support :absent as a value to :ensure" do
|
71
|
+
lambda {
|
72
|
+
macauth_type.create(:name => "foo", :ensure => :absent)
|
73
|
+
}.should_not raise_error
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|